summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Alfredsen <loki_val@gentoo.org>2008-06-23 22:34:47 +0000
committerPeter Alfredsen <loki_val@gentoo.org>2008-06-23 22:34:47 +0000
commit3cfd2f28227ca81c689fa942f5bc0b135cf88bbc (patch)
treebe06b3f394c42d9c7349255f165986ee7bc93462 /media-plugins
parentVersion bump, added RDEPEND back because pkg_resources is imported. Closes #2... (diff)
downloadgentoo-2-3cfd2f28227ca81c689fa942f5bc0b135cf88bbc.tar.gz
gentoo-2-3cfd2f28227ca81c689fa942f5bc0b135cf88bbc.tar.bz2
gentoo-2-3cfd2f28227ca81c689fa942f5bc0b135cf88bbc.zip
Revbump with patches to fix interaction with newer ffmpeg, courtesy of Debian. Fixes bug 229015.
(Portage version: 2.2_rc1/cvs/Linux 2.6.25.8 i686)
Diffstat (limited to 'media-plugins')
-rw-r--r--media-plugins/gst-plugins-ffmpeg/ChangeLog12
-rw-r--r--media-plugins/gst-plugins-ffmpeg/files/0.10.4/01_new-codec-ids.patch12
-rw-r--r--media-plugins/gst-plugins-ffmpeg/files/0.10.4/02_av_picture_copy.patch97
-rw-r--r--media-plugins/gst-plugins-ffmpeg/files/0.10.4/03_disable-aac.patch13
-rw-r--r--media-plugins/gst-plugins-ffmpeg/files/0.10.4/04_disable-mpegts.patch33
-rw-r--r--media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.10.4-r1.ebuild (renamed from media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.10.4.ebuild)13
6 files changed, 176 insertions, 4 deletions
diff --git a/media-plugins/gst-plugins-ffmpeg/ChangeLog b/media-plugins/gst-plugins-ffmpeg/ChangeLog
index 2d3d5dc5ccba..43d28ffd7410 100644
--- a/media-plugins/gst-plugins-ffmpeg/ChangeLog
+++ b/media-plugins/gst-plugins-ffmpeg/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for media-plugins/gst-plugins-ffmpeg
# Copyright 2000-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-plugins/gst-plugins-ffmpeg/ChangeLog,v 1.84 2008/06/22 23:23:57 loki_val Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-plugins/gst-plugins-ffmpeg/ChangeLog,v 1.85 2008/06/23 22:34:46 loki_val Exp $
+
+*gst-plugins-ffmpeg-0.10.4-r1 (23 Jun 2008)
+
+ 23 Jun 2008; Peter Alfredsen <loki_val@gentoo.org>
+ +files/0.10.4/01_new-codec-ids.patch, +files/0.10.4/03_disable-aac.patch,
+ +files/0.10.4/02_av_picture_copy.patch,
+ +files/0.10.4/04_disable-mpegts.patch, -gst-plugins-ffmpeg-0.10.4.ebuild,
+ +gst-plugins-ffmpeg-0.10.4-r1.ebuild:
+ Revbump with patches to fix interaction with newer ffmpeg, courtesy of
+ Debian. Fixes bug 229015.
*gst-plugins-ffmpeg-0.10.4 (22 Jun 2008)
diff --git a/media-plugins/gst-plugins-ffmpeg/files/0.10.4/01_new-codec-ids.patch b/media-plugins/gst-plugins-ffmpeg/files/0.10.4/01_new-codec-ids.patch
new file mode 100644
index 000000000000..ee7d45b5cb8c
--- /dev/null
+++ b/media-plugins/gst-plugins-ffmpeg/files/0.10.4/01_new-codec-ids.patch
@@ -0,0 +1,12 @@
+--- ext/ffmpeg/gstffmpegcodecmap.c.old 2008-05-12 17:24:59.000000000 +0200
++++ ext/ffmpeg/gstffmpegcodecmap.c 2008-05-12 17:26:20.000000000 +0200
+@@ -1051,6 +1051,9 @@
+ "samplesize", G_TYPE_INT, context->bits_per_sample, NULL);
+ }
+ break;
++ case CODEC_ID_VORBIS:
++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-vorbis", NULL);
++ break;
+ default:
+ g_warning ("Unknown codec ID %d, please add here", codec_id);
+ break;
diff --git a/media-plugins/gst-plugins-ffmpeg/files/0.10.4/02_av_picture_copy.patch b/media-plugins/gst-plugins-ffmpeg/files/0.10.4/02_av_picture_copy.patch
new file mode 100644
index 000000000000..2028eed2cb9e
--- /dev/null
+++ b/media-plugins/gst-plugins-ffmpeg/files/0.10.4/02_av_picture_copy.patch
@@ -0,0 +1,97 @@
+diff -up gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegcodecmap.c~ gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegcodecmap.c
+--- gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegcodecmap.c~ 2008-05-22 20:18:14.000000000 +0200
++++ gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegcodecmap.c 2008-05-22 20:18:14.000000000 +0200
+@@ -3287,29 +3287,3 @@ gst_ffmpeg_avpicture_fill (AVPicture * p
+
+ return 0;
+ }
+-
+-/**
+- * Convert image 'src' to 'dst'.
+- *
+- * We use this code to copy two pictures between the same
+- * colorspaces, so this function is not realy used to do
+- * colorspace conversion.
+- * The ffmpeg code has a bug in it where odd sized frames were
+- * not copied completely. We adjust the input parameters for
+- * the original ffmpeg img_convert function here so that it
+- * still does the right thing.
+- */
+-int
+-gst_ffmpeg_img_convert (AVPicture * dst, int dst_pix_fmt,
+- const AVPicture * src, int src_pix_fmt, int src_width, int src_height)
+-{
+- struct SwsContext *ctx;
+- int res;
+-
+- ctx = sws_getContext (src_width, src_height, src_pix_fmt, src_width, src_height, dst_pix_fmt, 2, /* flags : bicubic */
+- NULL, NULL, NULL);
+- res = sws_scale (ctx, (uint8_t **) src->data, (int *) src->linesize,
+- 2, src_width, dst->data, dst->linesize);
+- sws_freeContext (ctx);
+- return res;
+-}
+diff -up gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegcodecmap.h~ gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegcodecmap.h
+--- gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegcodecmap.h~ 2008-05-22 20:17:56.000000000 +0200
++++ gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegcodecmap.h 2008-05-22 20:17:56.000000000 +0200
+@@ -125,15 +125,6 @@ gst_ffmpeg_avpicture_fill (AVPicture * p
+ int height);
+
+ /*
+- * convert an image, we only use this for copying the image, ie,
+- * convert between the same colorspaces.
+- */
+-int
+-gst_ffmpeg_img_convert (AVPicture * dst, int dst_pix_fmt,
+- const AVPicture * src, int src_pix_fmt,
+- int src_width, int src_height);
+-
+-/*
+ * Convert from/to a GStreamer <-> FFMpeg timestamp.
+ */
+ static inline guint64
+diff -up gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegdec.c~ gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegdec.c
+--- gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegdec.c~ 2008-05-22 20:27:02.000000000 +0200
++++ gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegdec.c 2008-05-22 20:27:02.000000000 +0200
+@@ -1342,11 +1342,7 @@ get_output_buffer (GstFFMpegDec * ffmpeg
+ gst_ffmpeg_avpicture_fill (&pic, GST_BUFFER_DATA (*outbuf),
+ ffmpegdec->context->pix_fmt, width, height);
+
+- /* the original convert function did not do the right thing, this
+- * is a patched up version that adjust widht/height so that the
+- * ffmpeg one works correctly. */
+- gst_ffmpeg_img_convert (&pic, ffmpegdec->context->pix_fmt,
+- (AVPicture *) ffmpegdec->picture,
++ av_picture_copy(&pic, (AVPicture *) ffmpegdec->picture,
+ ffmpegdec->context->pix_fmt, width, height);
+ }
+ ffmpegdec->picture->pts = -1;
+diff -up gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegdemux.c~ gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegdemux.c
+--- gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegdemux.c~ 2008-05-22 20:27:18.000000000 +0200
++++ gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegdemux.c 2008-05-22 20:27:18.000000000 +0200
+@@ -1268,9 +1268,8 @@ gst_ffmpegdemux_loop (GstPad * pad)
+ avstream->codec->pix_fmt, avstream->codec->width,
+ avstream->codec->height);
+
+- gst_ffmpeg_img_convert (&dst, avstream->codec->pix_fmt,
+- &src, avstream->codec->pix_fmt, avstream->codec->width,
+- avstream->codec->height);
++ av_picture_copy (&dst, &src, avstream->codec->pix_fmt,
++ avstream->codec->width, avstream->codec->height);
+ } else {
+ memcpy (GST_BUFFER_DATA (outbuf), pkt.data, outsize);
+ }
+diff -up gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegmux.c~ gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegmux.c
+--- gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegmux.c~ 2008-05-22 20:27:17.000000000 +0200
++++ gst-ffmpeg-0.10.4/ext/ffmpeg/gstffmpegmux.c 2008-05-22 20:27:17.000000000 +0200
+@@ -554,8 +554,8 @@ gst_ffmpegmux_collected (GstCollectPads
+ gst_ffmpeg_avpicture_fill (&src, GST_BUFFER_DATA (buf),
+ PIX_FMT_RGB24, st->codec->width, st->codec->height);
+
+- gst_ffmpeg_img_convert (&dst, PIX_FMT_RGB24,
+- &src, PIX_FMT_RGB24, st->codec->width, st->codec->height);
++ av_picture_copy(&dst, &src, PIX_FMT_RGB24,
++ st->codec->width, st->codec->height);
+ } else {
+ pkt.data = GST_BUFFER_DATA (buf);
+ pkt.size = GST_BUFFER_SIZE (buf);
diff --git a/media-plugins/gst-plugins-ffmpeg/files/0.10.4/03_disable-aac.patch b/media-plugins/gst-plugins-ffmpeg/files/0.10.4/03_disable-aac.patch
new file mode 100644
index 000000000000..8b71092998c9
--- /dev/null
+++ b/media-plugins/gst-plugins-ffmpeg/files/0.10.4/03_disable-aac.patch
@@ -0,0 +1,13 @@
+--- ext/ffmpeg/gstffmpegdec.c.old 2008-05-23 11:45:42.000000000 +0200
++++ ext/ffmpeg/gstffmpegdec.c 2008-05-23 11:48:52.000000000 +0200
+@@ -2456,7 +2456,9 @@
+ !strcmp (in_plugin->name, "vorbis") ||
+ !strcmp (in_plugin->name, "mpeg1video") ||
+ !strcmp (in_plugin->name, "wavpack") ||
+- !strcmp (in_plugin->name, "mp2")) {
++ !strcmp (in_plugin->name, "mp2") ||
++ !strcmp (in_plugin->name, "libfaad") ||
++ !strcmp (in_plugin->name, "mpeg4aac")) {
+ GST_LOG ("Ignoring decoder %s", in_plugin->name);
+ goto next;
+ }
diff --git a/media-plugins/gst-plugins-ffmpeg/files/0.10.4/04_disable-mpegts.patch b/media-plugins/gst-plugins-ffmpeg/files/0.10.4/04_disable-mpegts.patch
new file mode 100644
index 000000000000..ac8eaf14c300
--- /dev/null
+++ b/media-plugins/gst-plugins-ffmpeg/files/0.10.4/04_disable-mpegts.patch
@@ -0,0 +1,33 @@
+Index: gstffmpegdemux.c
+===================================================================
+RCS file: /cvs/gstreamer/gst-ffmpeg/ext/ffmpeg/gstffmpegdemux.c,v
+retrieving revision 1.90
+diff -u -p -r1.90 gstffmpegdemux.c
+--- ext/ffmpeg/gstffmpegdemux.c 13 May 2008 15:07:25 -0000 1.90
++++ ext/ffmpeg/gstffmpegdemux.c 18 May 2008 14:33:02 -0000
+@@ -1142,10 +1142,14 @@ gst_ffmpegdemux_type_find (GstTypeFind *
+ res = MAX (1, res * GST_TYPE_FIND_MAXIMUM / AVPROBE_SCORE_MAX);
+ /* Restrict the probability for MPEG-TS streams, because there is
+ * probably a better version in plugins-base, if the user has a recent
+- * plugins-base */
+- if (!strcmp (in_plugin->name, "mpegts"))
++ * plugins-base (in fact we shouldn't even get here for ffmpeg mpegts or
++ * mpegtsraw typefinders, since we blacklist them) */
++ if (g_str_has_prefix (in_plugin->name, "mpegts"))
+ res = MIN (res, GST_TYPE_FIND_POSSIBLE);
+
++ GST_LOG ("ffmpeg typefinder '%s' suggests %" GST_PTR_FORMAT ", p=%u%%",
++ in_plugin->name, params->sinkcaps, res);
++
+ gst_type_find_suggest (tf, res, params->sinkcaps);
+ }
+ }
+@@ -1552,6 +1556,7 @@ gst_ffmpegdemux_register (GstPlugin * pl
+ !strcmp (in_plugin->name, "mpc") ||
+ !strcmp (in_plugin->name, "mpc8") ||
+ !strcmp (in_plugin->name, "mpegts") ||
++ !strcmp (in_plugin->name, "mpegtsraw") ||
+ !strcmp (in_plugin->name, "nuv") ||
+ !strcmp (in_plugin->name, "swf") ||
+ !strcmp (in_plugin->name, "voc") || !strcmp (in_plugin->name, "gif"))
+
diff --git a/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.10.4.ebuild b/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.10.4-r1.ebuild
index 7fabd3dd9a8d..7495c0ca263c 100644
--- a/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.10.4.ebuild
+++ b/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.10.4-r1.ebuild
@@ -1,10 +1,11 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.10.4.ebuild,v 1.1 2008/06/22 23:23:58 loki_val Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.10.4-r1.ebuild,v 1.1 2008/06/23 22:34:46 loki_val Exp $
-inherit flag-o-matic eutils
+inherit flag-o-matic eutils base
-MY_PN=${PN/-plugins/}
+PD=${FILESDIR}/${PV}
+MY_PN=${PN/-plugins}
MY_P=${MY_PN}-${PV}
# Create a major/minor combo for SLOT
@@ -29,9 +30,15 @@ RDEPEND=">=media-libs/gstreamer-0.10.4
DEPEND="${RDEPEND}
dev-util/pkgconfig"
+PATCHES=( "${PD}/01_new-codec-ids.patch"
+ "${PD}/02_av_picture_copy.patch"
+ "${PD}/03_disable-aac.patch"
+ "${PD}/04_disable-mpegts.patch" )
+
src_unpack() {
unpack ${A}
cd "${S}"
+ base_src_unpack autopatch
sed -i \
-e 's,ffmpeg/avformat.h,libavformat/avformat.h,' \
-e 's,ffmpeg/avcodec.h,libavcodec/avcodec.h,' \