gstreamer/subprojects/gst-plugins-bad/gst-libs/gst
Seungha Yang 30d06e03c2 cudamemory: Make GstCudaStream-aware
This will be used for CUDA stream sharing.

* Adding GstCudaPoolAllocator object. The pool allocator will
  control synchronization of allocated memory objects.
* Modify gst_cuda_allocator_alloc() API so that caller can specify/set
  GstCudaStream object for the newly allocated memory.
* GST_CUDA_MEMORY_TRANSFER_NEED_SYNC flag is added in addition to
  existing GST_CUDA_MEMORY_TRANSFER_NEED_{UPLOAD,DOWNLOAD}.
  The flag indicates that any GPU command queued in the CUDA stream
  may not be finished yet, and caller should take care of the
  synchronization.
  The flag is controlled by GstCudaMemory object if the memory holds
  GstCudaStream. (Otherwise, GstCudaMemory will do synchronization
  as before this commit). Specifically, GstCudaMemory object will set
  the new flag automatically when memory is mapped with
  (GST_MAP_CUDA | GST_MAP_WRITE) flags. Caller will need to unset
  the flag via GST_MEMORY_FLAG_UNSET() if it's already synchronized
  by client code.
* gst_cuda_memory_sync() helper function is added to perform synchronization
* Why not use CUevent object to keep track of synchronization status?
  CUDA provides fence-like interface already via CUevent object,
  but cuEventRecord/cuEventQuery APIs are not zero-cost operations.
  Instead, in this version, the status is tracked by using map and
  object flags.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629>
2023-02-03 15:27:42 +00:00
..
adaptivedemux adaptivedemux: Minor typo fix 2022-10-27 19:45:44 +00:00
audio badaudio: Add/fix annotations 2022-10-18 13:51:16 +03:00
basecamerabinsrc docs: fix unnecessary ampersand, < and > escaping in code blocks 2021-11-12 11:39:19 +00:00
codecparsers codecparsers: vp9parser: use single allocation for parser structs 2023-01-27 23:50:19 +00:00
codecs h265decoder: Fix a memory leak because of slice header. 2023-01-03 17:28:18 +08:00
cuda cudamemory: Make GstCudaStream-aware 2023-02-03 15:27:42 +00:00
d3d11 d3d11: Don't use g_alloca() 2023-01-24 20:27:43 +00:00
insertbin libs: insertbin: drop use of GSlice allocator 2023-01-24 15:25:07 +00:00
interfaces meson: Namespace the plugins_doc_dep/libraries variables 2022-09-01 21:17:35 +00:00
isoff gst-plugins-bad: define G_LOG_DOMAIN for all libraries 2021-10-19 00:12:25 +00:00
mpegts libs: mpegts: drop use of GSlice allocator 2023-01-24 15:25:07 +00:00
opencv meson: Namespace the plugins_doc_dep/libraries variables 2022-09-01 21:17:35 +00:00
play gstplay: add warning message details check before post it 2022-11-15 01:01:10 +00:00
player meson: Namespace the plugins_doc_dep/libraries variables 2022-09-01 21:17:35 +00:00
sctp meson: Namespace the plugins_doc_dep/libraries variables 2022-09-01 21:17:35 +00:00
transcoder transcoder: Don't leak API bus and GMainLoop 2022-11-12 10:33:51 +01:00
uridownloader meson: Namespace the plugins_doc_dep/libraries variables 2022-09-01 21:17:35 +00:00
va libs: va: drop use of GSlice 2023-01-24 15:25:07 +00:00
vulkan vulkan: imagebufferpool: Remove video meta handling. 2023-01-26 11:49:00 +00:00
wayland wayland: Export the _get_type() functions 2023-02-01 15:29:26 +00:00
webrtc webrtc nice: Let libnice handle STUN/TURN DNS resolution 2023-01-07 16:03:23 +00:00
winrt gst-plugins-bad: define G_LOG_DOMAIN for all libraries 2021-10-19 00:12:25 +00:00
glib-compat-private.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
meson.build cuda: Factor out a public GstCUDA library 2022-04-19 16:39:43 +00:00