version bump, workaround cinelerra's inability to set the ratecontrol method by resto...
authorAlexis Ballier <aballier@gentoo.org>
Sat, 1 Mar 2008 20:15:53 +0000 (20:15 +0000)
committerAlexis Ballier <aballier@gentoo.org>
Sat, 1 Mar 2008 20:15:53 +0000 (20:15 +0000)
Package-Manager: portage-2.1.4.4

media-video/cinelerra-cvs/ChangeLog
media-video/cinelerra-cvs/Manifest
media-video/cinelerra-cvs/cinelerra-cvs-20080301.ebuild [new file with mode: 0644]
media-video/cinelerra-cvs/files/cinelerra-cvs-defaultx264tocqp.patch [new file with mode: 0644]
media-video/cinelerra-cvs/files/cinelerra-cvs-swscaler.patch [new file with mode: 0644]

index e10c4d643bf22c7e0f51ad852e1b9de979035b84..8aa64ed319001a2f0336e1e34ab62661fbf6a089 100644 (file)
@@ -1,6 +1,15 @@
 # ChangeLog for media-video/cinelerra-cvs
 # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/cinelerra-cvs/ChangeLog,v 1.39 2008/01/26 00:03:04 aballier Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/cinelerra-cvs/ChangeLog,v 1.40 2008/03/01 20:15:52 aballier Exp $
+
+*cinelerra-cvs-20080301 (01 Mar 2008)
+
+  01 Mar 2008; Alexis Ballier <aballier@gentoo.org>
+  +files/cinelerra-cvs-defaultx264tocqp.patch,
+  +files/cinelerra-cvs-swscaler.patch, +cinelerra-cvs-20080301.ebuild:
+  version bump, workaround cinelerra's inability to set the ratecontrol method
+  by restoring the old default, thanks to Paul de Vries
+  <phs.de.vries@gmail.com> for reporting in bug #211206
 
   26 Jan 2008; Alexis Ballier <aballier@gentoo.org>
   cinelerra-cvs-20080115.ebuild:
index adb23f614f5d13f160711e09bbc1fb3108cde4b4..09aa60f2a0703c95c6873d9ccadc230bab4786aa 100644 (file)
@@ -1,6 +1,20 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
 AUX cinelerra-compilewarnings.diff 1424 RMD160 0c801e2cfc778a76681b7a976e47d18f0d8bb75a SHA1 c052d67f9de343189a2e63cf763c48644b42328e SHA256 387ee6e80a0e1f2905d27ba204fb2bda3753f16aa45bc7a16b82d6d51ad462d5
 AUX cinelerra-cvs-20080115-swscaler.patch 5012 RMD160 8ebc7520dc58b96fbe903964a05b5884b496ee90 SHA1 a0d15e358b5bdebc05194eb0966b98c25ec00d19 SHA256 acae0382cd23e8b4371151e5084aa0e0873f9e1c405f90fd7f2487fbb393ceb6
+AUX cinelerra-cvs-defaultx264tocqp.patch 405 RMD160 a89e2be0b15581d880a4cc086fcd9f233ee97391 SHA1 88810ed033a030f48e0264b48dd28526ad517698 SHA256 13082a69d87805cd743fc2fe7eae66e16a87eba763e17524da3b03a23d1483ac
+AUX cinelerra-cvs-swscaler.patch 5012 RMD160 8ebc7520dc58b96fbe903964a05b5884b496ee90 SHA1 a0d15e358b5bdebc05194eb0966b98c25ec00d19 SHA256 acae0382cd23e8b4371151e5084aa0e0873f9e1c405f90fd7f2487fbb393ceb6
 DIST cinelerra-cvs-20080115.tar.bz2 31231763 RMD160 41bc0a88e12f91aabca278ea05dde04d6632a3e0 SHA1 70eff234992d61d9a049ef7f26a04faefddb7671 SHA256 3ada71b7632379e9aca2ff335a038f73e36965e97df23551f788cc307081957c
