Go to the documentation of this file.
19 #ifndef AVCODEC_NVENC_H
20 #define AVCODEC_NVENC_H
31 #include <ffnvcodec/nvEncodeAPI.h>
41 #define MAX_REGISTERED_FRAMES 64
43 #define NVENCAPI_CHECK_VERSION(major, minor) \
44 ((major) < NVENCAPI_MAJOR_VERSION || ((major) == NVENCAPI_MAJOR_VERSION && (minor) <= NVENCAPI_MINOR_VERSION))
47 #if NVENCAPI_CHECK_VERSION(12, 0)
48 #define NVENC_HAVE_HEVC_OUTPUT_RECOVERY_POINT_SEI
52 #if NVENCAPI_CHECK_VERSION(12, 1)
53 #define NVENC_HAVE_SPLIT_FRAME_ENCODING
57 #if NVENCAPI_CHECK_VERSION(12, 2)
58 #define NVENC_HAVE_NEW_BIT_DEPTH_API
59 #define NVENC_HAVE_TEMPORAL_FILTER
60 #define NVENC_HAVE_LOOKAHEAD_LEVEL
61 #define NVENC_HAVE_UHQ_TUNING
62 #define NVENC_HAVE_UNIDIR_B
63 #define NVENC_HAVE_TIME_CODE // added in 12.0, but incomplete until 12.2
67 #if NVENCAPI_CHECK_VERSION(13, 0)
68 #define NVENC_HAVE_H264_10BIT_SUPPORT
69 #define NVENC_HAVE_422_SUPPORT
70 #define NVENC_HAVE_SFE_FOUR_WAYS_SUPPORT
71 #define NVENC_HAVE_AV1_UHQ_TUNING
72 #define NVENC_HAVE_H264_AND_AV1_TEMPORAL_FILTER
73 #define NVENC_HAVE_HEVC_AND_AV1_MASTERING_METADATA
74 #define NVENC_HAVE_MVHEVC
78 #if NVENCAPI_CHECK_VERSION(13, 1)
79 #define NVENC_NEW_COUNTING_TYPE
80 #define NVENC_HAVE_AV1_HGOP_SUPPORT
130 #ifdef NVENC_HAVE_H264_10BIT_SUPPORT
131 NV_ENC_H264_PROFILE_HIGH_10,
133 #ifdef NVENC_HAVE_422_SUPPORT
134 NV_ENC_H264_PROFILE_HIGH_422,
143 #ifdef NVENC_HAVE_MVHEVC
144 NV_ENC_HEVC_PROFILE_MULTIVIEW_MAIN,
AVPixelFormat
Pixel format.
AVFifo * output_surface_ready_queue
This structure describes decoded (raw) audio or video data.
NV_ENC_CONFIG encode_config
NvencDynLoadFunctions nvenc_dload_funcs
uint64_t output_frame_num
NV_ENC_REGISTERED_PTR regptr
@ NV_ENC_HEVC_PROFILE_MAIN_10
@ NV_ENC_HEVC_PROFILE_REXT
int single_slice_intra_refresh
uint32_t frame_idx_counter
NV_ENC_BUFFER_FORMAT format
NV_ENC_INITIALIZE_PARAMS init_encode_params
NvencFunctions * nvenc_dl
NV_ENC_INPUT_PTR input_surface
Describe the class of an AVClass context structure.
AVBufferRef * frame_opaque_ref
@ NV_ENC_H264_PROFILE_HIGH_444P
int64_t initial_delay_time
@ NV_ENC_HEVC_PROFILE_MAIN
int ff_nvenc_encode_init(AVCodecContext *avctx)
@ NV_ENC_H264_PROFILE_HIGH
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_MAIN
NvencFrameData * frame_data_array
int ff_nvenc_receive_packet(AVCodecContext *avctx, AVPacket *pkt)
@ NVENC_RGB_MODE_DISABLED
main external API structure.
int ff_nvenc_encode_close(AVCodecContext *avctx)
NV_ENC_OUTPUT_PTR output_surface
struct NvencContext::@242 registered_frames[MAX_REGISTERED_FRAMES]
NV_ENCODE_API_FUNCTION_LIST nvenc_funcs
A reference to a data buffer.
This structure stores compressed data.
enum AVPixelFormat ff_nvenc_pix_fmts[]
@ NV_ENC_HEVC_PROFILE_COUNT
AVFifo * unused_surface_queue
CUcontext cu_context_internal
@ NV_ENC_H264_PROFILE_BASELINE
const AVCodecHWConfigInternal *const ff_nvenc_hw_configs[]
ID3D11Device * d3d11_device