gstreamer/subprojects/gst-editing-services/ges
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
..
python Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-asset.c ges: asset: Avoid trying to load twice the same asset 2023-12-01 21:51:57 +00:00
ges-asset.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-audio-source.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-audio-source.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-audio-test-source.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-audio-test-source.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-audio-track.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-audio-track.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-audio-transition.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-audio-transition.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-audio-uri-source.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-audio-uri-source.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-auto-transition.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-auto-transition.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-base-effect-clip.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-base-effect-clip.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-base-effect.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-base-effect.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-base-transition-clip.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-base-transition-clip.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-base-xml-formatter.c ges: base-xml-formatter: Don't pass non-GObject pointers to GST_DEBUG_OBJECT 2023-04-18 10:03:46 +00:00
ges-base-xml-formatter.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-clip-asset.c ges: Add a few missing annotations 2021-09-26 06:59:04 +00:00
ges-clip-asset.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-clip.c Fix various warnings from gobject-introspection 2022-10-25 09:45:25 +03:00
ges-clip.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-command-line-formatter.c commandline-formatter: Fix version documentation for ges_command_line_formatter_get_help() 2021-09-27 09:24:16 +03:00
ges-command-line-formatter.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-container.c ges: drop use of GSlice allocator 2023-02-03 17:48:09 +00:00
ges-container.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-discoverer-manager.c ges: discoverer-manager: Fix race when freeing unused discoverer 2023-11-08 08:24:15 +00:00
ges-discoverer-manager.h ges: Implement a new GESDiscovererManager object 2023-04-29 06:54:10 -04:00
ges-effect-asset.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-effect-asset.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-effect-clip.c ges: Add a few missing annotations 2021-09-26 06:59:04 +00:00
ges-effect-clip.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-effect.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-effect.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-enums.c ges-video-transition: add a new "fade-in" transition type 2022-05-13 17:17:06 +03:00
ges-enums.h ges-video-transition: add a new "fade-in" transition type 2022-05-13 17:17:06 +03:00
ges-extractable.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-extractable.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-formatter.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-formatter.h Fix various warnings from gobject-introspection 2022-10-25 09:45:25 +03:00
ges-frame-composition-meta.c ges: Expose FrameCompositionMeta in public API 2023-11-16 11:45:40 +00:00
ges-frame-composition-meta.h ges: Expose FrameCompositionMeta in public API 2023-11-16 11:45:40 +00:00
ges-gerror.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-group.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-group.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-image-source.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-image-source.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-internal.h ges: discoverer-manager: Support for delayed clean-up of discoverers 2023-11-06 14:23:45 +00:00
ges-layer.c ges: drop use of GSlice allocator 2023-02-03 17:48:09 +00:00
ges-layer.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-marker-list.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-marker-list.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-meta-container.c ges: drop use of GSlice allocator 2023-02-03 17:48:09 +00:00
ges-meta-container.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-multi-file-source.c docs: fix unnecessary ampersand, < and > escaping in code blocks 2021-11-12 11:39:19 +00:00
ges-multi-file-source.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-operation-clip.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-operation-clip.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-operation.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-operation.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-overlay-clip.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-overlay-clip.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-pipeline.c ges: pipeline: Avoid setting state before being constructed 2023-07-06 05:48:31 +00:00
ges-pipeline.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-pitivi-formatter.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-pitivi-formatter.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-prelude.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-project.c ges: project: Start making MT safe where needed 2023-10-04 09:29:04 +01:00
ges-project.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-screenshot.c ges: Add/fix various annotations 2022-10-18 13:51:16 +03:00
ges-screenshot.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-smart-adder.c ges: drop use of GSlice allocator 2023-02-03 17:48:09 +00:00
ges-smart-adder.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-smart-video-mixer.c ges: Expose FrameCompositionMeta in public API 2023-11-16 11:45:40 +00:00
ges-smart-video-mixer.h ges: Fix issues avoiding to use operator when unavailable on mixer 2023-01-17 20:10:19 +00:00
ges-source-clip-asset.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-source-clip-asset.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-source-clip.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-source-clip.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-source.c ges: re-indent with GNU indent 2.2.12 2023-03-17 03:18:54 +00:00
ges-source.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-structure-parser.c ges-structure-parser: Don't leak failed strings 2022-11-18 07:22:23 +00:00
ges-structure-parser.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-structured-interface.c ges: Fix setting keyframes from ges-launch 2023-09-06 11:07:35 -03:00
ges-structured-interface.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-test-clip.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-test-clip.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-text-overlay-clip.c ges: Add/fix various annotations 2022-10-18 13:51:16 +03:00
ges-text-overlay-clip.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-text-overlay.c ges: Add/fix various annotations 2022-10-18 13:51:16 +03:00
ges-text-overlay.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-time-overlay-clip.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-time-overlay-clip.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-timeline-element.c ges-timeline-element: Fix refcount bug in "timeline" and "parent" properties 2023-06-23 23:00:45 +00:00
ges-timeline-element.h Fix license as GES is released under the LGPL2+ license 2022-03-24 01:18:24 +00:00
ges-timeline-tree.c ges: Add API to disable timeline coherence checks 2022-12-02 18:37:29 +00:00
ges-timeline-tree.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-timeline.c ges: timeline: Fix message leaks 2023-11-06 14:23:45 +00:00
ges-timeline.h ges: Add API to disable timeline coherence checks 2022-12-02 18:37:29 +00:00
ges-title-clip.c ges: Add/fix various annotations 2022-10-18 13:51:16 +03:00
ges-title-clip.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-title-source.c ges: Add/fix various annotations 2022-10-18 13:51:16 +03:00
ges-title-source.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-track-element-asset.c ges: Add a few missing annotations 2021-09-26 06:59:04 +00:00
ges-track-element-asset.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-track-element-deprecated.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-track-element.c ges: Add/fix various annotations 2022-10-18 13:51:16 +03:00
ges-track-element.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-track.c ges: Add support for gessrc as subtimeline element 2023-06-29 19:24:37 +00:00
ges-track.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-transition-clip.c ges: transition: Notify vtype change on ges_extractable_set_asset call 2022-10-24 14:14:30 +00:00
ges-transition-clip.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-transition.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-transition.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-types.h ges: Implement a new GESDiscovererManager object 2023-04-29 06:54:10 -04:00
ges-uri-asset.c ges-uri-asset: Fix GESDiscovererManager leaks 2023-11-02 18:29:27 +00:00
ges-uri-asset.h ges: Implement a new GESDiscovererManager object 2023-04-29 06:54:10 -04:00
ges-uri-clip.c ges: Implement a new GESDiscovererManager object 2023-04-29 06:54:10 -04:00
ges-uri-clip.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-uri-source.c ges: Add support for gessrc as subtimeline element 2023-06-29 19:24:37 +00:00
ges-uri-source.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-utils.c ges: discoverer-manager: Support for delayed clean-up of discoverers 2023-11-06 14:23:45 +00:00
ges-utils.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-validate.c ges: validate: Use correct types when getting structure values 2023-07-10 09:40:27 +01:00
ges-version.h.in Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-video-source.c ges-video-source: Remove limit on frame duplication on EOS in videorate 2022-09-20 13:23:02 +00:00
ges-video-source.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-video-test-source.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-video-test-source.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-video-track.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-video-track.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-video-transition.c ges-video-transition: add a new "fade-in" transition type 2022-05-13 17:17:06 +03:00
ges-video-transition.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-video-uri-source.c ges/videourisource: handle non-1/1 PAR source videos 2022-05-17 20:49:30 +00:00
ges-video-uri-source.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges-xml-formatter.c ges: drop use of GSlice allocator 2023-02-03 17:48:09 +00:00
ges-xml-formatter.h Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges.c Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
ges.h ges: Expose FrameCompositionMeta in public API 2023-11-16 11:45:40 +00:00
ges.resource Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
gesmarshal.list Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
gstframepositioner.c ges: Expose FrameCompositionMeta in public API 2023-11-16 11:45:40 +00:00
gstframepositioner.h ges: Expose FrameCompositionMeta in public API 2023-11-16 11:45:40 +00:00
meson.build ges: Expose FrameCompositionMeta in public API 2023-11-16 11:45:40 +00:00
parse.l Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00