gstreamer/subprojects/gst-plugins-base/gst/playback
Edward Hervey 9eacd54847 decodebin3: Make update/posting of collection messages atomic
The presence (or not) of a collection on an input will determine whether events
will be throttled so that there are only forwarded when that input gets a valid
collection.

Therefore the input lock should be used.

In addition to that, we want to ensure that the application/user has a chance to
reliably (i.e. synchronously) specify what streams it is interested in by
sending a GST_EVENT_SELECT_STREAMS.

But we cannot allow anything to go forward until that message posting has come
back, otherwise we run in various races.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3872

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7602>
2024-10-02 23:06:07 +01:00
..
gstdecodebin2.c decodebin2: Properly free when shutting down in gst_decode_bin_expose 2023-12-01 19:10:54 +09:00
gstdecodebin3.c decodebin3: Make update/posting of collection messages atomic 2024-10-02 23:06:07 +01:00
gstparsebin.c parsebin: accept-caps handling for elements with unusual pad names 2024-07-29 14:26:19 +01:00
gstplay-enum.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstplay-enum.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstplaybackelement.c Replace gst-i18n-*.h with gi18n-lib.h 2022-04-19 18:01:06 +00:00
gstplaybackelements.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstplaybackplugin.c playback: Remove USE_PLAYBIN3 registration override 2024-03-04 12:23:34 +01:00
gstplaybackutils.c gst-plugins-base: re-indent with GNU indent 2.2.12 2023-03-17 03:18:53 +00:00
gstplaybackutils.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstplaybin2.c playback: Support runtime change connection-speed of adaptivedemux(2) 2023-10-12 16:06:42 +00:00
gstplaybin3.c playbin3: Handle combiner update in case of errors 2024-04-26 13:28:06 +00:00
gstplaysink.c playsink: Fix volume leak 2023-04-20 14:21:15 +00:00
gstplaysink.h playbin3: Cleanup and refactor combiner sourcecombine 2022-05-06 09:10:09 +02:00
gstplaysinkaudioconvert.c playsink: Hold a reference to the soft volume element 2022-10-03 18:56:41 +00:00
gstplaysinkaudioconvert.h playsink: Hold a reference to the soft volume element 2022-10-03 18:56:41 +00:00
gstplaysinkconvertbin.c gst-plugins-base: re-indent with GNU indent 2.2.12 2023-03-17 03:18:53 +00:00
gstplaysinkconvertbin.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstplaysinkvideoconvert.c Replace gst-i18n-*.h with gi18n-lib.h 2022-04-19 18:01:06 +00:00
gstplaysinkvideoconvert.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstrawcaps.h playback: add onvif metadata caps to raw caps 2022-08-24 12:21:18 +03:00
gststreamsynchronizer.c streamsynchronizer: Fix deadlock when streams have been flushed before others start 2024-05-23 17:51:02 +01:00
gststreamsynchronizer.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gstsubtitleoverlay.c subtitleoverlay: Also use "Decoder/Subtitle" elements 2024-02-22 14:39:54 +00:00
gstsubtitleoverlay.h Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gsturidecodebin.c playback: Support runtime change connection-speed of adaptivedemux(2) 2023-10-12 16:06:42 +00:00
gsturidecodebin3.c uridecodebin3: Don't hold PLAY_ITEMS lock when activating them 2024-06-11 19:19:38 +01:00
gsturisourcebin.c urisourcebin: Actually drop EOS on old-school pad switch 2024-08-19 10:40:07 +01:00
meson.build meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00