diff options
-rw-r--r-- | multimedia/cinelerra/README | 11 | ||||
-rw-r--r-- | multimedia/cinelerra/cinelerra-v4l1_removal.patch | 126 | ||||
-rw-r--r-- | multimedia/cinelerra/cinelerra.SlackBuild | 34 | ||||
-rw-r--r-- | multimedia/cinelerra/cinelerra.info | 8 | ||||
-rw-r--r-- | multimedia/cinelerra/ffmpeg.patch | 76 | ||||
-rw-r--r-- | multimedia/cinelerra/slack-desc | 2 | ||||
-rw-r--r-- | multimedia/cinelerra/x264_76.patch | 20 |
7 files changed, 220 insertions, 57 deletions
diff --git a/multimedia/cinelerra/README b/multimedia/cinelerra/README index 51fe0969c5..540d6c6286 100644 --- a/multimedia/cinelerra/README +++ b/multimedia/cinelerra/README @@ -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. diff --git a/multimedia/cinelerra/cinelerra-v4l1_removal.patch b/multimedia/cinelerra/cinelerra-v4l1_removal.patch new file mode 100644 index 0000000000..285720dc41 --- /dev/null +++ b/multimedia/cinelerra/cinelerra-v4l1_removal.patch @@ -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" + diff --git a/multimedia/cinelerra/cinelerra.SlackBuild b/multimedia/cinelerra/cinelerra.SlackBuild index 3c75d253b9..d4c95b7c4a 100644 --- a/multimedia/cinelerra/cinelerra.SlackBuild +++ b/multimedia/cinelerra/cinelerra.SlackBuild @@ -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 diff --git a/multimedia/cinelerra/cinelerra.info b/multimedia/cinelerra/cinelerra.info index 6a685837ec..6aa721ad66 100644 --- a/multimedia/cinelerra/cinelerra.info +++ b/multimedia/cinelerra/cinelerra.info @@ -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" diff --git a/multimedia/cinelerra/ffmpeg.patch b/multimedia/cinelerra/ffmpeg.patch new file mode 100644 index 0000000000..fa67e732b5 --- /dev/null +++ b/multimedia/cinelerra/ffmpeg.patch @@ -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); diff --git a/multimedia/cinelerra/slack-desc b/multimedia/cinelerra/slack-desc index e27bb51c28..3b4b282400 100644 --- a/multimedia/cinelerra/slack-desc +++ b/multimedia/cinelerra/slack-desc @@ -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 diff --git a/multimedia/cinelerra/x264_76.patch b/multimedia/cinelerra/x264_76.patch deleted file mode 100644 index 018b964e12..0000000000 --- a/multimedia/cinelerra/x264_76.patch +++ /dev/null @@ -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) |