After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 679462 - playbin: improve error message when plugins are missing
playbin: improve error message when plugins are missing
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
newcomer
: 770186 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2012-07-05 16:54 UTC by Bastien Nocera
Modified: 2018-11-03 11:21 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Bastien Nocera 2012-07-05 16:54:20 UTC
Using totem-video-thumbnailer ported to GStreamer 1.0. I get:

TotemVideoThumbnailer-Message: Initialised libraries, about to create video widget
TotemVideoThumbnailer-Message: setting URI file:///home/hadess/example.y4m
TotemVideoThumbnailer-Message: Video widget created
TotemVideoThumbnailer-Message: About to open video file
0:00:00.128743859 [331m13692[00m       0xfe4a10 [31;01mERROR  [00m [00;04m             default totem-gst-helpers.c:61:totem_gst_message_print:[00m message = Your GStreamer installation is missing a plug-in.
0:00:00.128784255 [331m13692[00m       0xfe4a10 [31;01mERROR  [00m [00;04m             default totem-gst-helpers.c:63:totem_gst_message_print:[00m domain  = 2591 (gst-core-error-quark)
0:00:00.128799413 [331m13692[00m       0xfe4a10 [31;01mERROR  [00m [00;04m             default totem-gst-helpers.c:64:totem_gst_message_print:[00m code    = 12
0:00:00.128808122 [331m13692[00m       0xfe4a10 [31;01mERROR  [00m [00;04m             default totem-gst-helpers.c:65:totem_gst_message_print:[00m debug   = gstdecodebin2.c(3686): gst_decode_bin_expose (): /GstPlayBin:play/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0:
no suitable plugins found
0:00:00.128817996 [331m13692[00m       0xfe4a10 [31;01mERROR  [00m [00;04m             default totem-gst-helpers.c:66:totem_gst_message_print:[00m source  = <decodebin0>
0:00:00.128833565 [331m13692[00m       0xfe4a10 [31;01mERROR  [00m [00;04m             default totem-gst-helpers.c:67:totem_gst_message_print:[00m uri     = (NULL)
totem-video-thumbnailer couldn't open file '/home/hadess/example.y4m'

But in the debug I can see:
0:00:00.439854033 ^[[334m13671^[[00m      0x1794990 ^[[37mDEBUG  ^[[00m ^[[00;43m             GST_BUS gstbus.c:314:gst_bus_post:<bus3>^[[00m [msg 0x179c700] posting on bus error message from element 'decodebin0': GstMessageError, gerror=(GError)NULL, debug=(string)"gstdecodebin2.c\(1726\):\ analyze_new_pad\ \(\):\ /GstPlayBin:play/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0:\012No\ decoder\ to\ handle\ media\ type\ \'application/x-yuv4mpeg\'";

Which is a much better error message. How come that more helpful message isn't getting posted to the bus?

This is the debug print code:
http://git.gnome.org/browse/totem/tree/src/gst/totem-gst-helpers.c#n36

The changes for GStreamer 1.0 are minimal, see patch in bug 674078
Comment 1 Bastien Nocera 2012-07-05 16:59:43 UTC
gst-launch output isn't that much more useful.

$ gst-launch-1.0 playbin uri=file:///home/hadess/example.y4m
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Missing element: Y4M demuxer
WARNING: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: No decoder available for type 'application/x-yuv4mpeg'.
Additional debug info:
gsturidecodebin.c(882): unknown_type_cb (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0
ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0: Your GStreamer installation is missing a plug-in.
Additional debug info:
gstdecodebin2.c(3686): gst_decode_bin_expose (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0:
no suitable plugins found
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
Comment 2 Sebastian Dröge (slomo) 2014-02-08 15:29:55 UTC
You get the useful information in the missing-plugin message if that helps, and as the warning message there.

The problem code-wise is that we post a warning for every type that has no usable plugin... and then if none of all the types had a usable plugin an error message is posted, just that at this point there could be a long list of missing plugins.
Comment 3 Tim-Philipp Müller 2016-08-14 10:17:09 UTC
playbin (or at least playbin3 at this point) should intercept any missing plugin messages that were sent, and create one error message that contains a list of missing plugins. It should get the descriptions of the missing plugins (e.g. "MP3 audio decoder") from the description API in pbutils.

Maybe it can also be done by just peeking at caps of unsupported streams in playbin3 (not sure right now how streams for which decoders are missing are exposed/handled in decodebin3/playbin3).
Comment 4 Tim-Philipp Müller 2016-08-24 11:30:16 UTC
*** Bug 770186 has been marked as a duplicate of this bug. ***
Comment 5 GStreamer system administrator 2018-11-03 11:21:39 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/68.