gstreamer/gst-libs/gst
Charlie Turner 659d76a633 adaptivedemux: remove some deadlocks using webkitwebsrc.
WebKit's websrc depends on the main-thread for download completion
rendezvous. This exposed a number of deadlocks in adaptivedemux due to
it holding the MANIFEST_LOCK during network requests, and also needing
to hold it to change_state and resolve queries, which frequently occur
during these download windows.

Make demux->running MT-safe so that it can be accessed without using the
MANIFEST_LOCK. In case a source is downloading and requires a MT-thread
notification for completion of the fragment download, a state change
during this download window will deadlock unless we cancel the downloads
and ensure they are not restarted before we finish the state-change.

Also make demux->priv->have_manifest MT-safe. A duration query happening
in the window described above can deadlock for the same reason. Other
src queries (like SEEKING) that happen in this window also could
deadlock, but I haven't hit this scenario.

Increase granularity of API_LOCK'ing in change_state as well. We need to
cancel downloads before trying to take this lock, since sink events
(EOS) will hold it before starting a fragment download.
2019-07-29 13:19:41 +01:00
..
adaptivedemux adaptivedemux: remove some deadlocks using webkitwebsrc. 2019-07-29 13:19:41 +01:00
audio Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-05 08:12:10 +02:00
basecamerabinsrc doc: remove xml from comments 2019-05-29 22:58:08 +02:00
codecparsers h264parser lib: Add more profile_idc to the recognised set 2019-07-05 00:17:59 +10:00
insertbin Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-05 08:12:10 +02:00
interfaces doc: remove xml from comments 2019-05-29 22:58:08 +02:00
isoff libs: fix API export/import and 'inconsistent linkage' on MSVC 2018-09-24 14:45:56 +01:00
mpegts mpegtssection: events don't necessarily have a structure 2019-05-30 17:20:12 +02:00
opencv meson: fix build with opencv=enabled and opencv4. Fixes #964 2019-05-06 07:21:45 +00:00
player docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
sctp autotools: gstsctp: set LDFLAGS 2019-05-05 12:39:01 +02:00
uridownloader libs: fix API export/import and 'inconsistent linkage' on MSVC 2018-09-24 14:45:56 +01:00
vulkan vulkan/window: add property for the parent display 2019-07-05 16:20:05 +10:00
wayland waylandsink: Implement XDG-shell stable support 2019-03-04 10:58:54 +00:00
webrtc Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-05 08:12:10 +02:00
gettext.h Fix FSF address 2012-11-04 00:09:59 +00:00
glib-compat-private.h Update GLib dependency to 2.40.0 2015-10-02 22:24:19 +03:00
gst-i18n-plugin.h Fix FSF address 2012-11-04 00:09:59 +00:00
Makefile.am Remove GstVideoAggregator, moved into libgstvideo in -base 2018-12-26 19:06:33 +01:00
meson.build vulkan: make a gstvulkan library out of the existing API 2019-06-04 09:03:44 +00:00