gstreamer/subprojects/gst-plugins-bad/sys/nvcodec
Seungha Yang 60735deded nvcodec: Add new Direct3D11/CUDA mode encoder implementation
Adding new encoder elements nvd3d11{h264,h265}enc for Direct3D11
input support and re-written nvcuda{h264,h265}enc elements.
Newly writeen elements have some differences compared with old
nv{h264,h265}enc including non-backward compatible changes.

* RGBA is not a supported input format any more:
  New elements will support only YUV formats to avoid implicit conversion
  done by hardware. Ideally it should be done by upstream element
  in order to have more control on it. Moreover, RGBA support can cause
  redundant RGBA -> YUV conversion if multiple encoders are
  used for the same RGBA input
* Subsampled planar format support is dropped:
  I420 and YV12 format are not supported formats for Direct3D11.
  Although it's supported in CUDA mode, it's not a hardware friendly
  memory layout and it will waste GPU memory since UV planes
  will have large padding due to the memory layout requirement of NVENC.
* GL support is dropped: Similar to the RGBA case,
  GL support in encoder would be suboptimal if GL input is
  used by multiple encoders, because each encoder will copy GL memory
  into CUDA memory.
  Upstream cudaupload element can be used for GL <-> CUDA
  interop instead.
* No more pre-allocation of encoder input surfaces. New implementation
  will use input CUDA memory without copy (zero-copy) or
  will copy into a NVENC's input buffer struct in case of
  system memory input.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1997>
2022-03-23 13:48:53 +00:00
..
stub cudautils: add support of D3D11 resource as Cuda graphics resource type 2022-03-10 18:08:10 +00:00
cuda-converter.c nvcodec: Refactor GstCudaMemory abstraction 2022-03-06 15:39:04 +00:00
cuda-converter.h nvcodec: Refactor GstCudaMemory abstraction 2022-03-06 15:39:04 +00:00
cuviddec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstcudabasefilter.c nvcodec: Refactor GstCudaMemory abstraction 2022-03-06 15:39:04 +00:00
gstcudabasefilter.h nvcodec: Refactor basetransform subclasses 2022-03-06 15:39:04 +00:00
gstcudabasetransform.c nvcodec: Refactor basetransform subclasses 2022-03-06 15:39:04 +00:00
gstcudabasetransform.h nvcodec: Refactor basetransform subclasses 2022-03-06 15:39:04 +00:00
gstcudabufferpool.c nvcodec: Refactor GstCudaMemory abstraction 2022-03-06 15:39:04 +00:00
gstcudabufferpool.h cudabufferpool: Move GstCudaContext object to public member 2022-03-06 15:39:04 +00:00
gstcudacontext.c cudacontext: find associated DXGI Adapter LUID 2022-03-10 18:08:10 +00:00
gstcudacontext.h cudacontext: Require explicit gpu id instead of auto (-1) 2022-03-06 15:39:04 +00:00
gstcudaconvert.c nvcodec: Refactor basetransform subclasses 2022-03-06 15:39:04 +00:00
gstcudaconvert.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstcudafilter.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03: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 cudamemorycopy: add D3D11 resource support 2022-03-10 18:08:10 +00:00
gstcudaloader.c cudaloader: add D3D11 API 2022-03-10 18:08:10 +00:00
gstcudaloader.h cudaloader: add D3D11 API 2022-03-10 18:08:10 +00:00
gstcudamemory.c nvcodec: Refactor GstCudaMemory abstraction 2022-03-06 15:39:04 +00:00
gstcudamemory.h nvcodec: Refactor GstCudaMemory abstraction 2022-03-06 15:39:04 +00:00
gstcudamemorycopy.c nvcodec: Move CUDA <-> GL, D3D11, NVMM copy function to utils 2022-03-15 21:51:50 +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
gstcudanvrtc.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstcudanvrtc.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstcudascale.c nvcodec: Indent update 2022-03-06 15:39:04 +00:00
gstcudascale.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstcudautils.c nvcodec: Move CUDA <-> GL, D3D11, NVMM copy function to utils 2022-03-15 21:51:50 +00:00
gstcudautils.h nvcodec: Move CUDA <-> GL, D3D11, NVMM copy function to utils 2022-03-15 21:51:50 +00:00
gstcuvidloader.c nvcodec: Indent update 2022-03-06 15:39:04 +00:00
gstcuvidloader.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstnvbaseenc.c nvenc: Fix deadlock because of too strict buffer pool size 2022-03-12 16:44:44 +00:00
gstnvbaseenc.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstnvdec.c nvh264dec,nvh265dec: Fix broken key-unit trick and reverse playback 2022-03-10 12:40:05 +00:00
gstnvdec.h nvh264dec,nvh265dec: Fix broken key-unit trick and reverse playback 2022-03-10 12:40:05 +00:00
gstnvdecoder.c nvcodec: Refactor GstCudaMemory abstraction 2022-03-06 15:39:04 +00:00
gstnvdecoder.h nvdecoder: Fix for HEVC 4:4:4 format decoding 2022-02-07 18:27:48 +00:00
gstnvenc.c nvcodec: Add new Direct3D11/CUDA mode encoder implementation 2022-03-23 13:48:53 +00:00
gstnvenc.h nvcodec: Add new Direct3D11/CUDA mode encoder implementation 2022-03-23 13:48:53 +00:00
gstnvencoder.cpp nvcodec: Add new Direct3D11/CUDA mode encoder implementation 2022-03-23 13:48:53 +00:00
gstnvencoder.h nvcodec: Add new Direct3D11/CUDA mode encoder implementation 2022-03-23 13:48:53 +00:00
gstnvh264dec.c codecs: Rename picture clear functions 2022-03-11 20:20:17 +00:00
gstnvh264dec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03: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 nvcodec: Add new Direct3D11/CUDA mode encoder implementation 2022-03-23 13:48:53 +00:00
gstnvh264encoder.h nvcodec: Add new Direct3D11/CUDA mode encoder implementation 2022-03-23 13:48:53 +00:00
gstnvh265dec.c nvh265sldec: Add support for delayed output 2022-03-15 21:08:06 +00:00
gstnvh265dec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03: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 nvcodec: Add new Direct3D11/CUDA mode encoder implementation 2022-03-23 13:48:53 +00:00
gstnvh265encoder.h nvcodec: Add new Direct3D11/CUDA mode encoder implementation 2022-03-23 13:48:53 +00:00
gstnvrtcloader.c nvcodec: Indent update 2022-03-06 15:39:04 +00:00
gstnvrtcloader.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstnvvp8dec.c nvdecoder: Fix for HEVC 4:4:4 format decoding 2022-02-07 18:27:48 +00:00
gstnvvp8dec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstnvvp9dec.c nvdecoder: Fix for HEVC 4:4:4 format decoding 2022-02-07 18:27:48 +00:00
gstnvvp9dec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
meson.build nvcodec: Add new Direct3D11/CUDA mode encoder implementation 2022-03-23 13:48:53 +00:00
nvcuvid.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
nvEncodeAPI.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
plugin.c nvcodec: Add new Direct3D11/CUDA mode encoder implementation 2022-03-23 13:48:53 +00:00