summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media-video/cinelerra-cvs/ChangeLog8
-rw-r--r--media-video/cinelerra-cvs/cinelerra-cvs-20070726.ebuild106
-rw-r--r--media-video/cinelerra-cvs/files/cinelerra-cvs-swscaler.patch159
-rw-r--r--media-video/cinelerra-cvs/files/digest-cinelerra-cvs-200707263
4 files changed, 275 insertions, 1 deletions
diff --git a/media-video/cinelerra-cvs/ChangeLog b/media-video/cinelerra-cvs/ChangeLog
index 3a832c03e9b1..7b0965299952 100644
--- a/media-video/cinelerra-cvs/ChangeLog
+++ b/media-video/cinelerra-cvs/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for media-video/cinelerra-cvs
# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/cinelerra-cvs/ChangeLog,v 1.31 2007/07/22 08:56:59 dberkholz Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/cinelerra-cvs/ChangeLog,v 1.32 2007/07/26 03:52:32 aballier Exp $
+
+*cinelerra-cvs-20070726 (26 Jul 2007)
+
+ 26 Jul 2007; Alexis Ballier <aballier@gentoo.org>
+ +files/cinelerra-cvs-swscaler.patch, +cinelerra-cvs-20070726.ebuild:
+ Version bump, adding a patch to switch to swscaler api, closing bug #185132
22 Jul 2007; Donnie Berkholz <dberkholz@gentoo.org>;
cinelerra-cvs-20070122.ebuild, cinelerra-cvs-20070607.ebuild:
diff --git a/media-video/cinelerra-cvs/cinelerra-cvs-20070726.ebuild b/media-video/cinelerra-cvs/cinelerra-cvs-20070726.ebuild
new file mode 100644
index 000000000000..58f4a9062869
--- /dev/null
+++ b/media-video/cinelerra-cvs/cinelerra-cvs-20070726.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/cinelerra-cvs/cinelerra-cvs-20070726.ebuild,v 1.1 2007/07/26 03:52:32 aballier Exp $
+
+WANT_AUTOMAKE=1.9
+WANT_AUTOCONF=2.5
+
+inherit toolchain-funcs eutils flag-o-matic autotools
+
+#filter-flags "-fPIC -fforce-addr"
+
+DESCRIPTION="Cinelerra - Professional Video Editor - Unofficial CVS-version"
+HOMEPAGE="http://cvs.cinelerra.org/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="3dnow alsa esd mmx oss static truetype ieee1394 css altivec opengl"
+RDEPEND="media-libs/libpng
+ >=media-libs/libdv-1.0.0
+ media-libs/faad2
+ media-libs/faac
+ media-libs/a52dec
+ media-libs/libsndfile
+ media-libs/tiff
+ media-video/ffmpeg
+ media-sound/lame
+ >=sci-libs/fftw-3.0.1
+ >=media-libs/x264-svn-20060302
+ ieee1394? ( media-libs/libiec61883 >=sys-libs/libraw1394-1.2.0 \
+ >=sys-libs/libavc1394-0.5.0 )
+ media-video/mjpegtools
+ alsa? ( media-libs/alsa-lib )
+ esd? ( >=media-sound/esound-0.2.34 )
+ truetype? ( >=media-libs/freetype-2.1.10 )
+ opengl? ( virtual/opengl )
+ >=media-libs/openexr-1.2.2
+ >=media-libs/libvorbis-1.1.0
+ >=media-libs/libogg-1.1
+ >=media-libs/libtheora-1.0_alpha4-r1
+ x11-libs/libX11
+ x11-libs/libXv
+ x11-libs/libXxf86vm
+ x11-libs/libXext
+ x11-libs/libXvMC
+ x11-libs/libXft"
+
+DEPEND="${RDEPEND}
+ x86? ( dev-lang/nasm )"
+
+S="${WORKDIR}/${PN}"
+
+pkg_setup() {
+ if [[ "$(gcc-major-version)" -lt "4" ]]; then
+ eerror "You need to have gcc 4 or better"
+ eerror "Please follow : http://www.gentoo.org/doc/en/gcc-upgrading.xml"
+ eerror "And have a look at bug #128659"
+ die "You must use gcc 4 or better."
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}/recentffmpeg.patch"
+ epatch "${FILESDIR}/${PN}-swscaler.patch"
+}
+
+src_compile() {
+ AT_M4DIR="m4" eautoreconf
+ econf \
+ `use_enable static` \
+ `use_enable alsa` \
+ `use_enable esd` \
+ `use_enable oss` \
+ `use_enable mmx` \
+ `use_enable 3dnow` \
+ --with-plugindir=/usr/$(get_libdir)/cinelerra \
+ `use_enable truetype freetype2` \
+ `use_enable ieee1394 firewire` \
+ `use_enable css` \
+ `use_enable opengl` \
+ `use_enable altivec` \
+ --with-external-ffmpeg \
+ --with-buildinfo=cust/"Gentoo - SVN r1015" \
+ || die "configure failed"
+ emake || die "make failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ dohtml -a png,html,texi,sdw -r doc/*
+ # workaround
+ rm -fR "${D}/usr/include"
+ mv "${D}/usr/bin/mpeg3cat" "${D}/usr/bin/mpeg3cat.hv"
+ mv "${D}/usr/bin/mpeg3dump" "${D}/usr/bin/mpeg3dump.hv"
+ mv "${D}/usr/bin/mpeg3toc" "${D}/usr/bin/mpeg3toc.hv"
+ ln -s /usr/bin/mpeg2enc "${D}/usr/$(get_libdir)/cinelerra/mpeg2enc.plugin"
+}
+
+pkg_postinst () {
+ elog "Please note that this is unofficial and somewhat experimental code."
+ elog "See cvs.cinelerra.org for a list of changes to the official cinelerra"
+ elog "release."
+}
diff --git a/media-video/cinelerra-cvs/files/cinelerra-cvs-swscaler.patch b/media-video/cinelerra-cvs/files/cinelerra-cvs-swscaler.patch
new file mode 100644
index 000000000000..a478e3670ae7
--- /dev/null
+++ b/media-video/cinelerra-cvs/files/cinelerra-cvs-swscaler.patch
@@ -0,0 +1,159 @@
+Index: cinelerra-cvs/cinelerra/ffmpeg.C
+===================================================================
+--- cinelerra-cvs.orig/cinelerra/ffmpeg.C
++++ cinelerra-cvs/cinelerra/ffmpeg.C
+@@ -140,6 +140,11 @@ int FFMPEG::convert_cmodel(VFrame *frame
+ PixelFormat pix_fmt_out =
+ color_model_to_pix_fmt(frame_out->get_color_model());
+
++#ifdef HAVE_SWSCALER
++ // We need a context for swscale
++ struct SwsContext *convert_ctx;
++#endif
++
+ // do conversion within libavcodec if possible
+ if (pix_fmt_in != PIX_FMT_NB && pix_fmt_out != PIX_FMT_NB) {
+ // set up a temporary pictures from frame_in and frame_out
+@@ -147,7 +152,9 @@ int FFMPEG::convert_cmodel(VFrame *frame
+ init_picture_from_frame(&picture_in, frame_in);
+ init_picture_from_frame(&picture_out, frame_out);
+
+- int result = img_convert(&picture_out,
++ int result;
++#ifndef HAVE_SWSCALER
++ result = img_convert(&picture_out,
+ pix_fmt_out,
+ &picture_in,
+ pix_fmt_in,
+@@ -156,6 +163,28 @@ int FFMPEG::convert_cmodel(VFrame *frame
+ if (result) {
+ printf("FFMPEG::convert_cmodel img_convert() failed\n");
+ }
++#else
++ convert_ctx = sws_getContext(frame_in->get_w(), frame_in->get_h(),pix_fmt_in,
++ frame_out->get_w(),frame_out->get_h(),pix_fmt_out,
++ SWS_BICUBIC, NULL, NULL, NULL);
++
++ if(convert_ctx == NULL){
++ printf("FFMPEG::convert_cmodel : swscale context initialization failed\n");
++ return 1;
++ }
++
++ result = sws_scale(convert_ctx,
++ picture_in.data, picture_in.linesize,
++ 0, 0,
++ picture_out.data, picture_out.linesize);
++
++
++ sws_freeContext(convert_ctx);
++
++ if(result){
++ printf("FFMPEG::convert_cmodel sws_scale() failed\n");
++ }
++#endif
+ return result;
+ }
+
+@@ -203,13 +232,19 @@ int FFMPEG::convert_cmodel(AVPicture *pi
+
+ // set up a temporary picture_out from frame_out
+ AVPicture picture_out;
++#ifdef HAVE_SWSCALER
++ // We need a context for swscale
++ struct SwsContext *convert_ctx;
++#endif
+ init_picture_from_frame(&picture_out, frame_out);
+ int cmodel_out = frame_out->get_color_model();
+ PixelFormat pix_fmt_out = color_model_to_pix_fmt(cmodel_out);
+
+ // do conversion within libavcodec if possible
+ if (pix_fmt_out != PIX_FMT_NB) {
+- int result = img_convert(&picture_out,
++ int result;
++#ifndef HAVE_SWSCALER
++ result = img_convert(&picture_out,
+ pix_fmt_out,
+ picture_in,
+ pix_fmt_in,
+@@ -218,6 +253,28 @@ int FFMPEG::convert_cmodel(AVPicture *pi
+ if (result) {
+ printf("FFMPEG::convert_cmodel img_convert() failed\n");
+ }
++#else
++ convert_ctx = sws_getContext(width_in, height_in,pix_fmt_in,
++ frame_out->get_w(),frame_out->get_h(),pix_fmt_out,
++ SWS_BICUBIC, NULL, NULL, NULL);
++
++ if(convert_ctx == NULL){
++ printf("FFMPEG::convert_cmodel : swscale context initialization failed\n");
++ return 1;
++ }
++
++ result = sws_scale(convert_ctx,
++ picture_in->data, picture_in->linesize,
++ 0, 0,
++ picture_out.data, picture_out.linesize);
++
++
++ sws_freeContext(convert_ctx);
++
++ if(result){
++ printf("FFMPEG::convert_cmodel sws_scale() failed\n");
++ }
++#endif
+ return result;
+ }
+
+Index: cinelerra-cvs/cinelerra/ffmpeg.h
+===================================================================
+--- cinelerra-cvs.orig/cinelerra/ffmpeg.h
++++ cinelerra-cvs/cinelerra/ffmpeg.h
+@@ -3,6 +3,9 @@
+
+ extern "C" {
+ #include <avcodec.h>
++#ifdef HAVE_SWSCALER
++#include <swscale.h>
++#endif
+ }
+
+ #include "asset.h"
+Index: cinelerra-cvs/configure.in
+===================================================================
+--- cinelerra-cvs.orig/configure.in
++++ cinelerra-cvs/configure.in
+@@ -341,10 +341,33 @@ AC_SUBST(CPU_CFLAGS)
+ ############ external ffmpeg
+ AC_ARG_WITH([external-ffmpeg], AC_HELP_STRING([--with-external-ffmpeg], [use external ffmpeg library]))
+
++AH_TEMPLATE(HAVE_SWSCALER, [Define to 1 if swscaler is available in ffmpeg.])
++
+ if test "x$with_external_ffmpeg" = "xyes"; then
+- PKG_CHECK_MODULES([FFMPEG], [libavcodec libpostproc])
++ PKG_CHECK_MODULES([FFMPEG_TEMP], [libavcodec libpostproc])
+ FFMPEG_FOLDER=""
+ FFMPEG_EXTERNALTEXT="External ffmpeg"
++
++ dnl --------------------------------------------------------------
++ dnl check if libavcodec contains img_convert
++ dnl that means that libswscale is compiled in
++
++ AC_MSG_CHECKING(for ffmpeg swscale support)
++ saved_LIBS="$LIBS"
++ LIBS="$saved_LIBS $FFMPEG_TEMP_LIBS"
++ AC_TRY_LINK([#include <ffmpeg/avcodec.h>],
++ [img_convert(0, 0, 0,0,0,0)],
++ enable_ffmpeg_swscale=no,enable_ffmpeg_swscale=yes)
++ LIBS="$saved_LIBS"
++ AC_MSG_RESULT($enable_ffmpeg_swscale)
++
++ if test x"$enable_ffmpeg_swscale" == xyes; then
++ AC_DEFINE(HAVE_SWSCALER)
++ PKG_CHECK_MODULES([FFMPEG], [libavcodec libpostproc libswscale])
++ else
++ PKG_CHECK_MODULES([FFMPEG], [libavcodec libpostproc])
++ fi
++
+ else
+ FFMPEG_FOLDER=ffmpeg
+ FFMPEG_CFLAGS="-I\$(top_srcdir)/quicktime/ffmpeg/libavcodec"
diff --git a/media-video/cinelerra-cvs/files/digest-cinelerra-cvs-20070726 b/media-video/cinelerra-cvs/files/digest-cinelerra-cvs-20070726
new file mode 100644
index 000000000000..33aab6055c66
--- /dev/null
+++ b/media-video/cinelerra-cvs/files/digest-cinelerra-cvs-20070726
@@ -0,0 +1,3 @@
+MD5 082eb4266f783357993ca903ff81a847 cinelerra-cvs-20070726.tar.bz2 23805203
+RMD160 5705ab77481a03dbc1f69b029cb4d97c59de3b79 cinelerra-cvs-20070726.tar.bz2 23805203
+SHA256 a43a832e2459fc9f9941dc57173373f5c22ae53a39ce16585bda2533608c8f22 cinelerra-cvs-20070726.tar.bz2 23805203