[Bug 770186] no human readable error when decoder not found

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sun Aug 21 17:11:11 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=770186

Tim-Philipp Müller <t.i.m at zen.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |NEEDINFO
                 CC|                            |t.i.m at zen.co.uk

--- Comment #1 from Tim-Philipp Müller <t.i.m at zen.co.uk> ---
Thanks for the bug report.

> "(Banshee:15178): GStreamer-CRITICAL **: gst_element_query: assertion
> 'GST_IS_ELEMENT (element)' failed"
> 
> This is not a useful error message for anyone other than a developer. It
> should be more verbose about what is ACTUALLY wrong (there is no plugin
> installed which can handle the media).

This is not an error message at all, it's a critical assertion that indicates a
programming error in some piece of code. We would need a stack trace from the
critical to know which piece of code triggers it and if it's in Banshee or
GStreamer. If you know how to use gdb you can break on g_logv to get this.


I don't know what GStreamer pipeline Banshee uses internally, but I assume it's
playbin. Here's the kind of messages the application gets in this case:

gst-launch-1.0 playbin uri=file:///Song.mp3 

Missing element: MPEG-1 Layer 3 (MP3) decoder [missing-plugin message on the
bus]

WARNING: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: No
decoder available for type 'audio/mpeg, mpegversion=(int)1,
mpegaudioversion=(int)1, layer=(int)3, rate=(int)44100, channels=(int)2,
parsed=(boolean)true' [warning message on the bus, this could contain a
description as well, as above]

ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: Your
GStreamer installation is missing a plug-in. [error message on the bus]


Additional debug info: [part of the error message, but for the developer, not
something to ever show to a user]
gsturidecodebin.c(1006): no_more_pads_full ():
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0:
no suitable plugins found:
gstdecodebin2.c(4565): gst_decode_bin_expose ():
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0:
no suitable plugins found:
Missing decoder: MPEG-1 Layer 3 (MP3) (audio/mpeg, mpegversion=(int)1,
mpegaudioversion=(int)1, layer=(int)3, rate=(int)44100, channels=(int)2,
parsed=(boolean)true)

So the lower-level elements (uridecodebin, decodebin) actually show a useful
error message, specifying which decoder/decoders is/are missing, but playbin
itself just says 'Your GStreamer installation is missing a plugin.'.

This looks like a duplicate of bug #679462 to me then. We can and should
certainly improve this, but Banshee developers have all the information to
improve this on their end too (from the missing-plugin message, they can even
call the distro to ask it to install the missing plugins).

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list