gstreamer/subprojects/gst-rtsp-server
Sebastian Dröge 55c961a4dc rtsp-server: media-factory: Make sure a shared media is actually still usable
Previously it was possible that a shared media was just in the process
of being unprepared because the last client disappeared, while another
client retrieved it from the cache and then tried to use it. Unless the
media was reusable this would've then failed unnecessarily.

To avoid this it is necessary to lock the media directly in
gst_rtsp_media_factory_construct() and return a locked media. After
locking the cached media it is necessary to check if the media was ever
unprepared or is actually reusable and based on that either reuse it or
create a new media.

This minimally changes the gst_rtsp_media_factory_construct() API to
always return a locked media, and adds a new
gst_rtsp_media_can_be_shared() function to check if a media can actually
be shared in practice.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4606>
2023-05-19 11:09:48 +00:00
..
docs doc: Avoid shelling out to hotdoc to generate plugins config files 2023-04-25 02:57:55 +00:00
examples rtsp-server: test-launch: added the argument mount/m to specify the mountpoint 2023-02-12 09:21:19 +01:00
gst rtsp-server: media-factory: Make sure a shared media is actually still usable 2023-05-19 11:09:48 +00:00
scripts meson: Generate ChangeLog files for release tarballs on dist 2022-12-04 18:16:25 +00:00
tests rtsp-server: media-factory: Make sure a shared media is actually still usable 2023-05-19 11:09:48 +00:00
.gitignore Move files from gst-rtsp-server into the "subprojects/gst-rtsp-server/" subdir 2021-09-24 16:15:21 -03:00
AUTHORS Move files from gst-rtsp-server into the "subprojects/gst-rtsp-server/" subdir 2021-09-24 16:15:21 -03:00
COPYING Move files from gst-rtsp-server into the "subprojects/gst-rtsp-server/" subdir 2021-09-24 16:15:21 -03:00
COPYING.LIB Move files from gst-rtsp-server into the "subprojects/gst-rtsp-server/" subdir 2021-09-24 16:15:21 -03:00
gst-rtsp-server.doap Release 1.22.0 2023-01-23 19:41:07 +00:00
meson.build rtsp-server: drop use of GSlice allocator 2023-02-03 17:48:09 +00:00
meson_options.txt Move files from gst-rtsp-server into the "subprojects/gst-rtsp-server/" subdir 2021-09-24 16:15:21 -03:00
NEWS Release 1.22.0 2023-01-23 19:41:07 +00:00
README Move files from gst-rtsp-server into the "subprojects/gst-rtsp-server/" subdir 2021-09-24 16:15:21 -03:00
RELEASE Release 1.22.0 2023-01-23 19:41:07 +00:00
REQUIREMENTS Move files from gst-rtsp-server into the "subprojects/gst-rtsp-server/" subdir 2021-09-24 16:15:21 -03:00
TODO Move files from gst-rtsp-server into the "subprojects/gst-rtsp-server/" subdir 2021-09-24 16:15:21 -03:00

gst-rtsp-server is a library on top of GStreamer for building an RTSP server

There are some examples in the examples/ directory and more comprehensive
documentation in docs/README.