gstreamer/ext
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
..
aom av1enc: enable row-mt property conditionally 2019-07-27 08:15:33 +00:00
assrender docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
avtp avtp: Update documentation 2019-07-03 09:59:35 -07:00
bs2b meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
bz2 docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
chromaprint docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
closedcaption cccombiner: Proxy POSITION/DURATION/URI/CAPS/ALLOCATION queries between video sinkpad and source pad 2019-07-09 14:11:34 +00:00
colormanagement meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
curl doc: remove xml from comments 2019-05-29 22:58:08 +02:00
dash dash: Fallback to libxml2 subproject 2019-07-24 14:38:08 -04:00
dc1394 meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
directfb docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
dtls Revert "dtls: fix generated cert dtls agent leak" 2019-07-26 06:35:53 +00:00
dts docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
faac docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
faad docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
fdkaac docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
flite docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
fluidsynth docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
gme meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
gsm docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
hls adaptivedemux: remove some deadlocks using webkitwebsrc. 2019-07-29 13:19:41 +01:00
iqa docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
kate docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
ladspa meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
libde265 docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
libmms docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
lv2 meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
modplug meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
mpeg2enc doc: remove xml from comments 2019-05-29 22:58:08 +02:00
mplex doc: remove xml from comments 2019-05-29 22:58:08 +02:00
musepack meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
neon meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
ofa meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
openal meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
opencv doc: remove xml from comments 2019-05-29 22:58:08 +02:00
openexr meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
openh264 docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
openjpeg openjpeg: remove support for OpenJPEG 1.5 2019-07-28 17:03:13 -04:00
openmpt meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
openni2 meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
opus docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
resindvd docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
rsvg docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
rtmp docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
sbc docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
sctp meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
smoothstreaming h264parse lib: Remove the SPS parse_vui_params flag 2019-07-05 00:17:59 +10:00
sndfile meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
soundtouch docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
spandsp docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
srt srt: Remove msg-size property 2019-07-08 16:00:51 -04:00
srtp docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
teletextdec meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
ttml docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
voaacenc docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
voamrwbenc meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
vulkan vulkan: Fix incompatible type build warning 2019-07-09 01:42:58 +00:00
wayland waylandsink: Workaround gnome-shell bug 2019-05-26 17:49:29 +02:00
webp docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
webrtc webrtcbin: fix GInetAddress leak 2019-07-29 15:55:36 +07:00
webrtcdsp docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
wildmidi meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
wpe wpe: Port for WPEWebKit 2.25.x 2019-06-25 10:16:25 +00:00
x265 x265enc: Specify colorimetry related VUI parameters 2019-07-17 22:46:58 +09:00
zbar zbar: Include running-time, stream-time and duration in the messages 2019-06-19 13:31:39 +03:00
Makefile.am avtp: AVTP plugin bootstrap code 2019-07-03 09:59:35 -07:00
meson.build avtp: AVTP plugin bootstrap code 2019-07-03 09:59:35 -07:00