GNOME Bugzilla – Bug 655532
Pipeline 'filesrc ! mpegpsdemux ! fakesink' deadlocks
Last modified: 2011-08-02 20:59:07 UTC
Created attachment 192832 [details] Example deadlocking program. The 'gst-launch -v filesrc location=test.mpg ! mpegpsdemux ! fakesink' shows the expected sequence of buffers as output. The same pipeline as program (gst_demux.c attached) deadlocks without any fakesink handoff signals. Here the last lines of the 'GST_DEBUG=*:5 ./gst_demux' output: 0:00:00.828002194 2820 0x804c008 INFO filesrc gstfilesrc.c:965:gst_file_src_start:<file_src> opening file MPEGIO_MPEG2_176X144_Video1024Kbps.mpg 0:00:00.828888894 2820 0x815d528 INFO mpegpsdemux gstmpegdemux.c:2565:gst_flups_sink_get_duration:<decode> sink segment configured bytes segment start=0, stop=1710080, last_stop=0, duration=1710080, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, accum=0:00:00.000000000 0:00:00.828995071 2820 0x815d528 INFO mpegpsdemux gstmpegdemux.c:2567:gst_flups_sink_get_duration:<decode> src segment configured time segment start=0:00:00.568055555, stop=99:99:99.999999999, last_stop=0:00:00.568055555, duration=0:00:10.135588888, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, accum=0:00:00.000000000 0:00:00.831729704 2820 0x815d528 INFO GST_ELEMENT_PADS gstelement.c:722:gst_element_add_pad:<decode> adding pad 'video_e0' 0:00:00.831806393 2820 0x815d528 INFO mpegpsdemux gstmpegdemux.c:508:gst_flups_demux_send_data:<decode> sending new segment: rate 1 applied_rate 1 start: 0:00:00.568055555, stop: 99:99:99.999999999, time: 0:00:00.568055555 to pad <decode:video_e0> 0:00:00.831869444 2820 0x815d528 INFO GST_EVENT gstevent.c:599:gst_event_new_new_segment_full: creating newsegment update 0, rate 1.000000, format GST_FORMAT_TIME, start 0:00:00.568055555, stop 99:99:99.999999999, position 0:00:00.568055555 0:00:00.832070928 2820 0x815d528 INFO GST_ELEMENT_PADS gstelement.c:722:gst_element_add_pad:<decode> adding pad 'audio_c0' 0:00:00.832099385 2820 0x815d528 INFO mpegpsdemux gstmpegdemux.c:508:gst_flups_demux_send_data:<decode> sending new segment: rate 1 applied_rate 1 start: 0:00:00.568055555, stop: 99:99:99.999999999, time: 0:00:00.568055555 to pad <decode:audio_c0> 0:00:00.832133988 2820 0x815d528 INFO GST_EVENT gstevent.c:599:gst_event_new_new_segment_full: creating newsegment update 0, rate 1.000000, format GST_FORMAT_TIME, start 0:00:00.568055555, stop 99:99:99.999999999, position 0:00:00.568055555 0:00:00.844035046 2820 0x815d528 INFO GST_SCHEDULING gstpad.c:4995:gst_pad_get_range_unchecked:<file_src:src> getrange failed, flow: unexpected 0:00:00.844090714 2820 0x815d528 INFO GST_SCHEDULING gstpad.c:5141:gst_pad_pull_range:<decode:sink> pullrange failed, flow: unexpected 0:00:00.844183208 2820 0x804c008 INFO GST_STATES gstelement.c:2408:gst_element_continue_state:<decode> completed state change to PAUSED 0:00:00.844205386 2820 0x804c008 INFO GST_STATES gstelement.c:2421:gst_element_continue_state:<decode> posting state-changed READY to PAUSED 0:00:00.844252802 2820 0x804c008 INFO GST_STATES gstbin.c:2497:gst_bin_change_state_func:<pipeline> child 'decode' changed state to 3(PAUSED) successfully 0:00:00.844293105 2820 0x804c008 INFO GST_STATES gstelement.c:2408:gst_element_continue_state:<file_src> completed state change to PAUSED 0:00:00.844311697 2820 0x804c008 INFO GST_STATES gstelement.c:2421:gst_element_continue_state:<file_src> posting state-changed READY to PAUSED 0:00:00.844337602 2820 0x804c008 INFO GST_STATES gstbin.c:2497:gst_bin_change_state_func:<pipeline> child 'file_src' changed state to 3(PAUSED) successfully GStreamer versions (on OpenSuse-11.2): gstreamer-0.10.35 gst-plugins-base-0.10.35 gst-plugins-good-0.10.30 gst-plugins-bad-0.10.22 gst-plugins-ugly-0.10.18
A bug in the example program, added an assert for the gst_element_link_many() call return value. This one failed. Added dynamic linking like in the 'GStreamer Application Development Manual (0.10.35) / Chapter 10.1. Hello world' program. Now the example runs like expected. Sorry for the noise....
Created attachment 193105 [details] Example fixed program