gstreamer/gst-libs/gst/adaptivedemux
Alex Ashley 792e9a6033 adaptivedemux: fix threading issues in gst_adaptive_demux_wait_until function
The gst_adaptive_demux_wait_until() function can be woken up either
by its end_time being reached, or from other threads that want to
interrupt the waiting thread.

If the thread is interrupted, it needs to cancel its async clock callback
by unscheduling the clock callback. However, the callback task might already
have been activated, but is waiting for the mutex to become available. In this
case, the call to unschedule does not stop the callback from executing.

The solution to this second issue is to use a reference counted object that
is decremented by both the gst_adaptive_demux_wait_until() function and the
call to gst_clock_id_wait_async (). In this way, the GstAdaptiveDemuxTimer
object is only deleted when both the gst_adaptive_demux_wait_until() function
and the async callback are finished with the object.

https://bugzilla.gnome.org/show_bug.cgi?id=765728
2016-05-06 09:42:41 +01:00
..
gstadaptivedemux.c adaptivedemux: fix threading issues in gst_adaptive_demux_wait_until function 2016-05-06 09:42:41 +01:00
gstadaptivedemux.h adaptivedemux: use GstSystemClock to all real-time calculations 2016-04-21 16:46:09 -03:00
Makefile.am Remove obsolete Android build cruft 2015-04-26 18:59:32 +01:00