GNOME Bugzilla – Bug 318296
gst_pad_set_blocked not returns
Last modified: 2005-11-15 10:23:05 UTC
see attached example line 138. I'll never see the output in line 140.
Created attachment 53232 [details] example see comment in the head for how to compile
> ./states1 2>&1 --gst-debug="*SCHED*:5" | grep -v gst_pad_chain LOG (0x804e810 - 0:00:04.101340000) GST_SCHEDULING(16487) gstpad.c(810):gst_pad_set_blocked_async:<filter2:sink> blocking pad filter2:sink LOG (0x804e810 - 0:00:04.101489000) GST_SCHEDULING(16487) gstpad.c(816):gst_pad_set_blocked_async:<filter2:sink> waiting for block means its waiting in GST_PAD_BLOCK_WAIT (pad);
that is gstpad.c line 871 ? if (!callback) { GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "waiting for block"); GST_PAD_BLOCK_WAIT (pad); GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "blocked"); }
Created attachment 53948 [details] updated example * this now gets bejond the first block/unblock * rewiring now silence the whole pipeline * the second try to block on the pad of the newly linked element blocks again
Created attachment 54184 [details] reduced test case this testcase shows that it is not the segment handling of the adder that causes the silence after rewiring pads. The new example initialy link src1->sink then blocks on the outgoing pad of src1 and swaps src1 with src2. After swapping it unblocks the pad and sets src to playing. Unfortunately the output remains silent.
Created attachment 54185 [details] reduced testcase some cleanup, added delimiters for sections in --gst-debug output
Created attachment 54271 [details] reduced testcase I now run it as: ./states3 --gst-debug="basesrc:4" this shows that initially src2 is paused as it is not linked. after swapping src1 and src2 src1 gets paused as this one now is not linked. I also set src2 to playing, but somehow no task gets started (gst_base_src_start()), no gst_base_src_activate_{push,pull} call gets logged.
Created attachment 54274 [details] reduced test case show pad activation problem
Is this still valid with the set-flushing-unblocks-pads patch from last week?
I now use the locked state and now it works for me.