summaryrefslogtreecommitdiffstats
path: root/multimedia
diff options
context:
space:
mode:
author Giovanne Castro2011-07-15 20:07:37 +0200
committer Robby Workman2011-07-22 05:52:08 +0200
commit8630ff272e398b82881be9a4e952c8cd08e1a73f (patch)
tree683b19316fa46ab233aed6b3641fe915db55aaf0 /multimedia
parent632b1ce582329f1fac03eb3803ad4753365191a4 (diff)
downloadslackbuilds-8630ff272e398b82881be9a4e952c8cd08e1a73f.tar.gz
multimedia/cinelerra: Updated for version cv_2.1.5.
Signed-off-by: Niels Horn <niels.horn@slackbuilds.org>
Diffstat (limited to 'multimedia')
-rw-r--r--multimedia/cinelerra/README11
-rw-r--r--multimedia/cinelerra/cinelerra-v4l1_removal.patch126
-rw-r--r--multimedia/cinelerra/cinelerra.SlackBuild34
-rw-r--r--multimedia/cinelerra/cinelerra.info8
-rw-r--r--multimedia/cinelerra/ffmpeg.patch76
-rw-r--r--multimedia/cinelerra/slack-desc2
-rw-r--r--multimedia/cinelerra/x264_76.patch20
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)