[Bug 698410] Adder: Can not send flush_start and flush_stop in a row

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sat Apr 27 09:52:51 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=698410
  GStreamer | gst-plugins-base | 1.x

--- Comment #9 from Thibault Saunier <thibault.saunier at collabora.com> 2013-04-27 16:52:48 UTC ---
OK so I investigated and the race is the following:

In the test: We send the flush_start
Thread 1: The adder sinkpads receives it and set the flush_stop_pending to TRUE
Thread 2: The adder has received buffers on all its sinkpads so collectpad
calls gst_adder_collected, flush_stop_pending is set to TRUE so it creates and
sends a flush_stop event on adder.src and sets flush_stop_pending to FALSE
          > adder.src.flushing = FALSE
Thread 1: We finaly send our flush_start event downstream
          > adder.src.flushing = TRUE
In the test: We send flush_stop
Thread 1 - Adder detects that flush_stop_pending is FALSE so it "eats" the
event

I do not really get how that should be fixed without using plain locks, any
guess?

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list