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 508138 - [decodebin] does not error out if pad activation fails
[decodebin] does not error out if pad activation fails
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other All
: Normal normal
: 0.10.16
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-01-08 20:20 UTC by Eric Buehl
Modified: 2008-01-08 20:48 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
test file (2.50 KB, audio/mpeg)
2008-01-08 20:22 UTC, Eric Buehl
Details

Description Eric Buehl 2008-01-08 20:20:58 UTC
Please describe the problem:
It appears that once typefind detects that there is an ID3 tag in a stream, it starts up id3demux. But if the source file is poorly formatted or too short the pipeline stalls without sending an EOS.  This does not appear to be a problem in decodebin2.

with debug-level=3:

0:00:00.061156805 31676 0x6060b0 INFO              typefind gsttypefindelement.c:154:gst_type_find_element_have_type:<typefind> found caps application/x-id3
0:00:00.061248150 31676 0x6060b0 INFO      GST_ELEMENT_PADS gstelement.c:878:gst_element_get_static_pad: found pad typefind:src
0:00:00.063909741 31676 0x6060b0 INFO    GST_PLUGIN_LOADING gstplugin.c:470:gst_plugin_load_file: plugin "/home/eric/fusMus/gstCVS/lib/gstreamer-0.10/libgstid3demux.so" loaded
0:00:00.063995500 31676 0x6060b0 INFO   GST_ELEMENT_FACTORY gstelementfactory.c:399:gst_element_factory_create: creating element "id3demux"
0:00:00.064112266 31676 0x6060b0 INFO      GST_ELEMENT_PADS gstelement.c:632:gst_element_add_pad:<GstTagDemux@0x6ce070> adding pad 'sink'
0:00:00.064182660 31676 0x6060b0 INFO      GST_ELEMENT_PADS gstelement.c:878:gst_element_get_static_pad: found pad id3demux0:sink
0:00:00.064240764 31676 0x6060b0 INFO            GST_STATES gstelement.c:2133:gst_element_continue_state:<id3demux0> completed state change to READY
0:00:00.064273447 31676 0x6060b0 INFO            GST_STATES gstelement.c:2146:gst_element_continue_state:<id3demux0> posting state-changed NULL to READY
0:00:00.064334344 31676 0x6060b0 INFO              GST_PADS gstpad.c:1769:gst_pad_link_prepare: trying to link typefind:src and id3demux0:sink
0:00:00.064391610 31676 0x6060b0 INFO              GST_PADS gstpad.c:1906:gst_pad_link: linked typefind:src and id3demux0:sink, successful
0:00:00.064431277 31676 0x6060b0 INFO      GST_ELEMENT_PADS gstelement.c:875:gst_element_get_static_pad: no such pad 'src' in element "id3demux0"
0:00:00.064496364 31676 0x6060b0 INFO               filesrc gstfilesrc.c:901:gst_file_src_start:<filesrc0> opening file Keller Williams-Breathe-02 - Brunette.mp3
0:00:00.064570669 31676 0x6060b0 INFO               filesrc gstfilesrc.c:901:gst_file_src_start:<filesrc0> opening file Keller Williams-Breathe-02 - Brunette.mp3
0:00:00.064681010 31676 0x6060b0 INFO              id3demux gstid3demux.c:151:gst_id3demux_identify_tag:<id3demux0> Found ID3v2 marker, tag_size = 48188
0:00:00.064750846 31676 0x6060b0 WARN              GST_PADS gstpad.c:684:gst_pad_set_active:<id3demux0:sink> Failed to activate pad
0:00:00.064785764 31676 0x6060b0 INFO            GST_STATES gstelement.c:2417:gst_element_change_state:<id3demux0> have FAILURE change_state return
0:00:00.064819286 31676 0x6060b0 INFO            GST_STATES gstelement.c:2027:gst_element_abort_state:<id3demux0> aborting state from READY to PAUSED


Steps to reproduce:
gst-launch filesrc=<bad mp3> ! decodebin ! fakesink

Actual results:


Expected results:


Does this happen every time?


Other information:
Comment 1 Eric Buehl 2008-01-08 20:22:00 UTC
Created attachment 102418 [details]
test file
Comment 2 Tim-Philipp Müller 2008-01-08 20:48:51 UTC
Ouch, nice catch, thanks! Should be fixed in CVS:

 2008-01-08  Tim-Philipp Müller  <tim at centricular dot net>

        * gst/playback/gstdecodebin.c: (try_to_link_1):
          Make sure we error out correctly if we can't activate one of
          the elements we've added.  Fixes #508138.