Go to the documentation of this file.
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
71 #define NVENC_HAVE_HEVC_CONSTRAINED_ENCODING
75 #if NVENCAPI_CHECK_VERSION(11, 1)
76 #define NVENC_HAVE_QP_CHROMA_OFFSETS
77 #define NVENC_HAVE_SINGLE_SLICE_INTRA_REFRESH
115 #ifdef NVENC_HAVE_NEW_PRESETS
AVPixelFormat
Pixel format.
AVFifo * output_surface_ready_queue
@ PRESET_LOW_LATENCY_DEFAULT
This structure describes decoded (raw) audio or video data.
NV_ENC_CONFIG encode_config
NvencDynLoadFunctions nvenc_dload_funcs
@ NVENC_DEPRECATED_PRESET
NV_ENC_REGISTERED_PTR regptr
struct NvencContext::@121 registered_frames[MAX_REGISTERED_FRAMES]
int single_slice_intra_refresh
NV_ENC_BUFFER_FORMAT format
NV_ENC_INITIALIZE_PARAMS init_encode_params
@ NV_ENC_H264_PROFILE_MAIN
@ NV_ENC_H264_PROFILE_BASELINE
@ NV_ENC_HEVC_PROFILE_REXT
NvencFunctions * nvenc_dl
NV_ENC_INPUT_PTR input_surface
@ NV_ENC_HEVC_PROFILE_MAIN
Describe the class of an AVClass context structure.
@ NV_ENC_HEVC_PROFILE_MAIN_10
int ff_nvenc_encode_init(AVCodecContext *avctx)
NV_ENC_MAP_INPUT_RESOURCE in_map
#define MAX_REGISTERED_FRAMES
enum AVPixelFormat data_pix_fmt
NV_ENC_SEI_PAYLOAD * sei_data
AVFifo * output_surface_queue
void ff_nvenc_encode_flush(AVCodecContext *avctx)
@ NV_ENC_H264_PROFILE_HIGH
int ff_nvenc_receive_packet(AVCodecContext *avctx, AVPacket *pkt)
@ NV_ENC_H264_PROFILE_HIGH_444P
main external API structure.
int ff_nvenc_encode_close(AVCodecContext *avctx)
NV_ENC_OUTPUT_PTR output_surface
NV_ENCODE_API_FUNCTION_LIST nvenc_funcs
@ PRESET_LOSSLESS_DEFAULT
This structure stores compressed data.
enum AVPixelFormat ff_nvenc_pix_fmts[]
AVFifo * unused_surface_queue
CUcontext cu_context_internal
const AVCodecHWConfigInternal *const ff_nvenc_hw_configs[]
ID3D11Device * d3d11_device