mirror of
https://github.com/SlackBuildsOrg/slackbuilds
synced 2024-09-28 15:21:00 +02:00
multimedia/cinelerra: Updated for version cv_2.1.5.
Signed-off-by: Niels Horn <niels.horn@slackbuilds.org>
This commit is contained in:
parent
632b1ce582
commit
8630ff272e
7 changed files with 220 additions and 57 deletions
|
@ -2,13 +2,10 @@ Cinelerra is the most advanced non-linear video editor and compositor
|
|||
for Linux. It does primarily 3 main things: capturing, compositing,
|
||||
and editing audio and video with sample level accuracy.
|
||||
|
||||
This is a development version maintained by Einar Rünkaru:
|
||||
http://git.cinelerra.org/gitweb?p=einar/cinelerra.git;a=summary
|
||||
This is a development version maintained by official git cinelerra-cv:
|
||||
http://git.cinelerra.org/gitweb?p=j6t/cinelerra.git;a=summary
|
||||
This build script uses a git snapshot that was downloaded and hosted
|
||||
by the script maintainer.
|
||||
|
||||
By default cinelerra builds with an internal ffmpeg. Building with
|
||||
an external, system-wide installed ffmpeg is no longer possible.
|
||||
|
||||
Cinelerra requires a52dec, imlib2, libdv, faac, faad2 x264, lame,
|
||||
libavc1394, libiec61883, and mjpegtools.
|
||||
Cinelerra requires ffmpeg, a52dec, imlib2, libdv, faac, faad2 x264,
|
||||
lame, libavc1394, libiec61883 and mjpegtools.
|
||||
|
|
126
multimedia/cinelerra/cinelerra-v4l1_removal.patch
Normal file
126
multimedia/cinelerra/cinelerra-v4l1_removal.patch
Normal file
|
@ -0,0 +1,126 @@
|
|||
http://bugs.cinelerra.org/ticket/949
|
||||
https://bugs.gentoo.org/show_bug.cgi?id=361709
|
||||
|
||||
diff -Nru cinelerra.orig//cinelerra/channelpicker.C cinelerra/cinelerra/channelpicker.C
|
||||
--- cinelerra.orig//cinelerra/channelpicker.C 2010-11-24 18:18:03.000000000 -0500
|
||||
+++ cinelerra/cinelerra/channelpicker.C 2011-02-17 13:31:30.147880002 -0500
|
||||
@@ -39,7 +39,7 @@
|
||||
#include "recordgui.h"
|
||||
#include "recordmonitor.h"
|
||||
#include "theme.h"
|
||||
-#include "vdevicebuz.h"
|
||||
+//#include "vdevicebuz.h"
|
||||
#include "vdeviceprefs.h"
|
||||
#include "videodevice.h"
|
||||
|
||||
@@ -280,7 +280,7 @@
|
||||
// printf("PrefsChannelPicker::PrefsChannelPicker 1\n");
|
||||
this->mwindow = mwindow;
|
||||
this->prefs = prefs;
|
||||
- VDeviceBUZ::get_inputs(&input_sources);
|
||||
+// VDeviceBUZ::get_inputs(&input_sources);
|
||||
}
|
||||
|
||||
PrefsChannelPicker::~PrefsChannelPicker()
|
||||
diff -Nru cinelerra.orig//cinelerra/Makefile.am cinelerra/cinelerra/Makefile.am
|
||||
--- cinelerra.orig//cinelerra/Makefile.am 2010-11-24 18:18:03.000000000 -0500
|
||||
+++ cinelerra/cinelerra/Makefile.am 2011-02-17 13:31:30.147880002 -0500
|
||||
@@ -305,10 +305,8 @@
|
||||
vattachmentpoint.C \
|
||||
vautomation.C \
|
||||
vdevicebase.C \
|
||||
- vdevicebuz.C \
|
||||
vdevicedvb.C \
|
||||
vdeviceprefs.C \
|
||||
- vdevicev4l.C \
|
||||
vdevicev4l2.C \
|
||||
vdevicev4l2jpeg.C \
|
||||
vdevicex11.C \
|
||||
diff -Nru cinelerra.orig//cinelerra/reversemake cinelerra/cinelerra/reversemake
|
||||
--- cinelerra.orig//cinelerra/reversemake 2010-11-24 18:18:03.000000000 -0500
|
||||
+++ cinelerra/cinelerra/reversemake 2011-02-17 13:31:30.151880002 -0500
|
||||
@@ -32,10 +32,8 @@
|
||||
make $OBJDIR/vedits.o
|
||||
make $OBJDIR/vedit.o
|
||||
make $OBJDIR/vdevicex11.o
|
||||
-make $OBJDIR/vdevicev4l.o
|
||||
make $OBJDIR/vdeviceprefs.o
|
||||
make $OBJDIR/vdevicelml.o
|
||||
-make $OBJDIR/vdevicebuz.o
|
||||
make $OBJDIR/vdevicebase.o
|
||||
make $OBJDIR/vdevice1394.o
|
||||
make $OBJDIR/vautomation.o
|
||||
diff -Nru cinelerra.orig//cinelerra/videodevice.C cinelerra/cinelerra/videodevice.C
|
||||
--- cinelerra.orig//cinelerra/videodevice.C 2010-11-24 18:18:03.000000000 -0500
|
||||
+++ cinelerra/cinelerra/videodevice.C 2011-02-17 13:41:53.239880001 -0500
|
||||
@@ -39,9 +39,9 @@
|
||||
#ifdef HAVE_FIREWIRE
|
||||
#include "vdevice1394.h"
|
||||
#endif
|
||||
-#include "vdevicebuz.h"
|
||||
+//#include "vdevicebuz.h"
|
||||
#include "vdevicedvb.h"
|
||||
-#include "vdevicev4l.h"
|
||||
+//#include "vdevicev4l.h"
|
||||
#include "vdevicev4l2.h"
|
||||
#include "vdevicev4l2jpeg.h"
|
||||
#include "vdevicex11.h"
|
||||
@@ -203,7 +203,6 @@
|
||||
result = input_base->open_input();
|
||||
break;
|
||||
|
||||
-
|
||||
#ifdef HAVE_VIDEO4LINUX2
|
||||
case VIDEO4LINUX2:
|
||||
new_device_base();
|
||||
@@ -250,8 +249,8 @@
|
||||
{
|
||||
switch(in_config->driver)
|
||||
{
|
||||
- case VIDEO4LINUX:
|
||||
- return input_base = new VDeviceV4L(this);
|
||||
+ //case VIDEO4LINUX:
|
||||
+ // return input_base = new VDeviceV4L(this);
|
||||
|
||||
#ifdef HAVE_VIDEO4LINUX2
|
||||
case VIDEO4LINUX2:
|
||||
@@ -264,8 +263,8 @@
|
||||
case SCREENCAPTURE:
|
||||
return input_base = new VDeviceX11(this, 0);
|
||||
|
||||
- case CAPTURE_BUZ:
|
||||
- return input_base = new VDeviceBUZ(this);
|
||||
+ //case CAPTURE_BUZ:
|
||||
+ // return input_base = new VDeviceBUZ(this);
|
||||
|
||||
#ifdef HAVE_FIREWIRE
|
||||
case CAPTURE_FIREWIRE:
|
||||
@@ -662,9 +661,9 @@
|
||||
//printf("VideoDevice::open_output 1 %d\n", out_config->driver);
|
||||
switch(out_config->driver)
|
||||
{
|
||||
- case PLAYBACK_BUZ:
|
||||
- output_base = new VDeviceBUZ(this);
|
||||
- break;
|
||||
+ //case PLAYBACK_BUZ:
|
||||
+ // output_base = new VDeviceBUZ(this);
|
||||
+ // break;
|
||||
case PLAYBACK_X11:
|
||||
case PLAYBACK_X11_XV:
|
||||
case PLAYBACK_X11_GL:
|
||||
diff -Nru cinelerra.orig//cinelerra/videodevice.h cinelerra/cinelerra/videodevice.h
|
||||
--- cinelerra.orig//cinelerra/videodevice.h 2010-11-24 18:18:03.000000000 -0500
|
||||
+++ cinelerra/cinelerra/videodevice.h 2011-02-17 13:31:30.167880002 -0500
|
||||
@@ -40,9 +40,9 @@
|
||||
#include "thread.h"
|
||||
#include "picture.inc"
|
||||
#include "vdevicebase.inc"
|
||||
-#include "vdevicebuz.inc"
|
||||
+//#include "vdevicebuz.inc"
|
||||
#include "vdevicelml.inc"
|
||||
-#include "vdevicev4l.inc"
|
||||
+//#include "vdevicev4l.inc"
|
||||
#include "vdevicex11.inc"
|
||||
#include "videoconfig.inc"
|
||||
#include "videowindow.inc"
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# Slackware build script for cinelerra
|
||||
|
||||
# Copyright 2010 by Giovanne Castro, Campinas, Sao Paulo, Brazil <giovannefc@ig.com.br>
|
||||
# Copyright 2011 by Giovanne Castro, Campinas, Sao Paulo, Brazil <giovannefc@ig.com.br>
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
|
@ -23,7 +23,7 @@
|
|||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
PRGNAM=cinelerra
|
||||
VERSION=${VERSION:-cv_einar_701e5e5f}
|
||||
VERSION=${VERSION:-cv_2.1.5}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
|
@ -60,18 +60,6 @@ else
|
|||
mmx="--enable-mmx"
|
||||
fi
|
||||
|
||||
# --external-ffmpeg works only with version 0.5.x of FFMPEG.
|
||||
# Not compatible with FFMPEG 0.6 series, in this case, cinelerra
|
||||
# will be compiled with internal ffmpeg (includes in the package).
|
||||
# Uses "yes" or "no". Default: "no".
|
||||
EXTERNALFFMPEG=${EXTERNALFFMPEG:-no}
|
||||
|
||||
if [ "$EXTERNALFFMPEG" = "no" ]; then
|
||||
externalffmpeg=""
|
||||
else
|
||||
externalffmpeg="--with-external-ffmpeg"
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
rm -rf $PKG
|
||||
|
@ -87,13 +75,15 @@ find . \
|
|||
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||
-exec chmod 644 {} \;
|
||||
|
||||
# Fix build with libx264 version 76 and later.
|
||||
patch -p1 < $CWD/x264_76.patch
|
||||
# Patches (from gentoo repository) for drop v4l1 support and fix from upstream to build with ffmpeg trunk.
|
||||
# http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-video/cinelerra/files/
|
||||
patch -p1 < $CWD/ffmpeg.patch
|
||||
patch -p1 < $CWD/cinelerra-v4l1_removal.patch
|
||||
|
||||
./autogen.sh
|
||||
|
||||
CFLAGS="$SLKCFLAGS" \
|
||||
CXXFLAGS="$SLKCFLAGS" \
|
||||
CFLAGS="$SLKCFLAGS -D__STDC_CONSTANT_MACROS" \
|
||||
CXXFLAGS="$SLKCFLAGS -D__STDC_CONSTANT_MACROS" \
|
||||
./configure \
|
||||
--prefix=/usr \
|
||||
--sysconfdir=/etc \
|
||||
|
@ -106,18 +96,12 @@ CXXFLAGS="$SLKCFLAGS" \
|
|||
--with-x \
|
||||
--enable-opengl \
|
||||
--build=$ARCH-slackware-linux \
|
||||
$externalffmpeg \
|
||||
--with-external-ffmpeg \
|
||||
$mmx
|
||||
|
||||
make
|
||||
make install DESTDIR=$PKG
|
||||
|
||||
# Delete ffmpeg headers and libraries to prevent conflicts with ffmpeg package.
|
||||
if [ "$EXTERNALFFMPEG" = "no" ]; then
|
||||
rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig
|
||||
rm -rf $PKG/usr/include/lib*
|
||||
fi
|
||||
|
||||
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
|
||||
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
PRGNAM="cinelerra"
|
||||
VERSION="cv_einar_701e5e5f"
|
||||
VERSION="cv_2.1.5"
|
||||
HOMEPAGE="http://cinelerra.org/"
|
||||
DOWNLOAD="http://www.ginoepri.com/linux/cinelerra-cv_einar_701e5e5f.tar.gz"
|
||||
MD5SUM="3e8dc80e815f1ec2abc74d744c442374"
|
||||
DOWNLOAD="http://www.ginoepri.com/linux/cinelerra-cv_2.1.5.tar.gz"
|
||||
MD5SUM="e79452b6a6682005fa7b90248aebe32f"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
MAINTAINER="Giovanne Castro"
|
||||
EMAIL="giovannefc@ig.com.br"
|
||||
APPROVED="pprkut"
|
||||
APPROVED="pprkut,Niels Horn"
|
||||
|
|
76
multimedia/cinelerra/ffmpeg.patch
Normal file
76
multimedia/cinelerra/ffmpeg.patch
Normal file
|
@ -0,0 +1,76 @@
|
|||
Fix build with ffmpeg/libav trunk / 0.7
|
||||
|
||||
Index: cinelerra/cinelerra/ffmpeg.C
|
||||
===================================================================
|
||||
--- cinelerra.orig/cinelerra/ffmpeg.C
|
||||
+++ cinelerra/cinelerra/ffmpeg.C
|
||||
@@ -364,12 +364,15 @@ int FFMPEG::decode(uint8_t *data, long d
|
||||
|
||||
// NOTE: frame must already have data space allocated
|
||||
|
||||
+ AVPacket pkt;
|
||||
got_picture = 0;
|
||||
- int length = avcodec_decode_video(context,
|
||||
+ av_init_packet( &pkt );
|
||||
+ pkt.data = data;
|
||||
+ pkt.size = data_size;
|
||||
+ int length = avcodec_decode_video2(context,
|
||||
picture,
|
||||
&got_picture,
|
||||
- data,
|
||||
- data_size);
|
||||
+ &pkt);
|
||||
|
||||
if (length < 0) {
|
||||
printf("FFMPEG::decode error decoding frame\n");
|
||||
Index: cinelerra/quicktime/qtffmpeg.c
|
||||
===================================================================
|
||||
--- cinelerra.orig/quicktime/qtffmpeg.c
|
||||
+++ cinelerra/quicktime/qtffmpeg.c
|
||||
@@ -181,6 +181,7 @@ static int decode_wrapper(quicktime_t *f
|
||||
|
||||
if(!result)
|
||||
{
|
||||
+ AVPacket pkt;
|
||||
|
||||
|
||||
// No way to determine if there was an error based on nonzero status.
|
||||
@@ -189,11 +190,13 @@ static int decode_wrapper(quicktime_t *f
|
||||
ffmpeg->decoder_context[current_field]->skip_frame = AVDISCARD_NONREF /* AVDISCARD_BIDIR */;
|
||||
else
|
||||
ffmpeg->decoder_context[current_field]->skip_frame = AVDISCARD_DEFAULT;
|
||||
- result = avcodec_decode_video(ffmpeg->decoder_context[current_field],
|
||||
+ av_init_packet( &pkt );
|
||||
+ pkt.data = ffmpeg->work_buffer;
|
||||
+ pkt.size = bytes + header_bytes;
|
||||
+ result = avcodec_decode_video2(ffmpeg->decoder_context[current_field],
|
||||
&ffmpeg->picture[current_field],
|
||||
&got_picture,
|
||||
- ffmpeg->work_buffer,
|
||||
- bytes + header_bytes);
|
||||
+ &pkt);
|
||||
|
||||
|
||||
|
||||
Index: cinelerra/quicktime/wma.c
|
||||
===================================================================
|
||||
--- cinelerra.orig/quicktime/wma.c
|
||||
+++ cinelerra/quicktime/wma.c
|
||||
@@ -195,11 +195,14 @@ printf("decode 2 %x %llx %llx\n", chunk_
|
||||
chunk_size);
|
||||
#else
|
||||
bytes_decoded = AVCODEC_MAX_AUDIO_FRAME_SIZE;
|
||||
- result = avcodec_decode_audio2(codec->decoder_context,
|
||||
+ AVPacket pkt;
|
||||
+ av_init_packet( &pkt );
|
||||
+ pkt.data = codec->packet_buffer;
|
||||
+ pkt.size = chunk_size;
|
||||
+ result = avcodec_decode_audio3(codec->decoder_context,
|
||||
(int16_t*)(codec->work_buffer + codec->output_size * sample_size),
|
||||
&bytes_decoded,
|
||||
- codec->packet_buffer,
|
||||
- chunk_size);
|
||||
+ &pkt);
|
||||
#endif
|
||||
|
||||
pthread_mutex_unlock(&ffmpeg_lock);
|
|
@ -5,7 +5,7 @@
|
|||
# make exactly 11 lines for the formatting to be correct. It's also
|
||||
# customary to leave one space after the ':'.
|
||||
|
||||
|-----handy-ruler----------------------------------------------------|
|
||||
|-----handy-ruler------------------------------------------------------|
|
||||
cinelerra: cinelerra (GNU/Linux Video/Audio Studio)
|
||||
cinelerra:
|
||||
cinelerra: Cinelerra is the most advanced non-linear video editor
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
Index: cinelerra-20090210/quicktime/qth264.c
|
||||
===================================================================
|
||||
--- cinelerra-20090210.orig/quicktime/qth264.c
|
||||
+++ cinelerra-20090210/quicktime/qth264.c
|
||||
@@ -239,10 +239,15 @@ static int encode(quicktime_t *file, uns
|
||||
codec->buffer_size = 0;
|
||||
for(i = 0; i < nnal; i++)
|
||||
{
|
||||
+#if X264_BUILD >= 76
|
||||
+ int size = nals[i].i_payload;
|
||||
+ memcpy(codec->work_buffer + codec->buffer_size, nals[i].p_payload, nals[i].i_payload);
|
||||
+#else
|
||||
int size = x264_nal_encode(codec->work_buffer + codec->buffer_size,
|
||||
&allocation,
|
||||
1,
|
||||
nals + i);
|
||||
+#endif
|
||||
unsigned char *ptr = codec->work_buffer + codec->buffer_size;
|
||||
|
||||
if(size > 0)
|
Loading…
Reference in a new issue