19 #ifndef AVCODEC_NVENC_H
20 #define AVCODEC_NVENC_H
31 #include <ffnvcodec/nvEncodeAPI.h>
40 #define MAX_REGISTERED_FRAMES 64
41 #define RC_MODE_DEPRECATED 0x800000
42 #define RCD(rc_mode) ((rc_mode) | RC_MODE_DEPRECATED)
44 #define NVENCAPI_CHECK_VERSION(major, minor) \
45 ((major) < NVENCAPI_MAJOR_VERSION || ((major) == NVENCAPI_MAJOR_VERSION && (minor) <= NVENCAPI_MINOR_VERSION))
48 #if NVENCAPI_CHECK_VERSION(8, 1)
49 #define NVENC_HAVE_BFRAME_REF_MODE
50 #define NVENC_HAVE_QP_MAP_MODE
54 #if NVENCAPI_CHECK_VERSION(9, 0)
55 #define NVENC_HAVE_HEVC_BFRAME_REF_MODE
59 #if NVENCAPI_CHECK_VERSION(9, 1)
60 #define NVENC_HAVE_MULTIPLE_REF_FRAMES
61 #define NVENC_HAVE_CUSTREAM_PTR
62 #define NVENC_HAVE_GETLASTERRORSTRING
66 #if NVENCAPI_CHECK_VERSION(10, 0)
67 #define NVENC_HAVE_NEW_PRESETS
68 #define NVENC_HAVE_MULTIPASS
69 #define NVENC_HAVE_LDKFS
70 #define NVENC_HAVE_H264_LVL6
108 #ifdef NVENC_HAVE_NEW_PRESETS
Libavcodec external API header.
a very simple circular buffer FIFO implementation
An API-specific header for AV_HWDEVICE_TYPE_D3D11VA.
@ NVENC_DEPRECATED_PRESET
@ NV_ENC_H264_PROFILE_MAIN
@ NV_ENC_H264_PROFILE_HIGH
@ NV_ENC_H264_PROFILE_HIGH_444P
@ NV_ENC_H264_PROFILE_BASELINE
int ff_nvenc_receive_packet(AVCodecContext *avctx, AVPacket *pkt)
@ NV_ENC_HEVC_PROFILE_REXT
@ NV_ENC_HEVC_PROFILE_MAIN
@ NV_ENC_HEVC_PROFILE_MAIN_10
int ff_nvenc_encode_close(AVCodecContext *avctx)
const AVCodecHWConfigInternal *const ff_nvenc_hw_configs[]
enum AVPixelFormat ff_nvenc_pix_fmts[]
int ff_nvenc_encode_init(AVCodecContext *avctx)
void ff_nvenc_encode_flush(AVCodecContext *avctx)
@ PRESET_LOW_LATENCY_DEFAULT
@ PRESET_LOSSLESS_DEFAULT
#define MAX_REGISTERED_FRAMES
AVPixelFormat
Pixel format.
Describe the class of an AVClass context structure.
main external API structure.
This structure describes decoded (raw) audio or video data.
This structure stores compressed data.
NvencDynLoadFunctions nvenc_dload_funcs
AVFifoBuffer * output_surface_queue
enum AVPixelFormat data_pix_fmt
NV_ENC_REGISTERED_PTR regptr
struct NvencContext::@108 registered_frames[MAX_REGISTERED_FRAMES]
ID3D11Device * d3d11_device
AVFifoBuffer * timestamp_list
NV_ENC_INITIALIZE_PARAMS init_encode_params
NV_ENC_CONFIG encode_config
NV_ENC_MAP_INPUT_RESOURCE in_map
AVFifoBuffer * unused_surface_queue
CUcontext cu_context_internal
AVFifoBuffer * output_surface_ready_queue
NvencFunctions * nvenc_dl
NV_ENCODE_API_FUNCTION_LIST nvenc_funcs
NV_ENC_OUTPUT_PTR output_surface
NV_ENC_BUFFER_FORMAT format
NV_ENC_INPUT_PTR input_surface