gstreamer/subprojects
Yacine Bandou 1b191d1d8d streamsynchronizer: Fix deadlock when streams have been flushed before others start
To simplify the description, I'm assuming we only have two streams: video and audio.

For the video stream, we have the following events :
- STREAM_START => stream->wait set to true
- NEW_SEGMENT(1) => blocked waiting in gst_stream_synchronizer_wait
- FLUSH_START => unblocked
- FLUSH_STOP => stream->wait reset to false
- NEW_SEGMENT(2) => not waiting, since stream->wait is false

Then for the audio stream, we have the following events :
- STREAM_START => stream->wait set to true
- NEW_SEGMENT(2) => blocked waiting in gst_stream_synchronizer_wait for ever.

Note: The first NEW_SEGMENT event and the FLUSH_START, FLUSH_STOP events of the audio stream
are dropped before being received by the streamsynchronizer element, because the decodebin audio pad src
is not yet linked to the playsink audio pad sink.

To fix this deadlock, we don't reset stream->wait to false in the FLUSH_STOP event when it is not
waiting for the EOS of the other streams.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6887>
2024-05-23 17:51:02 +01:00
..
gst-devtools Back to development after 1.24.3 2024-04-30 00:36:59 +01:00
gst-docs Back to development after 1.24.3 2024-04-30 00:36:59 +01:00
gst-editing-services ges-pipeline: Configure encodebin before linking 2024-04-30 21:59:31 +00:00
gst-examples Back to development after 1.24.3 2024-04-30 00:36:59 +01:00
gst-integration-testsuites Back to development after 1.24.3 2024-04-30 00:36:59 +01:00
gst-libav avvidec: Fix dropping wrong "ghost" frames 2024-05-14 13:59:35 +01:00
gst-plugins-bad vabaseenc: delete the useless frame counter fields 2024-05-23 16:47:55 +01:00
gst-plugins-base streamsynchronizer: Fix deadlock when streams have been flushed before others start 2024-05-23 17:51:02 +01:00
gst-plugins-good gtk: Fail initialization of the sink if GTK4 is already initialized in the same process 2024-05-23 10:30:47 +01:00
gst-plugins-ugly Back to development after 1.24.3 2024-04-30 00:36:59 +01:00
gst-python Back to development after 1.24.3 2024-04-30 00:36:59 +01:00
gst-rtsp-server Back to development after 1.24.3 2024-04-30 00:36:59 +01:00
gstreamer tests/check: Avoid using "bool" for the variable name 2024-05-22 00:18:51 +01:00
gstreamer-sharp Back to development after 1.24.3 2024-04-30 00:36:59 +01:00
gstreamer-vaapi Back to development after 1.24.3 2024-04-30 00:36:59 +01:00
macos-bison-binary
packagefiles subprojects: directxmath: Update to 3.1.9 2024-04-02 12:55:24 +00:00
win-flex-bison-binaries
win-nasm
win-pkgconfig
avtp.wrap
cairo.wrap cairo: update wrap to 1.18.0 2023-12-13 11:51:53 +00:00
dav1d.wrap
DirectX-Headers.wrap subprojects: Add DirectX-Headers wrap 2023-12-14 18:08:00 +09:00
directxmath.wrap subprojects: directxmath: Update to 3.1.9 2024-04-02 12:55:24 +00:00
dssim.wrap
dv.wrap
expat.wrap
fdk-aac.wrap
FFmpeg.wrap ffmpeg: Update subproject to 6.1 2024-02-23 13:24:22 +00:00
flac.wrap flac: Add wrap file and add fallback for it to the flac plugin 2024-04-07 13:57:40 +00:00
fontconfig.wrap
freetype2.wrap
fribidi.wrap
gl-headers.wrap
glib-networking.wrap
glib.wrap subprojects: update glib wrap to 2.78.3 2023-12-21 19:22:25 +02:00
gobject-introspection.wrap
graphene.wrap
gst-plugins-rs.wrap Back to development after 1.24.3 2024-04-30 00:36:59 +01:00
gtk-sharp.wrap csharp: update gtk-sharp subproject 2023-12-07 17:34:30 +01:00
gtk.wrap
harfbuzz.wrap
json-glib.wrap
lame.wrap
libdrm.wrap
libffi.wrap
libgudev.wrap meson: Update libgudev wrap to 238 2023-12-06 20:17:56 +00:00
libjpeg-turbo.wrap
liblc3.wrap
libmicrodns.wrap
libnice.wrap libnice: bump subproject wrap to v0.1.22 2024-03-22 21:37:41 +00:00
libopenjp2.wrap
libpng.wrap
libpsl.wrap
libsoup.wrap soup: Link to libsoup in all cases on non-Linux 2024-02-21 09:27:59 +05:30
libsrtp2.wrap
libva.wrap
libwpe.wrap
libxml2.wrap
ntv2.wrap ntv2: Use a patch overlay instead of diff 2023-12-20 18:18:43 +00:00
ogg.wrap
openh264.wrap
opus.wrap
orc.wrap orc: bump wrap to 0.4.38 2024-03-05 20:18:56 +00:00
pango.wrap pango: update wrap to 1.51.0 2023-12-13 11:51:53 +00:00
pcre2.wrap
pixman.wrap
proxy-libintl.wrap
pycairo.wrap
pygobject.wrap
sqlite3.wrap
vorbis.wrap
vpx.wrap
wayland-protocols.wrap gstwayland: Support wp_single_pixel_buffer_v1 2024-01-22 16:51:36 -05:00
webrtc-audio-processing.wrap meson: Update webrtc-audio-processing wrap to 1.3 2023-09-05 11:27:17 -04:00
wpebackend-fdo.wrap
x264.wrap subprojects: update x264 wrap to latest stable 164.3108 2024-02-02 14:46:06 +00:00
zlib.wrap