summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Ballier <aballier@gentoo.org>2009-03-10 07:39:11 +0000
committerAlexis Ballier <aballier@gentoo.org>2009-03-10 07:39:11 +0000
commit8bbdfbf2b124549d8ad0c62adf9a778651579dce (patch)
treeff81f2a1e52d70a7803e1169cded9e1bdf1e49bf /media-libs/mlt
parentBump to the 0.5 release. (diff)
downloadgentoo-2-8bbdfbf2b124549d8ad0c62adf9a778651579dce.tar.gz
gentoo-2-8bbdfbf2b124549d8ad0c62adf9a778651579dce.tar.bz2
gentoo-2-8bbdfbf2b124549d8ad0c62adf9a778651579dce.zip
Add upstream fix to build with ffmpeg trunk
(Portage version: 2.2_rc23/cvs/Linux x86_64)
Diffstat (limited to 'media-libs/mlt')
-rw-r--r--media-libs/mlt/ChangeLog6
-rw-r--r--media-libs/mlt/files/mlt-0.3.6-avutil.patch167
-rw-r--r--media-libs/mlt/mlt-0.3.6.ebuild3
3 files changed, 174 insertions, 2 deletions
diff --git a/media-libs/mlt/ChangeLog b/media-libs/mlt/ChangeLog
index 63bcc382d5c5..2844b409c6ff 100644
--- a/media-libs/mlt/ChangeLog
+++ b/media-libs/mlt/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for media-libs/mlt
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/mlt/ChangeLog,v 1.36 2009/02/09 18:40:54 aballier Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/mlt/ChangeLog,v 1.37 2009/03/10 07:39:11 aballier Exp $
+
+ 10 Mar 2009; Alexis Ballier <aballier@gentoo.org>
+ +files/mlt-0.3.6-avutil.patch, mlt-0.3.6.ebuild:
+ Add upstream fix to build with ffmpeg trunk
*mlt-0.3.6 (09 Feb 2009)
diff --git a/media-libs/mlt/files/mlt-0.3.6-avutil.patch b/media-libs/mlt/files/mlt-0.3.6-avutil.patch
new file mode 100644
index 000000000000..64d06dd9a610
--- /dev/null
+++ b/media-libs/mlt/files/mlt-0.3.6-avutil.patch
@@ -0,0 +1,167 @@
+http://mlt.svn.sourceforge.net/viewvc/mlt?view=rev&revision=1376
+
+Index: src/modules/avformat/filter_swscale.c
+===================================================================
+--- src/modules/avformat/filter_swscale.c (revision 1375)
++++ src/modules/avformat/filter_swscale.c (revision 1376)
+@@ -33,6 +33,11 @@
+ #include <string.h>
+ #include <assert.h>
+
++#if LIBAVUTIL_VERSION_INT < (50<<16)
++#define PIX_FMT_RGB32 PIX_FMT_RGBA32
++#define PIX_FMT_YUYV422 PIX_FMT_YUV422
++#endif
++
+ static inline int is_big_endian( )
+ {
+ union { int i; char c[ 4 ]; } big_endian_test;
+@@ -51,10 +56,10 @@
+ value = PIX_FMT_RGB24;
+ break;
+ case mlt_image_rgb24a:
+- value = PIX_FMT_RGBA32;
++ value = PIX_FMT_RGB32;
+ break;
+ case mlt_image_yuv422:
+- value = PIX_FMT_YUV422;
++ value = PIX_FMT_YUYV422;
+ break;
+ case mlt_image_yuv420p:
+ value = PIX_FMT_YUV420P;
+@@ -109,7 +114,7 @@
+ avpicture_fill( &output, outbuf, oformat, owidth, oheight );
+
+ // Extract the alpha channel
+- if ( iformat == PIX_FMT_RGBA32 && oformat == PIX_FMT_YUV422 )
++ if ( iformat == PIX_FMT_RGB32 && oformat == PIX_FMT_YUYV422 )
+ {
+ // Allocate the alpha mask
+ uint8_t *alpha = mlt_pool_alloc( iwidth * ( iheight + 1 ) );
+@@ -118,7 +123,7 @@
+ // Convert the image and extract alpha
+ mlt_convert_rgb24a_to_yuv422( *image, iwidth, iheight, iwidth * 4, outbuf, alpha );
+ mlt_properties_set_data( properties, "alpha", alpha, iwidth * ( iheight + 1 ), ( mlt_destructor )mlt_pool_release, NULL );
+- iformat = PIX_FMT_YUV422;
++ iformat = PIX_FMT_YUYV422;
+ avpicture_fill( &input, outbuf, iformat, iwidth, iheight );
+ avpicture_fill( &output, *image, oformat, owidth, oheight );
+ }
+Index: src/modules/avformat/consumer_avformat.c
+===================================================================
+--- src/modules/avformat/consumer_avformat.c (revision 1375)
++++ src/modules/avformat/consumer_avformat.c (revision 1376)
+@@ -41,6 +41,11 @@
+ #endif
+ #include <opt.h>
+
++#if LIBAVUTIL_VERSION_INT < (50<<16)
++#define PIX_FMT_RGB32 PIX_FMT_RGBA32
++#define PIX_FMT_YUYV422 PIX_FMT_YUV422
++#endif
++
+ //
+ // This structure should be extended and made globally available in mlt
+ //
+@@ -810,7 +815,7 @@
+
+ // Need two av pictures for converting
+ AVFrame *output = NULL;
+- AVFrame *input = alloc_picture( PIX_FMT_YUV422, width, height );
++ AVFrame *input = alloc_picture( PIX_FMT_YUYV422, width, height );
+
+ // For receiving images from an mlt_frame
+ uint8_t *image;
+@@ -1102,17 +1107,17 @@
+
+ // Do the colour space conversion
+ #ifdef SWSCALE
+- struct SwsContext *context = sws_getContext( width, height, PIX_FMT_YUV422,
++ struct SwsContext *context = sws_getContext( width, height, PIX_FMT_YUYV422,
+ width, height, video_st->codec->pix_fmt, SWS_FAST_BILINEAR, NULL, NULL, NULL);
+ sws_scale( context, input->data, input->linesize, 0, height,
+ output->data, output->linesize);
+ sws_freeContext( context );
+ #else
+- img_convert( ( AVPicture * )output, video_st->codec->pix_fmt, ( AVPicture * )input, PIX_FMT_YUV422, width, height );
++ img_convert( ( AVPicture * )output, video_st->codec->pix_fmt, ( AVPicture * )input, PIX_FMT_YUYV422, width, height );
+ #endif
+
+ // Apply the alpha if applicable
+- if ( video_st->codec->pix_fmt == PIX_FMT_RGBA32 )
++ if ( video_st->codec->pix_fmt == PIX_FMT_RGB32 )
+ {
+ uint8_t *alpha = mlt_frame_get_alpha_mask( frame );
+ register int n;
+Index: src/modules/avformat/filter_avcolour_space.c
+===================================================================
+--- src/modules/avformat/filter_avcolour_space.c (revision 1375)
++++ src/modules/avformat/filter_avcolour_space.c (revision 1376)
+@@ -27,6 +27,11 @@
+ #include <swscale.h>
+ #endif
+
++#if LIBAVUTIL_VERSION_INT < (50<<16)
++#define PIX_FMT_RGB32 PIX_FMT_RGBA32
++#define PIX_FMT_YUYV422 PIX_FMT_YUV422
++#endif
++
+ #include <stdio.h>
+ #include <stdlib.h>
+
+@@ -48,10 +53,10 @@
+ value = PIX_FMT_RGB24;
+ break;
+ case mlt_image_rgb24a:
+- value = PIX_FMT_RGBA32;
++ value = PIX_FMT_RGB32;
+ break;
+ case mlt_image_yuv422:
+- value = PIX_FMT_YUV422;
++ value = PIX_FMT_YUYV422;
+ break;
+ case mlt_image_yuv420p:
+ value = PIX_FMT_YUV420P;
+Index: src/modules/avformat/filter_avdeinterlace.c
+===================================================================
+--- src/modules/avformat/filter_avdeinterlace.c (revision 1375)
++++ src/modules/avformat/filter_avdeinterlace.c (revision 1376)
+@@ -81,6 +81,10 @@
+ movd_r2m(mm1,dst[0]);
+ #endif
+
++#if LIBAVUTIL_VERSION_INT < (50<<16)
++#define PIX_FMT_YUYV422 PIX_FMT_YUV422
++#endif
++
+ /* filter parameters: [-1 4 2 4 -1] // 8 */
+ static inline void deinterlace_line(uint8_t *dst,
+ const uint8_t *lum_m4, const uint8_t *lum_m3,
+@@ -237,14 +241,14 @@
+
+ if (pix_fmt != PIX_FMT_YUV420P &&
+ pix_fmt != PIX_FMT_YUV422P &&
+- pix_fmt != PIX_FMT_YUV422 &&
++ pix_fmt != PIX_FMT_YUYV422 &&
+ pix_fmt != PIX_FMT_YUV444P &&
+ pix_fmt != PIX_FMT_YUV411P)
+ return -1;
+ if ((width & 3) != 0 || (height & 3) != 0)
+ return -1;
+
+- if ( pix_fmt != PIX_FMT_YUV422 )
++ if ( pix_fmt != PIX_FMT_YUYV422 )
+ {
+ for(i=0;i<3;i++) {
+ if (i == 1) {
+@@ -314,8 +318,8 @@
+ // Fill the picture
+ if ( *format == mlt_image_yuv422 )
+ {
+- avpicture_fill( output, *image, PIX_FMT_YUV422, *width, *height );
+- mlt_avpicture_deinterlace( output, output, PIX_FMT_YUV422, *width, *height );
++ avpicture_fill( output, *image, PIX_FMT_YUYV422, *width, *height );
++ mlt_avpicture_deinterlace( output, output, PIX_FMT_YUYV422, *width, *height );
+ }
+
+ // Free the picture
diff --git a/media-libs/mlt/mlt-0.3.6.ebuild b/media-libs/mlt/mlt-0.3.6.ebuild
index 320fd982238e..5c69c810bb5b 100644
--- a/media-libs/mlt/mlt-0.3.6.ebuild
+++ b/media-libs/mlt/mlt-0.3.6.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/mlt/mlt-0.3.6.ebuild,v 1.1 2009/02/09 18:40:54 aballier Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/mlt/mlt-0.3.6.ebuild,v 1.2 2009/03/10 07:39:11 aballier Exp $
EAPI=1
@@ -50,6 +50,7 @@ src_unpack() {
unpack ${A}
cd "${S}"
epatch "${FILESDIR}"/mlt-0.2.3-nostrip.patch
+ epatch "${FILESDIR}"/${P}-avutil.patch
}
src_compile() {