[gst-devel] gst-ffmpeg & decodebin

Tom Cooksey thomas.cooksey at trolltech.com
Wed Feb 6 16:33:47 CET 2008


Background: I am trying to get the new Qt/KDE Phonon library working on Qtopia 
Core (Qt/Embedded). Linux/Qtopia Core uses the GStreamer backend for Phonon - 
specifically the decodebin element.

I'm having problems getting decodebin (& playbin) to detect & use the ffmpeg 
elements. E.g.

The following works fine:
gst-launch filesrc location=01_Neighborhood_1_Tunnels_.mp3  ! ffdemux_mp3 ! 
ffdec_mp3 ! alsasink

However, using decodebin I get:

$ gst-launch-0.10 filesrc location=01_Neighborhood_1_Tunnels_.mp3 ! 
decodebin ! audioconvert ! alsasink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /pipeline0/decodebin0: A ID3 tag demuxer plugin is 
required to play this stream, but not installed.
Additional debug info:
gstdecodebin.c(792): close_pad_link (): /pipeline0/decodebin0:
No decoder to handle media type 'application/x-id3'
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
FREEING pipeline ...

I also have gst-plugin-ogg & gst-plugin-vorbis installed. When I use decodebin 
with an ogg/vorbis file, it works fine:

$ gst-launch-0.10 filesrc location=Hydrate-Kenny_Beltrey.ogg ! decodebin ! 
audioconvert ! alsasink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock

I've checked my ~/.gstreamer-0.10/registry.x86_64.xml and found the following:
 <feature typename="GstElementFactory">
  <longname>FFMPEG MPEG audio demuxer</longname>
  <description>FFMPEG MPEG audio demuxer</description>
  <author>Wim Taymans &lt;wim at fluendo.com&gt;, Ronald Bultje 
&lt;rbultje at ronald.bitfreak.net&gt;, Edward Hervey 
&lt;bilboed at bilboed.com&gt;</author>
 <feature typename="GstTypeFindFactory">

So does this mean ffmpeg has registered an element for application/x-id3?

I have tried this on ARM (OpenEmbedded), amd64 (Gentoo - my main devel PC) & 
x86 (Kubuntu). I have searched the mailing list archives and found someone 
else posting what I beleive is the same problem on 2007-01-05 in 
thread "using fffmpeg demuxers in playbin". I assume the problem is somewhere 
in the gst-ffmpeg code, where it registers the various elements (as hinted at 
in "using fffmpeg demuxers in playbin"). 

1) Has this already been fixed? I'm using gst-ffmpeg 10.3.
2) If not, is it worth debuging this & sending in a patch? Would it ever be 
accepted? I smell patent politics with this bug. Specifically, gstreamer 
should prefer a patent-free plugin over a plugin which has a merky patent 
3) If it's worth me looking into this, any recomendations where to start 
looking? (I looked at my first gst source file today :-) )



More information about the gstreamer-devel mailing list