[Bug 755169] dashdemux: can we have multiple seek events at the same time?

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Sep 22 05:02:23 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=755169

--- Comment #9 from Florin Apostol <florin.apostol at oregan.net> ---
Review of attachment 311848:
 --> (https://bugzilla.gnome.org/review?bug=755169&attachment=311848)

::: gst-libs/gst/adaptivedemux/gstadaptivedemux.c
@@ +1359,3 @@
   }

+  GST_MANIFEST_UNLOCK (demux);

this is wrong.

One of the reasons of holding the lock while handling the seek event was to
make sure only one thread performs streams cleanup. If you release the lock
here, you access the demux->streams without a lock taken.

You need to release the manifest lock right before the gst_task_join call and
take it back after the call. This will keep accesses to demux->streams
protected by the lock and will allow the
gst_adaptive_demux_stream_download_loop to get the lock if needed in its way to
exit.

But now you have allowed another thread to perform a second seek operation
while the first one is still in progress. In order to avoid this, you need a
new lock to be taken and hold for the duration of the whole seek processing.
Basically, an API level lock to serialize API calls.

-- 
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