gstreamer/sys/nvcodec
Seungha Yang 94f2843774 nvenc: Refactoring internal buffer pool structure
To support rc-lookahead and bframe encoding, nvenc needs one more
staging queue, because NvEncEncodePicture can return NV_ENC_ERR_NEED_MORE_INPUT
but which was not considered so far.
As documented by NVENC programming guide, pending buffers should wait
other inputs until NvEncEncodePicture returns success.

New encoding flow is
- Submit raw picture buffer to encoder with NvEncEncodePicture
- The submitted input/output buffer pair will be queued to pending_queue
  - If NvEncEncodePicture returned success, then move all pair in pending_queue
    to final stage
  - Otherwise, wait more input raw pictures.

Another change is dropping NV_ENC_LOCK_INPUT_BUFFER usage.
So now nvenc always uses CUDA memory input buffer. As a result,
both opengl and system memory handling are unified.
2019-09-11 13:18:12 +09:00
..
stub cudautils: Add GstCudaGraphicsResource structure for better openGL interoperability 2019-08-29 18:04:33 +09:00
cuviddec.h nvcodec: Bump SDK header to version 9.0 2019-08-29 13:39:59 +00:00
gstcudacontext.c nvcodec: Introduce NVIDA CUDA helpers 2019-08-07 00:59:36 +00:00
gstcudacontext.h nvcodec: Introduce NVIDA CUDA helpers 2019-08-07 00:59:36 +00:00
gstcudaloader.c cudautils: Add GstCudaGraphicsResource structure for better openGL interoperability 2019-08-29 18:04:33 +09:00
gstcudaloader.h cudautils: Add GstCudaGraphicsResource structure for better openGL interoperability 2019-08-29 18:04:33 +09:00
gstcudautils.c cudautils: Add GstCudaGraphicsResource structure for better openGL interoperability 2019-08-29 18:04:33 +09:00
gstcudautils.h cudautils: Add GstCudaGraphicsResource structure for better openGL interoperability 2019-08-29 18:04:33 +09:00
gstcuvidloader.c nvcodec: Change log level for g_module_open failure 2019-07-25 08:47:50 +00:00
gstcuvidloader.h nvdec: Register elements per device/codec with capability check 2019-07-22 17:39:45 +00:00
gstnvbaseenc.c nvenc: Refactoring internal buffer pool structure 2019-09-11 13:18:12 +09:00
gstnvbaseenc.h nvenc: Refactoring internal buffer pool structure 2019-09-11 13:18:12 +09:00
gstnvdec.c nvcodec: minor spell corrects in log messages 2019-09-10 23:13:17 +00:00
gstnvdec.h nvdec: Re-negotiate whenever output format is changed 2019-08-30 01:36:41 +09:00
gstnvenc.c nvenc: Add more rate-control options 2019-09-11 13:18:12 +09:00
gstnvenc.h nvenc: Add support for old drivers which could not understand SDK version 9.0 2019-08-29 13:39:59 +00:00
gstnvh264enc.c nvenc: Add more rate-control options 2019-09-11 13:18:12 +09:00
gstnvh264enc.h nvenc: Add support for weighted prediction option 2019-09-11 13:18:12 +09:00
gstnvh265enc.c nvenc: Add more rate-control options 2019-09-11 13:18:12 +09:00
gstnvh265enc.h nvenc: Add support for weighted prediction option 2019-09-11 13:18:12 +09:00
Makefile.am nvcodec: Introduce NVIDA CUDA helpers 2019-08-07 00:59:36 +00:00
meson.build nvcodec: Introduce NVIDA CUDA helpers 2019-08-07 00:59:36 +00:00
nvcuvid.h nvcodec: Bump SDK header to version 9.0 2019-08-29 13:39:59 +00:00
nvEncodeAPI.h nvcodec: Bump SDK header to version 9.0 2019-08-29 13:39:59 +00:00
plugin.c nvdec: Make OpenGL dependency optional 2019-07-26 00:01:23 +00:00