mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 08:46:40 +00:00
5741ee38e0
g_signal_disconnect*() doesn't stop any existing callbacks from running which means that if the notify::state callback is in progress in one thread and the data channel object is finalize()ed in another thread, then there could be a use-after-free trying lock the data channel object. We can't reasonably use a GWeakRef as we don't have a 'parent' object to free the GWeakRef after the data channel is finalized. This is also complicated by the fact that the application can hold a reference to the data channel object that would live beyond the lifetime of webrtcbin itself. We solve this by implementing a ghetto weak-ref solution internally with a list of outstanding data channels. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> |
||
---|---|---|
.. | ||
adaptivedemux | ||
audio | ||
basecamerabinsrc | ||
codecparsers | ||
codecs | ||
d3d11 | ||
insertbin | ||
interfaces | ||
isoff | ||
mpegts | ||
opencv | ||
play | ||
player | ||
sctp | ||
transcoder | ||
uridownloader | ||
va | ||
vulkan | ||
wayland | ||
webrtc | ||
winrt | ||
gettext.h | ||
glib-compat-private.h | ||
gst-i18n-plugin.h | ||
meson.build |