gstreamer/subprojects/gst-plugins-bad/sys/nvcodec
Seungha Yang 7b6023d9cf nvcodec: Add support for CUDA IPC
Adding cudaipc{src,sink} element for CUDA IPC support.

Implementation note:
* For the communication between end points, Win32 named-pipe
and unix domain socket will be used on Windows and Linux respectively.

* cudaipcsink behaves as a server, and all GPU resources will be owned by
the server process and exported for other processes, then cudaipcsrc
(client) will import each exported handle.

* User can select IPC mode via "ipc-mode" property of cudaipcsink.
There are two IPC mode, one is "legacy" which uses legacy CUDA IPC
method and the other is "mmap" which uses CUDA virtual memory API
with OS's resource handle sharing method such as DuplicateHandle()
on Windows. The "mmap" mode might be better than "legacy" in terms
of stability since it relies on OS's resource management but
it would consume more GPU memory than "legacy" mode.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4510>
2023-08-14 13:41:01 +00:00
..
cuviddec.h nvcodec: Bump SDK header version to 11.1 2022-05-03 23:56:34 +09: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
gstcudaconverter.c cudaconvertscale: Add support for flip/rotation 2023-05-16 19:24:36 +00:00
gstcudaconverter.h cudaconvertscale: Add support for flip/rotation 2023-05-16 19:24:36 +00:00
gstcudaconvertscale.c cudaconvertscale: Add support for flip/rotation 2023-05-16 19:24:36 +00:00
gstcudaconvertscale.h cudaconvert, cudascale: Port to GstCudaBaseCovert baseclass 2022-11-15 16:25:44 +00:00
gstcudafilter.c cuda: Provide single header include entry point 2023-02-03 15:27:42 +00:00
gstcudafilter.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstcudaformat.h cudaupload,cudadownload: Add support for planar 8bits RGB formats 2022-11-15 16:25:44 +00:00
gstcudaipc.cpp nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipc.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcclient.cpp nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcclient.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcclient_unix.cpp nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcclient_unix.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcclient_win32.cpp nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcclient_win32.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcserver.cpp nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcserver.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcserver_unix.cpp nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcserver_unix.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcserver_win32.cpp nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcserver_win32.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcsink.cpp nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcsink.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcsrc.cpp nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudaipcsrc.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstcudamemorycopy.c cudadownload: Always download CUDA memory if it's bound to decoder 2023-06-08 22:27:06 +00:00
gstcudamemorycopy.h nvcodec: Refactor cudaupload/download and add support for GL memory 2022-03-06 15:39:04 +00:00
gstcudanvmm.c cudaupload,cudadownload: Add support for dGPU NVMM 2022-03-07 19:05:29 +00:00
gstcudanvmm.h cudaupload,cudadownload: Add support for dGPU NVMM 2022-03-07 19:05:29 +00:00
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 nvdecoder: Add max-display-delay property 2023-08-10 11:58:42 +00:00
gstnvav1dec.h nvcodec: Add AV1 decoder 2022-05-04 01:23:25 +09:00
gstnvbaseenc.c cuda: Rename macro HAVE_NVCODEC_GST_GL -> HAVE_CUDA_GST_GL 2023-02-20 01:49:31 +09:00
gstnvbaseenc.h nvcodec: Port to GstCudaStream 2023-02-03 15:27:42 +00:00
gstnvcodecutils.h nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
gstnvdec.c cuda: Rename macro HAVE_NVCODEC_GST_GL -> HAVE_CUDA_GST_GL 2023-02-20 01:49:31 +09:00
gstnvdec.h cuda: Rename macro HAVE_NVCODEC_GST_GL -> HAVE_CUDA_GST_GL 2023-02-20 01:49:31 +09:00
gstnvdecobject.cpp cudadownload: Always download CUDA memory if it's bound to decoder 2023-06-08 22:27:06 +00:00
gstnvdecobject.h nvdecoder: Add support for reconfiguration 2023-02-16 17:49:54 +00:00
gstnvdecoder.cpp nvdecoder: Reduce DPB size 2023-08-10 11:58:42 +00:00
gstnvdecoder.h nvdecoder: Add support for reconfiguration 2023-02-16 17:49:54 +00:00
gstnvenc.c cuda: Rename macro HAVE_NVCODEC_GST_GL -> HAVE_CUDA_GST_GL 2023-02-20 01:49:31 +09:00
gstnvenc.h cuda: Provide single header include entry point 2023-02-03 15:27:42 +00:00
gstnvencobject.cpp nvencoder: Fix b-frame encoding on Linux 2023-02-20 20:49:01 +00:00
gstnvencobject.h nvencoder: Fix b-frame encoding on Linux 2023-02-20 20:49:01 +00:00
gstnvencoder.cpp nvencoder: Add support for caption insert 2023-02-20 02:15:24 +09:00
gstnvencoder.h nvencoder: Add support for caption insert 2023-02-20 02:15:24 +09:00
gstnvh264dec.cpp nvdecoder: Add max-display-delay property 2023-08-10 11:58:42 +00:00
gstnvh264dec.h nvcodec: Remove stateful decoders 2023-02-28 18:42:17 +00:00
gstnvh264enc.c nvh264enc: add constrained-baseline to the caps profiles 2021-10-21 09:06:08 +00:00
gstnvh264enc.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstnvh264encoder.cpp nvh264encoder: Fix template caps 2023-03-22 23:40:58 +00:00
gstnvh264encoder.h cuda, nvcodec: Make GstD3D11 dependency mandatory 2023-02-16 17:49:54 +00:00
gstnvh265dec.cpp nvdecoder: Add max-display-delay property 2023-08-10 11:58:42 +00:00
gstnvh265dec.h nvcodec: Remove stateful decoders 2023-02-28 18:42:17 +00:00
gstnvh265enc.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstnvh265enc.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstnvh265encoder.cpp nvencoder: Fix CQP option setting 2023-03-17 18:30:19 +00:00
gstnvh265encoder.h cuda, nvcodec: Make GstD3D11 dependency mandatory 2023-02-16 17:49:54 +00:00
gstnvvp8dec.cpp nvdecoder: Add max-display-delay property 2023-08-10 11:58:42 +00:00
gstnvvp8dec.h nvcodec: Remove stateful decoders 2023-02-28 18:42:17 +00:00
gstnvvp9dec.cpp nvdecoder: Add max-display-delay property 2023-08-10 11:58:42 +00:00
gstnvvp9dec.h nvcodec: Remove stateful decoders 2023-02-28 18:42:17 +00:00
meson.build nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00
nvcuvid.h nvcodec: Bump SDK header version to 11.1 2022-05-03 23:56:34 +09:00
nvEncodeAPI.h nvcodec: Bump SDK header version to 11.1 2022-05-03 23:56:34 +09:00
plugin.c nvcodec: Add support for CUDA IPC 2023-08-14 13:41:01 +00:00