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 318296 - gst_pad_set_blocked not returns
gst_pad_set_blocked not returns
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-10-08 18:04 UTC by Stefan Sauer (gstreamer, gtkdoc dev)
Modified: 2005-11-15 10:23 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
example (5.58 KB, text/plain)
2005-10-08 18:05 UTC, Stefan Sauer (gstreamer, gtkdoc dev)
Details
updated example (5.93 KB, text/plain)
2005-10-27 14:24 UTC, Stefan Sauer (gstreamer, gtkdoc dev)
Details
reduced test case (3.89 KB, text/plain)
2005-11-01 13:53 UTC, Stefan Sauer (gstreamer, gtkdoc dev)
Details
reduced testcase (4.27 KB, text/plain)
2005-11-01 14:14 UTC, Stefan Sauer (gstreamer, gtkdoc dev)
Details
reduced testcase (4.21 KB, text/plain)
2005-11-03 12:43 UTC, Stefan Sauer (gstreamer, gtkdoc dev)
Details
reduced test case (4.38 KB, text/plain)
2005-11-03 13:00 UTC, Stefan Sauer (gstreamer, gtkdoc dev)
Details

Description Stefan Sauer (gstreamer, gtkdoc dev) 2005-10-08 18:04:08 UTC
see attached example line 138. I'll never see the output in line 140.
Comment 1 Stefan Sauer (gstreamer, gtkdoc dev) 2005-10-08 18:05:05 UTC
Created attachment 53232 [details]
example

see comment in the head for how to compile
Comment 2 Stefan Sauer (gstreamer, gtkdoc dev) 2005-10-09 10:57:31 UTC
> ./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);
Comment 3 Stefan Sauer (gstreamer, gtkdoc dev) 2005-10-27 08:44:44 UTC
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");
}
Comment 4 Stefan Sauer (gstreamer, gtkdoc dev) 2005-10-27 14:24:28 UTC
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
Comment 5 Stefan Sauer (gstreamer, gtkdoc dev) 2005-11-01 13:53:34 UTC
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.
Comment 6 Stefan Sauer (gstreamer, gtkdoc dev) 2005-11-01 14:14:49 UTC
Created attachment 54185 [details]
reduced testcase

some cleanup, added delimiters for sections in --gst-debug output
Comment 7 Stefan Sauer (gstreamer, gtkdoc dev) 2005-11-03 12:43:00 UTC
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.
Comment 8 Stefan Sauer (gstreamer, gtkdoc dev) 2005-11-03 13:00:19 UTC
Created attachment 54274 [details]
reduced test case

show pad activation problem
Comment 9 Andy Wingo 2005-11-14 18:00:08 UTC
Is this still valid with the set-flushing-unblocks-pads patch from last week?
Comment 10 Stefan Sauer (gstreamer, gtkdoc dev) 2005-11-15 10:23:05 UTC
I now use the locked state and now it works for me.