Seungha Yang
afb62e98c7
cuda: Enable x86 NVMM support again
...
It was broken since memory copy helper function was moved to gst-libs.
Also, adding "cuda-nvmm" and "cuda-nvmm-include-path" build options
to en/disable NVMM support in gstcuda library
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6978 >
2024-06-06 12:16:50 +00:00
Seungha Yang
1aa9e74aaf
cudadownload: Always download CUDA memory if it's bound to decoder
...
Decoder bounded CUDA memory is allocated by driver and the pool size
is fixed. Since we don't know how many buffers would be held by
downstream non-CUDA element, we should download such CUDA memory
and release it back to decoder.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4810 >
2023-06-08 22:27:06 +00:00
Thibault Saunier
8d3f90eb8d
cuda: memory: Enhance debug when CU_GL_DEVICE_LIST_ALL fails
...
Ensuring error from cuda is logged
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4731 >
2023-05-31 20:09:42 +00:00
Seungha Yang
59f359eb99
cuda: Rename macro HAVE_NVCODEC_GST_GL -> HAVE_CUDA_GST_GL
...
... and always use #ifdef instead of #if
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3992 >
2023-02-20 01:49:31 +09:00
Seungha Yang
992406cf4f
cuda, nvcodec: Make GstD3D11 dependency mandatory
...
GstD3D11 build-time dependencies should be always available on Windows already
and runtime dependencies as well, since required external
(non-GStreamer) depends are all system DLLs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3884 >
2023-02-16 17:49:54 +00:00
Seungha Yang
7a8bb85523
cudaupload, cudadownload: Update for shared CUDA stream
...
Use CUDA stream of memory if exists
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:43 +00:00
Seungha Yang
0a81c8deb3
nvcodec: Port to GstCudaStream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
661b5f60c6
cuda: Provide single header include entry point
...
Add "gstcuda.h" header file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
e6585c89ea
cuda: Hide memory copy util function
...
The method was intended to be used by only cudaupload/download elements
and not ready to be a part of public API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3545 >
2022-12-08 19:52:23 +00:00
Seungha Yang
722f097b9d
nvcodec: Update for documentation
...
* Use GST_PARAM_DOC_SHOW_DEFAULT flags for GPU ID related
properties
* Fix some typos
* Add since markers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250 >
2022-10-24 12:42:51 +00:00
Seungha Yang
ca47012a55
cudaupload,cudadownload: Fix document
...
* Fix typo, NVIDA -> NVIDIA
* Add cudadownload doc to the source file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3018 >
2022-09-13 16:40:51 +00:00
Seungha Yang
7ea3c55549
cudaupload,cudadownload: Use shared GstD3D11Device context if possible
...
Handle d3d11 device context in set_context() method with
additional device compatibility check so that only NVIDIA GPU
associated d3d11 device can be configured in the element.
And clear old d3d11 device per set_info() for d3d11 device to be
updated as well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3018 >
2022-09-13 16:40:51 +00:00
Seungha Yang
812bb14f28
cudaupload,cudadownload: Don't simplify caps in transform_caps
...
The simplified caps might not be a subset of filter caps
and basetransform will complain about it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2883 >
2022-08-15 18:44:14 +00:00
Seungha Yang
d9f08e17f1
cudadownload: Passthrough in case of CUDA -> SYSTEM
...
GstCudaMemory supports CPU access via CUDA pinned host memory already
and it would show faster memory transfer performance between
GPU and CPU than copying from/to normal system memory.
If downstream supports video meta, we can passthrough CUDA memory.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2690 >
2022-06-30 10:45:45 +00:00
Seungha Yang
16955ba672
cudamemorycopy: Make sure writable caps before removing fields
...
The caps to be modified may not be writable when D3D11/GL/NVMM
are all disabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2664 >
2022-06-27 20:28:31 +09:00
Thibault Saunier
dcd2ccad59
cuda: Fix typo in gst_cuda_buffery_copy_type_to_string
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1472 >
2022-04-19 16:39:43 +00:00
Thibault Saunier
c033f8fad2
cuda: Factor out a public GstCUDA library
...
So applications and elements implemented outside GStreamer can reuse
our infrastructure
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1472 >
2022-04-19 16:39:43 +00:00
Seungha Yang
c08ce58753
nvcodec: Move CUDA <-> GL, D3D11, NVMM copy function to utils
...
This method can be used in other elements as well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1945 >
2022-03-15 21:51:50 +00:00
Corentin Damman
1fb3e35708
cudamemorycopy: add D3D11 resource support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1807 >
2022-03-10 18:08:10 +00:00
Seungha Yang
496b77e6aa
cudamemorycopy: Fix GL resource leak
...
Clear GL resources on stop()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1896 >
2022-03-08 18:02:25 +00:00
Seungha Yang
4aa516f305
cudamemorycopy: Remove texture-target caps field
...
It's GL specific field, and we can remove it unconditionally
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1865 >
2022-03-07 19:05:29 +00:00
Seungha Yang
e5132a8508
cudaupload,cudadownload: Add support for dGPU NVMM
...
Implement NVMM <-> CUDA, GL, SYSTEM memory conversion. Jetson is
not supported yet. Note that NVMM <-> GL interop on Jetson platform
is supported by GstGL
Some example pipelines are:
- Convert NVMM to GstGL memory
nvv4l2decoder ! "video/x-raw(memory:NVMM)" ! cudadownload ! "video/x-raw(memory:GLMemory)" ! glimagesink
- Upload system memory to NVMM and encode
video/x-raw,format=NV12 ! cudaupload ! "video/x-raw(memory:NVMM)" ! nvv4l2h264enc
- Convert NVMM to GstCUDA memory and encode
nvvideoconvert ! "video/x-raw(memory:NVMM)" ! cudaupload ! "video/x-raw(memory:CUDAMemory)" ! nvh264enc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1865 >
2022-03-07 19:05:29 +00:00
Seungha Yang
a63d1cf4c4
cudamemorycopy: Fix build when gl is disabled
...
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1707
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1868 >
2022-03-07 10:22:21 +00:00
Seungha Yang
c31bf2db4d
nvcodec: Refactor cudaupload/download and add support for GL memory
...
* Implement new baseclass GstCudaMemoryCopy to remove duplicated
cudaupload/download code
* Add support for CUDA <-> GL memory conversion via cudaupload/download
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1834 >
2022-03-06 15:39:04 +00:00