[gst-devel] gst-ffmpeg & decodebin
thomas.cooksey at trolltech.com
Wed Feb 6 18:35:12 CET 2008
On Wednesday 06 February 2008 15:42:04 Michael Smith wrote:
> On Wed, 2008-02-06 at 16:33 +0100, Tom Cooksey wrote:
> > Hi,
> > 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
> The key difference between these two is that decodebin will only
> autoplug elements that have a non-zero rank.
> ffdemux_mp3 and ffdec_mp3 have zero rank, because they don't work
> properly and there are better ones available in gstreamer. So they're
> there, and you can explicitly use them if you want, but we strongly
> recommend against it.
But surely the ffmpeg plugins should be used if there are no other plugins
avaliable? Can they not just be given a very low (non-zero) rank, so if
there's _anything_ else which will play them, it will be used and if there
isn't, ffmpeg is used as a last resort?
Is it just ffdemux_mp3 & ffdec_mp3 which have a rank of zero? Do any of the
other ffmpeg demuxers & decoders have a higher rank (BTW: where is this
defined? in gst-ffmpeg or decidebin)? If all ffmpeg elements are given a
zero-rank, gst-ffmpeg effectivly becomes useless for our purposes and we
loose all the codecs it supports which aren't covered by other gstreamer
plugins (any idea how big the gap is here?).
Another issue is performance. I've tested cpu usage (with top - not very
scientific I know), and the ffmpeg plugin seems to perform better than even
mad (~23% CPU for mad, ~20-21% for ffmpeg on a 266Mhz armv4). For this
reason, I personally prefer the ffmpeg decoder. When you say "they don't work
properly and there are better ones available in gstreamer", what exactly do
you mean? Are there build issues, runtime crashes, compatability problems,
performance issues, quality issues, etc. I've tried ffmpeg on 3 architectures
now with no issues, although I've not really been paying too much attention
to the quality.
More information about the gstreamer-devel