GNOME Bugzilla – Bug 678892
uridecodebin: differentiate between no URI handler found and URI not accepted by handler
Last modified: 2013-04-21 17:33:59 UTC
+++ This bug was initially created as a clone of Bug #645467 +++ If the $HOME/.gstreamer-0.10/dvb-channels.conf is in an unsuitable format for parse_channels_conf_from_file (), then the end result is a very confusing error message for users: ERROR: from element /GstURIDecodeBin:uridecodebin0: No URI handler implemented for "dvb". While gst-inspect dvbbasebin shows an URI handler: Supported URI protocols: dvb (but many users who know gst-inspect may look into dvbsrc element instead like I did initially, which isn't a uri handler). Hopefully it could propagate and present a better error message in this case. Noticed this because a w_scan upgrade seemed to start generating a different format file now from old totem pre-gnome-dvb-daemon playing instructions. Nowadays need to pass -M for mplayer style for gstreamer to be happy about it. Full debug log with *dvb*:5 follows: $ GST_DEBUG=*dvb*:5 gst-launch-0.10 -v playbin2 uri=dvb://Kanal%202 Setting pipeline to PAUSED ... /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: ring-buffer-max-size = 0 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-size = -1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-duration = -1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: use-buffering = FALSE /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: download = FALSE /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: uri = "dvb://Kanal%202" /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: connection-speed = 0 0:00:00.619933789 28072 0x24160a0 DEBUG dvbsrc gstdvbsrc.c:881:gst_dvbsrc_plugin_init: binding text domain gst-plugins-bad-0.10 to locale dir /usr/local/share/locale 0:00:00.620216089 28072 0x24160a0 INFO dvbsrc gstdvbsrc.c:459:gst_dvbsrc_init:<GstDvbSrc@0x24c5b00> gst_dvbsrc_init 0:00:00.620232152 28072 0x24160a0 INFO dvbsrc gstdvbsrc.c:529:gst_dvbsrc_set_property:<dvbsrc0> Set Property: ARG_DVBSRC_POLARITY 0:00:00.621264692 28072 0x24160a0 DEBUG dvbbasebin dvbbasebin.c:626:foreach_stream_build_filter: stream 0 usecount 1 0:00:00.621276285 28072 0x24160a0 DEBUG dvbbasebin dvbbasebin.c:626:foreach_stream_build_filter: stream 1 usecount 1 0:00:00.621284317 28072 0x24160a0 DEBUG dvbbasebin dvbbasebin.c:626:foreach_stream_build_filter: stream 17 usecount 1 0:00:00.621291860 28072 0x24160a0 DEBUG dvbbasebin dvbbasebin.c:626:foreach_stream_build_filter: stream 16 usecount 1 0:00:00.621299333 28072 0x24160a0 DEBUG dvbbasebin dvbbasebin.c:626:foreach_stream_build_filter: stream 20 usecount 1 0:00:00.621306946 28072 0x24160a0 DEBUG dvbbasebin dvbbasebin.c:626:foreach_stream_build_filter: stream 18 usecount 1 0:00:00.621315117 28072 0x24160a0 INFO dvbbasebin dvbbasebin.c:649:dvb_base_bin_rebuild_filter:<DvbBaseBin@0x24c6100> rebuilt filter 18:20:16:17:1:0 0:00:00.621325384 28072 0x24160a0 INFO dvbsrc gstdvbsrc.c:535:gst_dvbsrc_set_property:<dvbsrc0> Set Property: ARG_DVBSRC_PIDS 0:00:00.621335721 28072 0x24160a0 INFO dvbsrc gstdvbsrc.c:562:gst_dvbsrc_set_property:<dvbsrc0> Parsed Pid: 18 0:00:00.621343962 28072 0x24160a0 INFO dvbsrc gstdvbsrc.c:562:gst_dvbsrc_set_property:<dvbsrc0> Parsed Pid: 20 0:00:00.621351645 28072 0x24160a0 INFO dvbsrc gstdvbsrc.c:562:gst_dvbsrc_set_property:<dvbsrc0> Parsed Pid: 16 0:00:00.621359118 28072 0x24160a0 INFO dvbsrc gstdvbsrc.c:562:gst_dvbsrc_set_property:<dvbsrc0> Parsed Pid: 17 0:00:00.621367149 28072 0x24160a0 INFO dvbsrc gstdvbsrc.c:575:gst_dvbsrc_set_property:<dvbsrc0> checking if playing for setting pes filters 0:00:00.621378953 28072 0x24160a0 INFO dvbsrc gstdvbsrc.c:529:gst_dvbsrc_set_property:<dvbsrc0> Set Property: ARG_DVBSRC_POLARITY 0:00:00.621747927 28072 0x24160a0 DEBUG dvbsrc gstdvbsrc.c:846:gst_dvbsrc_finalize:<dvbsrc0> gst_dvbsrc_finalize ERROR: Pipeline doesn't want to pause. ERROR: from element /GstURIDecodeBin:uridecodebin0: No URI handler implemented for "dvb". Additional debug info: gsturidecodebin.c(1177): gen_source_element (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0 Setting pipeline to NULL ... Freeing pipeline ...
Can be done now that gst_element_from_uri() returns a GError
commit 830926e47da5f59d84be171ef4c307a580a948a5 Author: Tim-Philipp Müller <tim@centricular.net> Date: Sun Apr 21 17:24:55 2013 +0100 uridecodebin: don't report 'no uri handler found' if the URI was rejected by a source If a source element could be created for a URI, but all elements rejected the URI for some reason, propagate the error from the URI handler instead of reporting a 'no uri handler found for protocol xyz' error, which is confusing. Fixes error reporting with dvb:// URIs when the channel config file could not be found or not be parsed or the channel isn't listed. https://bugzilla.gnome.org/show_bug.cgi?id=678892 commit bd504e379b76b54e71ce22f2d09fb6ed8edaeca8 Author: Tim-Philipp Müller <tim@centricular.net> Date: Sun Apr 21 18:28:52 2013 +0100 dvbbasebin: better error reporting https://bugzilla.gnome.org/show_bug.cgi?id=678892