gstreamer/subprojects/gst-editing-services
Thibault Saunier 96cf1f8c8e ges: asset: Avoid trying to load twice the same asset
When requesting an asset from different threads we had no
guarantee that during the time we lookup an asset (which didn't exist)
and the time we create the asset with the same type/ID another thread
could not end up doing the same thing. In turns we could end up with
2 different threads loading the exact same asset and the cache
basically forgetting about one of the entries meaning that the user
would never get notified about one of those being ready to be used.

There was also the case when requesting "sync" where the user was
requesting an asset while another thread is creating it so it was
still in "ASSET_INITIALIZING" state, meaning that the returned asset
would be NULL which would be considered as an error in apps.

Since the cache lock is recursive we can just take it during the whole
ges_asset_request_async call and have other method still hold it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5732>
2023-12-01 21:51:57 +00:00
..
bindings/python meson: Use python module to install override files 2023-02-16 19:43:11 +00:00
data/completions Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
docs ges: Expose FrameCompositionMeta in public API 2023-11-16 11:45:40 +00:00
examples gstreamer-full: add full static support 2023-05-31 15:17:11 +00:00
ges ges: asset: Avoid trying to load twice the same asset 2023-12-01 21:51:57 +00:00
plugins nle: composition: Avoid running query before being constructed 2023-07-06 05:48:31 +00:00
scripts gst-omx: Retire the whole package 2023-07-16 19:10:03 +00:00
tests meson: Always use forward slashes in defines with paths 2023-07-12 21:17:25 +00:00
tools ges: tools: fix msvc compiler warning about G_LOG_DOMAIN redefinition 2023-09-11 20:53:19 +00:00
.gitignore Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
AUTHORS Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
COPYING gst-editing-services: update COPYING to LGPL v2.1 2023-10-13 12:55:46 +00:00
COPYING.LIB gst-editing-services: update COPYING to LGPL v2.1 2023-10-13 12:55:46 +00:00
gst-editing-services.doap Release 1.22.0 2023-01-23 19:41:07 +00:00
meson.build meson: Workaround python 3.12 warning 2023-11-11 12:47:11 +00:00
meson_options.txt meson: Remove duplicate definition of 'examples' option 2021-10-12 22:54:56 +00:00
NEWS Release 1.22.0 2023-01-23 19:41:07 +00:00
README Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
RELEASE Release 1.22.0 2023-01-23 19:41:07 +00:00

GStreamer Editing Services
--------------------------

 This is a high-level library for facilitating the creation of audio/video
non-linear editors.

License:
--------

  This package and its contents are licensend under the GNU Lesser General
Public License (LGPL).

Dependencies:
-------------

 * GStreamer core
 * gst-plugins-base