gstreamer/subprojects/gst-plugins-base/gst
Thibault Saunier 48c8dbd383 uridecodebin3: Protect set_uri with the PLAY_ITEMS_LOCK
We access fields that are protected by the lock and this was already
held in other places where we call the method. I have got cases where
we get the following stack/assertion:

```
 #0  g_logv (log_domain=0x7fb9d84e6cd5 "GStreamer", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fb9d4de54e0) at ../glib/gmessages.c:1433
 #1  0x00007fb9d802d0f3 in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at ../glib/gmessages.c:1471
 #2  0x00007fb9d845bc2c in gst_pad_send_event (pad=0x7fb98c01e050, event=0x7fb9c4105b90) at ../subprojects/gstreamer/gst/gstpad.c:6096
 #3  0x00007fb9d6541c35 in gst_uri_decode_bin3_set_uri (dec=0x7fb9bc450960 [GstURIDecodeBin3], uri=0x7fb9c40f5410 "file:///var/home/thiblahute/devel/gstreamer/gstreamer/subprojects/gst-integration-testsuites/medias/defaults/mp4/mp3_h264.0.mp4") at ../subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c:1918
 #4  0x00007fb9d6540c40 in gst_uri_decode_bin3_set_property (object=0x7fb9bc450960 [GstURIDecodeBin3], prop_id=1, value=0x7fb9d4de57b0, pspec=0x7fb9bcee5280 [GParamString]) at ../subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c:1569
 #5  0x00007fb9d7f8f73d in object_set_property (object=0x7fb9bc450960 [GstURIDecodeBin3], pspec=0x7fb9bcee5280 [GParamString], value=0x7fb9d4de57b0, nqueue=0x7fb9c40d0c40, user_specified=<optimized out>) at ../gobject/gobject.c:1794
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5968>
2024-01-24 11:40:05 +00:00
..
adder meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
app meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
audioconvert audioconvert: change gst_audio_convert_get_unit_size() log levels 2023-12-18 10:07:39 +00:00
audiomixer meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
audiorate meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
audioresample audioconvert, audioresample, audiofilter: fix divide by 0 for input buffer without caps 2022-11-26 08:47:49 +00:00
audiotestsrc audiotestsrc: Initialize all samples in wave=ticks mode 2023-04-22 08:44:02 +00:00
compositor meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
debugutils debug: delete reference to gstdump script 2023-11-22 11:45:38 +01:00
dsd dsd: Add code for DSD audio support 2023-06-23 01:27:03 +00:00
encoding encodebin2: Fix support for rendering to stream without muxer 2024-01-15 18:28:46 +00:00
gio gio: Drop some trailing whitespace in giobasesink 2023-10-04 12:56:03 +00:00
overlaycomposition video-filters: Fix passthrough with ANY caps feature 2023-10-03 21:13:00 +00:00
pbtypes meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
playback uridecodebin3: Protect set_uri with the PLAY_ITEMS_LOCK 2024-01-24 11:40:05 +00:00
rawparse video: Add arbitrary tile dimensions support 2022-11-18 22:59:29 +00:00
subparse subparse: Skip after the end of a valid closing tag instead of only skipping < 2023-06-20 09:06:44 +01:00
tcp meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
typefind typefindfunctions: Increase xml typefinder closing brace limit 2023-03-29 17:50:20 +00:00
videoconvertscale video-filters: Fix passthrough with ANY caps feature 2023-10-03 21:13:00 +00:00
videorate videorate: keep pool if max_buffers is unlimited 2023-12-22 17:46:50 +00:00
videotestsrc videotestsrc: fix max value for timestamp-offset 2023-09-28 17:32:36 +00:00
volume volume: support arbitrarily-large positive gains 2023-08-07 13:17:45 +00:00
meson.build debug: add new element fakevideodec 2023-11-17 15:57:46 +00:00