Bug#594785: gstreamer0.10-ffmpeg: Needs to be rebuilt when ffmpeg 0.6 lands in unstable

Daniel Burr dburr at topcon.com
Sun Aug 29 14:12:20 UTC 2010

Package: gstreamer0.10-ffmpeg
Version: 0.10.10-1
Severity: wishlist

The gstreamer0.10-ffmpeg package is configured with the --with-system-ffmpeg
option so that it uses external versions of the ffmpeg libraries and headers
(libavcodec, libavformat, libavutil, etc).  The current version in
testing/unstable (0.10.10-1) was built against ffmpeg 0.5.2 and 
therefore works
correctly if the 0.5.2 versions of 
libavcodec52/libavformat52/libavutil49 are

However, if ffmpeg 0.6 versions of these libraries are installed (using the
packages from experimental or debian-multimedia) then 
gstreamer0.10-ffmpeg will
misbehave.  The particular case which I encountered was a failure to decode
h264 in a mkv container.  totem was exiting with the following error:

** Message: Error: Internal GStreamer error: negotiation problem. 
Please file
a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer.
gstffmpegdec.c(1267): gst_ffmpegdec_negotiate ():
could not find caps for codec (h264), unknown type

By running it at the GST_DEBUG=9 log level I saw the following output:

ffmpeg gstffmpegdec.c:1181:gst_ffmpegdec_negotiate:<ffdec_h2640> 
video from 0x0@ -1/-1 fps to 512x384@ 8000000/333667 fps
ffmpeg gstffmpegcodecmap.c:1795:gst_ffmpeg_codectype_to_video_caps:
context:0x97f3330, codec_id:28, encode:0, codec:(nil)
ffmpeg gstffmpegcodecmap.c:1675:gst_ffmpeg_pixfmt_to_caps: No caps found for
ffmpeg gstffmpegdec.c:1267:gst_ffmpegdec_negotiate:<ffdec_h2640> error: 
not find caps for codec (h264), unknown type

And by comparing libavutil/pixfmt.h between ffmpeg 0.5.2 and 0.6 I can 
see that
the definition for the PixelFormat enum has indeed changed, meaning that
pix_fmt=12 is no longer equal to PIX_FMT_YUVJ420P.

This is no doubt the root cause of
https://bugzilla.gnome.org/show_bug.cgi?id=626495 and

Therefore gstreamer0.10-ffmpeg needs to be rebuilt (and preferably 
updated to
0.10.11) if/when the ffmpeg 0.6-based versions of
libavcodec52/libavformat52/libavutil49 are migrated from experimental to
unstable.  However, I think this is just one symptom of what may turn 
out to be
a bigger problem - numerous other packages use libavformat and they will all
suffer similar misbehaviour if they are not rebuilt.  My recommendation 
be that the ffmpeg 0.6-based packages are not called 
(as in currently being done in experimental and debian-multimedia) but 
instead new
packages called libavcodec60/libavformat60 are created.  That way, packages
which were built against 0.5.2 will not be immediately broken and they 
can be
migrated to 0.6 over time.  It is quite possible that this approach has 
been considered and rejected for a good reason but I do not know of it.

-- System Information:
Debian Release: squeeze/sid
   APT prefers testing
   APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash

Versions of packages gstreamer0.10-ffmpeg depends on:
ii  libavcodec52       5:0.6~svn20100726-0.0 library to encode decode 
ii  libavformat52      5:0.6~svn20100726-0.0 ffmpeg file format library
ii  libavutil49        4:0.5.2-1             ffmpeg utility library
ii  libc6              2.11.2-2              Embedded GNU C Library: 
Shared lib
ii  libglib2.0-0       2.24.1-1              The GLib library of C routines
ii  libgstreamer-plugi 0.10.30-1             GStreamer libraries from 
the "base
ii  libgstreamer0.10-0 0.10.30-1             Core GStreamer libraries 
and eleme
ii  liboil0.3          0.3.17-1              Library of Optimized Inner 
ii  libpostproc51      5:0.6~svn20100726-0.0 postproc shared libraries
ii  libswscale0        5:0.6~svn20100726-0.0 ffmpeg video scaling library

gstreamer0.10-ffmpeg recommends no packages.

gstreamer0.10-ffmpeg suggests no packages.

-- no debconf information

Confidentiality Notice:  This message (including attachments) is a private communication solely for use of the intended recipient(s).  
If you are not the intended recipient(s) or believe you received this message in error, notify the sender immediately and then delete this 
message.  Any other use, retention, dissemination or copying is prohibited and may be a violation of law, including the Electronic 
Communication Privacy Act of 1986."

More information about the pkg-gstreamer-maintainers mailing list