+DIST cinelerra-cvs-20080301.tar.bz2 31202811 RMD160 9d04e04854206006572ebebff888af21bde947d3 SHA1 efc530ac8b88ade1acc3437b5edebe6eb3dc0fc9 SHA256 bf5ed3594eff305333d808eb414e75714c7b783ef85e95a0db838fcfb6c0d149
 EBUILD cinelerra-cvs-20080115.ebuild 2934 RMD160 903af6598e839203638a609bcec17fc1d8c358f3 SHA1 d039ca1617bcec8c58e436b1e8e10eafe07a6495 SHA256 e0060302299e338684c058a22cc9f780686c0936e8faed3e32fdcd589862cbe4
-MISC ChangeLog 6185 RMD160 c3206cb92814233cfb6ab408f07f356d6b50f545 SHA1 5ca521988fa979226d56f678b91df99b4cfe2006 SHA256 f0f034278dc5037067c5f1a8d7c30dd8def5b158edfe04dd9ce9138f0a3183f1
+EBUILD cinelerra-cvs-20080301.ebuild 2986 RMD160 ee91678162795a8a4af7d0e2e86c31384739011c SHA1 feda76e33c37ee5ae9051f891e8b5a6f83680079 SHA256 dc7fa00c3a799367432d212bd5d394979b7bb818ced0b9578d8c49ed8872cd13
+MISC ChangeLog 6586 RMD160 597300d47c96c8cc9ced1ae8a48bbb51134d3a7d SHA1 832899f9f4c4c186f16b1ffcd5a0b9b228997d36 SHA256 47e3206c61df5568a3259bfef9e0e5dd7d692867f9d9ed991ec2eac3bdd1bd7c
 MISC metadata.xml 159 RMD160 21717801992314b5fc85dfeb6da77bf71fc54c7e SHA1 26b6ea95dc60c40d9b482830ce7e7c54233a7698 SHA256 38df217d3a650829cd34e6c74bd2710a01751ccd5511b5be296e3f48dd4d81cb
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.7 (GNU/Linux)
+
+iD8DBQFHybmFvFcC4BYPU0oRAk3aAKC+PiNGnSO7eaYZbOPXt/zzsRTxLwCgulFC
+YgOEJKhGdMPso5iMl9Elqy4=
+=FWlU
+-----END PGP SIGNATURE-----
diff --git a/media-video/cinelerra-cvs/cinelerra-cvs-20080301.ebuild b/media-video/cinelerra-cvs/cinelerra-cvs-20080301.ebuild
new file mode 100644 (file)
index 0000000..7e312ab
--- /dev/null
@@ -0,0 +1,108 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/cinelerra-cvs/cinelerra-cvs-20080301.ebuild,v 1.1 2008/03/01 20:15:52 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}
+       dev-util/pkgconfig
+       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}/${PN}-swscaler.patch"
+       epatch "${FILESDIR}/cinelerra-compilewarnings.diff"
+       epatch "${FILESDIR}/${PN}-defaultx264tocqp.patch"
+       AT_M4DIR="m4" eautoreconf
+}
+
+src_compile() {
+       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 r1053" \
+       || 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-defaultx264tocqp.patch b/media-video/cinelerra-cvs/files/cinelerra-cvs-defaultx264tocqp.patch
new file mode 100644 (file)
index 0000000..88e98eb
--- /dev/null
@@ -0,0 +1,12 @@
+Index: cinelerra-cvs/quicktime/qth264.c
+===================================================================
+--- cinelerra-cvs.orig/quicktime/qth264.c
++++ cinelerra-cvs/quicktime/qth264.c
+@@ -506,6 +506,7 @@ static quicktime_h264_codec_t* init_comm
+ 
+       codec = (quicktime_h264_codec_t*)codec_base->priv;
+       x264_param_default(&codec->param);
++      codec->param.rc.i_rc_method = X264_RC_CQP;
+ 
+ 
+       return codec;
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 (file)
index 0000000..255ce4d
--- /dev/null
@@ -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"