gstreamer/subprojects/gst-plugins-bad/sys/nvcodec
Seungha Yang d17e8707c9 nvencoder: Add extern-cuda-bufferpool property
Add new property to support application allocated GstCudaMemory.

CUDA memory alloc/free is a global device synchronization point
as if launching CUDA kernel on default CUDA stream. To avoid the global
synchronization, we added stream-ordered allocation support
which allocates CUDA memory asynchronously.
However, NVENC does not allow registering the stream-ordered
allocated memory. Thus encoder was allocating normal CUDA
memory in case that input CUDA memory is stream-ordered type.

In this commit, newly introduced property will allow application
to provide encoder with GstCudaBufferPool. Application can
preallocate sufficient amount of CUDA memory in advance
to avoid global device synchronization while pipeline is running.

For now, this pool is used only if input CUDA memory is allocated
via stream-ordered-allocation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8516>
2025-02-21 10:10:53 +00:00
..
cuviddec.h nvcodec: Update SDK header to 12.0.16 2024-05-15 14:35:52 +00:00
gstcudabasetransform.c cudabasetransform: Handle video related meta as appropriate 2023-05-31 20:09:42 +00:00
gstcudabasetransform.h nvcodec: Port to GstCudaStream 2023-02-03 15:27:42 +00:00
gstcudacompositor.cpp cudacompositor: pass correct variable to debug log functions 2025-01-23 17:18:46 +00:00
gstcudacompositor.h nvcodec: Add cudacompositor element 2025-01-20 01:12:21 +09:00
gstcudaconverter.cpp cudaconverter: Use stream ordered allocation if requested 2025-02-21 10:10:52 +00:00
gstcudaconverter.h cudaconverter: Add support for configuration update 2025-01-20 01:12:21 +09:00
gstcudaconvertscale.c cudaconverter: Add support for configuration update 2025-01-20 01:12:21 +09:00
gstcudaconvertscale.h
gstcudaformat.h cuda: Add support for VUYA format 2024-04-02 13:07:29 +00:00
gstcudainterop_d3d12.cpp d3d12: Additional fixes for MinGW build 2024-10-24 06:54:30 +09:00
gstcudainterop_d3d12.h nvcodec: Add support CUDA to D3D12 memory copy 2024-10-02 02:02:08 +09:00
gstcudaipc.cpp cudaipc: Add support for custom meta forwarding 2024-01-30 14:30:41 +00:00
gstcudaipc.h cudaipc: Add support for custom meta forwarding 2024-01-30 14:30:41 +00:00
gstcudaipcclient.cpp nvcodec: Update plugin cache 2024-02-07 22:06:39 +00:00
gstcudaipcclient.h cudaipc: Add support for custom meta forwarding 2024-01-30 14:30:41 +00:00
gstcudaipcclient_unix.cpp cudaipc: Add support for custom meta forwarding 2024-01-30 14:30:41 +00:00
gstcudaipcclient_unix.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcclient_win32.cpp cudaipc: Add support for custom meta forwarding 2024-01-30 14:30:41 +00:00
gstcudaipcclient_win32.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcserver.cpp nvcodec: fix invalidated std::set::iterator usage 2025-02-13 15:18:10 +00:00
gstcudaipcserver.h cudaipc: Add support for custom meta forwarding 2024-01-30 14:30:41 +00:00
gstcudaipcserver_unix.cpp cudaipcsink: Fix deadlock on stop 2023-12-06 16:09:27 +00:00
gstcudaipcserver_unix.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcserver_win32.cpp cudaipcsink: Fix deadlock on stop 2023-12-06 16:09:27 +00:00
gstcudaipcserver_win32.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcsink.cpp cudaipc: Use empty string for address property docs 2025-01-20 19:31:36 +00:00
gstcudaipcsink.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcsrc.cpp cudaipc: Use empty string for address property docs 2025-01-20 19:31:36 +00:00
gstcudaipcsrc.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudamemorycopy.c common: Use more efficient versions of GstCapsFeatures API where possible 2024-09-26 19:26:18 +03:00
gstcudamemorycopy.h
gstcuvidloader.c nvdecoder: Add support for reconfiguration 2023-02-16 17:49:54 +00:00
gstcuvidloader.h nvdecoder: Add support for reconfiguration 2023-02-16 17:49:54 +00:00
gstnvav1dec.cpp nvcodec: Specify documentation caps 2025-01-20 19:31:36 +00:00
gstnvav1dec.h nvdecoder: Add support for D3D11 output 2023-09-29 12:36:01 +00:00
gstnvav1encoder.cpp docs: Update nvcodec plugin docs 2025-01-20 19:31:36 +00:00
gstnvav1encoder.h nvcodec: Add AV1 encoder 2024-05-15 14:35:52 +00:00
gstnvcodecutils.cpp nvencoder: Add support for d3d12 memory 2024-09-14 15:33:44 +00:00
gstnvcodecutils.h nvencoder: Add support for d3d12 memory 2024-09-14 15:33:44 +00:00
gstnvdec.c common: Use more efficient versions of GstCapsFeatures API where possible 2024-09-26 19:26:18 +03:00
gstnvdec.h cuda: Rename macro HAVE_NVCODEC_GST_GL -> HAVE_CUDA_GST_GL 2023-02-20 01:49:31 +09:00
gstnvdecobject.cpp nvdecoder: Add support for HEVC GBR output 2023-09-23 13:12:56 +00:00
gstnvdecobject.h nvdecoder: Copy output frame if needed 2023-09-17 00:15:47 +09:00
gstnvdecoder.cpp nvcodec: Specify documentation caps 2025-01-20 19:31:36 +00:00
gstnvdecoder.h nvdecoder: Add support for D3D12 output 2024-10-02 02:02:08 +09:00
gstnvenc.c nvcodec: Remove old nvenc implementation 2024-05-15 14:35:52 +00:00
gstnvenc.h nvcodec: Remove old nvenc implementation 2024-05-15 14:35:52 +00:00
gstnvencobject.cpp nvencoder: Add extern-cuda-bufferpool property 2025-02-21 10:10:53 +00:00
gstnvencobject.h nvencoder: Add extern-cuda-bufferpool property 2025-02-21 10:10:53 +00:00
gstnvencoder.cpp nvencoder: Add extern-cuda-bufferpool property 2025-02-21 10:10:53 +00:00
gstnvencoder.h nvencoder: Add support for d3d12 memory 2024-09-14 15:33:44 +00:00
gstnvh264dec.cpp nvcodec: Specify documentation caps 2025-01-20 19:31:36 +00:00
gstnvh264dec.h nvdecoder: Add support for D3D11 output 2023-09-29 12:36:01 +00:00
gstnvh264encoder.cpp docs: Update nvcodec plugin docs 2025-01-20 19:31:36 +00:00
gstnvh264encoder.h cuda, nvcodec: Make GstD3D11 dependency mandatory 2023-02-16 17:49:54 +00:00
gstnvh265dec.cpp nvcodec: Specify documentation caps 2025-01-20 19:31:36 +00:00
gstnvh265dec.h nvdecoder: Add support for D3D11 output 2023-09-29 12:36:01 +00:00
gstnvh265encoder.cpp docs: Update nvcodec plugin docs 2025-01-20 19:31:36 +00:00
gstnvh265encoder.h cuda, nvcodec: Make GstD3D11 dependency mandatory 2023-02-16 17:49:54 +00:00
gstnvjpegenc.cpp nvcodec: Update plugin cache 2024-02-07 22:06:39 +00:00
gstnvjpegenc.h nvcodec: Add JPEG encoder 2024-01-31 12:51:28 +00:00
gstnvvp8dec.cpp nvcodec: Specify documentation caps 2025-01-20 19:31:36 +00:00
gstnvvp8dec.h nvdecoder: Add support for D3D11 output 2023-09-29 12:36:01 +00:00
gstnvvp9dec.cpp nvcodec: Specify documentation caps 2025-01-20 19:31:36 +00:00
gstnvvp9dec.h nvdecoder: Add support for D3D11 output 2023-09-29 12:36:01 +00:00
meson.build meson: Check d3d12video header for MinGW build 2025-02-03 21:24:47 +00:00
nvcuvid.h nvcodec: Update SDK header to 12.0.16 2024-05-15 14:35:52 +00:00
nvEncodeAPI.h nvcodec: Update SDK header to 12.0.16 2024-05-15 14:35:52 +00:00
plugin.c nvcodec: Add cudacompositor element 2025-01-20 01:12:21 +09:00