FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations
NvEncodeAPI Data structures

Data Structures

struct  GUID
 
struct  NVENC_RECT
 
struct  NV_ENC_CAPS_PARAM
 Input struct for querying Encoding capabilities. More...
 
struct  NV_ENC_CREATE_INPUT_BUFFER
 Creation parameters for input buffer. More...
 
struct  NV_ENC_CREATE_BITSTREAM_BUFFER
 Creation parameters for output bitstream buffer. More...
 
struct  NV_ENC_MVECTOR
 Structs needed for ME only mode. More...
 
struct  NV_ENC_H264_MV_DATA
 Motion vector structure per macroblock for H264 motion estimation. More...
 
struct  NV_ENC_HEVC_MV_DATA
 Motion vector structure per CU for HEVC motion estimation. More...
 
struct  NV_ENC_CREATE_MV_BUFFER
 Creation parameters for output motion vector buffer for ME only mode. More...
 
struct  NV_ENC_QP
 QP value for frames. More...
 
struct  NV_ENC_RC_PARAMS
 Rate Control Configuration Paramters. More...
 
struct  NV_ENC_CONFIG_H264_VUI_PARAMETERS
 
struct  NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE
 
struct  NVENC_EXTERNAL_ME_HINT
 
struct  NV_ENC_CONFIG_H264
 
struct  NV_ENC_CONFIG_HEVC
 
struct  NV_ENC_CONFIG_H264_MEONLY
 
struct  NV_ENC_CONFIG_HEVC_MEONLY
 
union  NV_ENC_CODEC_CONFIG
 
struct  NV_ENC_CONFIG
 
struct  NV_ENC_INITIALIZE_PARAMS
 
struct  NV_ENC_RECONFIGURE_PARAMS
 
struct  NV_ENC_PRESET_CONFIG
 
struct  NV_ENC_SEI_PAYLOAD
 
struct  NV_ENC_PIC_PARAMS_H264
 
struct  NV_ENC_PIC_PARAMS_HEVC
 
union  NV_ENC_CODEC_PIC_PARAMS
 Codec specific per-picture encoding parameters. More...
 
struct  NV_ENC_PIC_PARAMS
 
struct  NV_ENC_MEONLY_PARAMS
 
struct  NV_ENC_LOCK_BITSTREAM
 
struct  NV_ENC_LOCK_INPUT_BUFFER
 
struct  NV_ENC_MAP_INPUT_RESOURCE
 
struct  NV_ENC_INPUT_RESOURCE_OPENGL_TEX
 
struct  NV_ENC_REGISTER_RESOURCE
 
struct  NV_ENC_STAT
 
struct  NV_ENC_SEQUENCE_PARAM_PAYLOAD
 
struct  NV_ENC_EVENT_PARAMS
 Event registration/unregistration parameters. More...
 
struct  NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS
 Encoder Session Creation parameters. More...
 
struct  NV_ENCODE_API_FUNCTION_LIST
 NV_ENCODE_API_FUNCTION_LIST. More...
 
struct  _NVENC_RECT
 Defines a Rectangle. More...
 
struct  _NV_ENC_CONFIG_H264_VUI_PARAMETERS
 H264 Video Usability Info parameters. More...
 
struct  _NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE
 External motion vector hint counts per block type. More...
 
struct  _NVENC_EXTERNAL_ME_HINT
 External Motion Vector hint structure. More...
 
struct  _NV_ENC_CONFIG_H264
 H264 encoder configuration parameters. More...
 
struct  _NV_ENC_CONFIG_HEVC
 HEVC encoder configuration parameters to be set during initialization. More...
 
struct  _NV_ENC_CONFIG_H264_MEONLY
 H264 encoder configuration parameters for ME only Mode. More...
 
struct  _NV_ENC_CONFIG_HEVC_MEONLY
 HEVC encoder configuration parameters for ME only Mode. More...
 
struct  _NV_ENC_CODEC_CONFIG
 Codec-specific encoder configuration parameters to be set during initialization. More...
 
struct  _NV_ENC_CONFIG
 Encoder configuration parameters to be set during initialization. More...
 
struct  _NV_ENC_INITIALIZE_PARAMS
 Encode Session Initialization parameters. More...
 
struct  _NV_ENC_RECONFIGURE_PARAMS
 Encode Session Reconfigured parameters. More...
 
struct  _NV_ENC_PRESET_CONFIG
 Encoder preset config. More...
 
struct  _NV_ENC_SEI_PAYLOAD
 User SEI message. More...
 
struct  _NV_ENC_PIC_PARAMS_H264
 H264 specific enc pic params. More...
 
struct  _NV_ENC_PIC_PARAMS_HEVC
 HEVC specific enc pic params. More...
 
struct  _NV_ENC_PIC_PARAMS
 Encoding parameters that need to be sent on a per frame basis. More...
 
struct  _NV_ENC_MEONLY_PARAMS
 MEOnly parameters that need to be sent on a per motion estimation basis. More...
 
struct  _NV_ENC_LOCK_BITSTREAM
 Bitstream buffer lock parameters. More...
 
struct  _NV_ENC_LOCK_INPUT_BUFFER
 Uncompressed Input Buffer lock parameters. More...
 
struct  _NV_ENC_MAP_INPUT_RESOURCE
 Map an input resource to a Nvidia Encoder Input Buffer. More...
 
struct  _NV_ENC_INPUT_RESOURCE_OPENGL_TEX
 NV_ENC_REGISTER_RESOURCE::resourceToRegister must be a pointer to a variable of this type, when NV_ENC_REGISTER_RESOURCE::resourceType is NV_ENC_INPUT_RESOURCE_TYPE_OPENGL_TEX. More...
 
struct  _NV_ENC_REGISTER_RESOURCE
 Register a resource for future use with the Nvidia Video Encoder Interface. More...
 
struct  _NV_ENC_STAT
 Encode Stats structure. More...
 
struct  _NV_ENC_SEQUENCE_PARAM_PAYLOAD
 Sequence and picture paramaters payload. More...
 

Macros

#define NVENCAPI
 
#define NV_ENC_PARAMS_RC_VBR_MINQP   (NV_ENC_PARAMS_RC_MODE)0x4
 Deprecated. More...
 
#define NV_ENC_PARAMS_RC_2_PASS_QUALITY   NV_ENC_PARAMS_RC_CBR_LOWDELAY_HQ
 Deprecated. More...
 
#define NV_ENC_PARAMS_RC_2_PASS_FRAMESIZE_CAP   NV_ENC_PARAMS_RC_CBR_HQ
 Deprecated. More...
 
#define NV_ENC_PARAMS_RC_2_PASS_VBR   NV_ENC_PARAMS_RC_VBR_HQ
 Deprecated. More...
 
#define NV_ENC_PARAMS_RC_CBR2   NV_ENC_PARAMS_RC_CBR
 Deprecated. More...
 
#define NV_ENC_BUFFER_FORMAT_NV12_PL   NV_ENC_BUFFER_FORMAT_NV12
 
#define NV_ENC_BUFFER_FORMAT_YV12_PL   NV_ENC_BUFFER_FORMAT_YV12
 
#define NV_ENC_BUFFER_FORMAT_IYUV_PL   NV_ENC_BUFFER_FORMAT_IYUV
 
#define NV_ENC_BUFFER_FORMAT_YUV444_PL   NV_ENC_BUFFER_FORMAT_YUV444
 
#define NV_ENC_CAPS_PARAM_VER   NVENCAPI_STRUCT_VERSION(1)
 NV_ENC_CAPS_PARAM struct version. More...
 
#define NV_ENC_CREATE_INPUT_BUFFER_VER   NVENCAPI_STRUCT_VERSION(1)
 NV_ENC_CREATE_INPUT_BUFFER struct version. More...
 
#define NV_ENC_CREATE_BITSTREAM_BUFFER_VER   NVENCAPI_STRUCT_VERSION(1)
 NV_ENC_CREATE_BITSTREAM_BUFFER struct version. More...
 
#define NV_ENC_CREATE_MV_BUFFER_VER   NVENCAPI_STRUCT_VERSION(1)
 NV_ENC_CREATE_MV_BUFFER struct version. More...
 
#define NV_ENC_RC_PARAMS_VER   NVENCAPI_STRUCT_VERSION(1)
 macro for constructing the version field of ::_NV_ENC_RC_PARAMS More...
 
#define NV_ENC_CONFIG_VER   (NVENCAPI_STRUCT_VERSION(6) | ( 1<<31 ))
 macro for constructing the version field of _NV_ENC_CONFIG More...
 
#define NV_ENC_INITIALIZE_PARAMS_VER   (NVENCAPI_STRUCT_VERSION(5) | ( 1<<31 ))
 macro for constructing the version field of _NV_ENC_INITIALIZE_PARAMS More...
 
#define NV_ENC_RECONFIGURE_PARAMS_VER   (NVENCAPI_STRUCT_VERSION(1) | ( 1<<31 ))
 macro for constructing the version field of _NV_ENC_RECONFIGURE_PARAMS More...
 
#define NV_ENC_PRESET_CONFIG_VER   (NVENCAPI_STRUCT_VERSION(4) | ( 1<<31 ))
 macro for constructing the version field of _NV_ENC_PRESET_CONFIG More...
 
#define NV_ENC_H264_SEI_PAYLOAD   NV_ENC_SEI_PAYLOAD
 
#define NV_ENC_PIC_PARAMS_VER   (NVENCAPI_STRUCT_VERSION(4) | ( 1<<31 ))
 Macro for constructing the version field of _NV_ENC_PIC_PARAMS. More...
 
#define NV_ENC_MEONLY_PARAMS_VER   NVENCAPI_STRUCT_VERSION(3)
 NV_ENC_MEONLY_PARAMS struct version. More...
 
#define NV_ENC_LOCK_BITSTREAM_VER   NVENCAPI_STRUCT_VERSION(1)
 Macro for constructing the version field of _NV_ENC_LOCK_BITSTREAM. More...
 
#define NV_ENC_LOCK_INPUT_BUFFER_VER   NVENCAPI_STRUCT_VERSION(1)
 Macro for constructing the version field of _NV_ENC_LOCK_INPUT_BUFFER. More...
 
#define NV_ENC_MAP_INPUT_RESOURCE_VER   NVENCAPI_STRUCT_VERSION(4)
 Macro for constructing the version field of _NV_ENC_MAP_INPUT_RESOURCE. More...
 
#define NV_ENC_REGISTER_RESOURCE_VER   NVENCAPI_STRUCT_VERSION(3)
 Macro for constructing the version field of _NV_ENC_REGISTER_RESOURCE. More...
 
#define NV_ENC_STAT_VER   NVENCAPI_STRUCT_VERSION(1)
 Macro for constructing the version field of _NV_ENC_STAT. More...
 
#define NV_ENC_SEQUENCE_PARAM_PAYLOAD_VER   NVENCAPI_STRUCT_VERSION(1)
 Macro for constructing the version field of _NV_ENC_SEQUENCE_PARAM_PAYLOAD. More...
 
#define NV_ENC_EVENT_PARAMS_VER   NVENCAPI_STRUCT_VERSION(1)
 Macro for constructing the version field of ::_NV_ENC_EVENT_PARAMS. More...
 
#define NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS_VER   NVENCAPI_STRUCT_VERSION(1)
 Macro for constructing the version field of ::_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS. More...
 

Typedefs

typedef
NV_ENC_CONFIG_H264_VUI_PARAMETERS 
NV_ENC_CONFIG_HEVC_VUI_PARAMETERS
 

Enumerations

enum  NV_ENC_PARAMS_FRAME_FIELD_MODE { NV_ENC_PARAMS_FRAME_FIELD_MODE_FRAME = 0x01, NV_ENC_PARAMS_FRAME_FIELD_MODE_FIELD = 0x02, NV_ENC_PARAMS_FRAME_FIELD_MODE_MBAFF = 0x03 }
 Input frame encode modes. More...
 
enum  NV_ENC_PARAMS_RC_MODE {
  NV_ENC_PARAMS_RC_CONSTQP = 0x0, NV_ENC_PARAMS_RC_VBR = 0x1, NV_ENC_PARAMS_RC_CBR = 0x2, NV_ENC_PARAMS_RC_CBR_LOWDELAY_HQ = 0x8,
  NV_ENC_PARAMS_RC_CBR_HQ = 0x10, NV_ENC_PARAMS_RC_VBR_HQ = 0x20
}
 Rate Control Modes. More...
 
enum  NV_ENC_PIC_STRUCT { NV_ENC_PIC_STRUCT_FRAME = 0x01, NV_ENC_PIC_STRUCT_FIELD_TOP_BOTTOM = 0x02, NV_ENC_PIC_STRUCT_FIELD_BOTTOM_TOP = 0x03 }
 Input picture structure. More...
 
enum  NV_ENC_PIC_TYPE {
  NV_ENC_PIC_TYPE_P = 0x0, NV_ENC_PIC_TYPE_B = 0x01, NV_ENC_PIC_TYPE_I = 0x02, NV_ENC_PIC_TYPE_IDR = 0x03,
  NV_ENC_PIC_TYPE_BI = 0x04, NV_ENC_PIC_TYPE_SKIPPED = 0x05, NV_ENC_PIC_TYPE_INTRA_REFRESH = 0x06, NV_ENC_PIC_TYPE_UNKNOWN = 0xFF
}
 Input picture type. More...
 
enum  NV_ENC_MV_PRECISION { NV_ENC_MV_PRECISION_DEFAULT = 0x0, NV_ENC_MV_PRECISION_FULL_PEL = 0x01, NV_ENC_MV_PRECISION_HALF_PEL = 0x02, NV_ENC_MV_PRECISION_QUARTER_PEL = 0x03 }
 Motion vector precisions. More...
 
enum  NV_ENC_BUFFER_FORMAT {
  NV_ENC_BUFFER_FORMAT_UNDEFINED = 0x00000000, NV_ENC_BUFFER_FORMAT_NV12 = 0x00000001, NV_ENC_BUFFER_FORMAT_YV12 = 0x00000010, NV_ENC_BUFFER_FORMAT_IYUV = 0x00000100,
  NV_ENC_BUFFER_FORMAT_YUV444 = 0x00001000, NV_ENC_BUFFER_FORMAT_YUV420_10BIT = 0x00010000, NV_ENC_BUFFER_FORMAT_YUV444_10BIT = 0x00100000, NV_ENC_BUFFER_FORMAT_ARGB = 0x01000000,
  NV_ENC_BUFFER_FORMAT_ARGB10 = 0x02000000, NV_ENC_BUFFER_FORMAT_AYUV = 0x04000000, NV_ENC_BUFFER_FORMAT_ABGR = 0x10000000, NV_ENC_BUFFER_FORMAT_ABGR10 = 0x20000000
}
 Input buffer formats. More...
 
enum  NV_ENC_LEVEL {
  NV_ENC_LEVEL_AUTOSELECT = 0, NV_ENC_LEVEL_H264_1 = 10, NV_ENC_LEVEL_H264_1b = 9, NV_ENC_LEVEL_H264_11 = 11,
  NV_ENC_LEVEL_H264_12 = 12, NV_ENC_LEVEL_H264_13 = 13, NV_ENC_LEVEL_H264_2 = 20, NV_ENC_LEVEL_H264_21 = 21,
  NV_ENC_LEVEL_H264_22 = 22, NV_ENC_LEVEL_H264_3 = 30, NV_ENC_LEVEL_H264_31 = 31, NV_ENC_LEVEL_H264_32 = 32,
  NV_ENC_LEVEL_H264_4 = 40, NV_ENC_LEVEL_H264_41 = 41, NV_ENC_LEVEL_H264_42 = 42, NV_ENC_LEVEL_H264_5 = 50,
  NV_ENC_LEVEL_H264_51 = 51, NV_ENC_LEVEL_H264_52 = 52, NV_ENC_LEVEL_HEVC_1 = 30, NV_ENC_LEVEL_HEVC_2 = 60,
  NV_ENC_LEVEL_HEVC_21 = 63, NV_ENC_LEVEL_HEVC_3 = 90, NV_ENC_LEVEL_HEVC_31 = 93, NV_ENC_LEVEL_HEVC_4 = 120,
  NV_ENC_LEVEL_HEVC_41 = 123, NV_ENC_LEVEL_HEVC_5 = 150, NV_ENC_LEVEL_HEVC_51 = 153, NV_ENC_LEVEL_HEVC_52 = 156,
  NV_ENC_LEVEL_HEVC_6 = 180, NV_ENC_LEVEL_HEVC_61 = 183, NV_ENC_LEVEL_HEVC_62 = 186, NV_ENC_TIER_HEVC_MAIN = 0,
  NV_ENC_TIER_HEVC_HIGH = 1
}
 Encoding levels. More...
 
enum  NVENCSTATUS {
  NV_ENC_SUCCESS, NV_ENC_ERR_NO_ENCODE_DEVICE, NV_ENC_ERR_UNSUPPORTED_DEVICE, NV_ENC_ERR_INVALID_ENCODERDEVICE,
  NV_ENC_ERR_INVALID_DEVICE, NV_ENC_ERR_DEVICE_NOT_EXIST, NV_ENC_ERR_INVALID_PTR, NV_ENC_ERR_INVALID_EVENT,
  NV_ENC_ERR_INVALID_PARAM, NV_ENC_ERR_INVALID_CALL, NV_ENC_ERR_OUT_OF_MEMORY, NV_ENC_ERR_ENCODER_NOT_INITIALIZED,
  NV_ENC_ERR_UNSUPPORTED_PARAM, NV_ENC_ERR_LOCK_BUSY, NV_ENC_ERR_NOT_ENOUGH_BUFFER, NV_ENC_ERR_INVALID_VERSION,
  NV_ENC_ERR_MAP_FAILED, NV_ENC_ERR_NEED_MORE_INPUT, NV_ENC_ERR_ENCODER_BUSY, NV_ENC_ERR_EVENT_NOT_REGISTERD,
  NV_ENC_ERR_GENERIC, NV_ENC_ERR_INCOMPATIBLE_CLIENT_KEY, NV_ENC_ERR_UNIMPLEMENTED, NV_ENC_ERR_RESOURCE_REGISTER_FAILED,
  NV_ENC_ERR_RESOURCE_NOT_REGISTERED, NV_ENC_ERR_RESOURCE_NOT_MAPPED
}
 Error Codes. More...
 
enum  NV_ENC_PIC_FLAGS { NV_ENC_PIC_FLAG_FORCEINTRA = 0x1, NV_ENC_PIC_FLAG_FORCEIDR = 0x2, NV_ENC_PIC_FLAG_OUTPUT_SPSPPS = 0x4, NV_ENC_PIC_FLAG_EOS = 0x8 }
 Encode Picture encode flags. More...
 
enum  NV_ENC_MEMORY_HEAP { NV_ENC_MEMORY_HEAP_AUTOSELECT = 0, NV_ENC_MEMORY_HEAP_VID = 1, NV_ENC_MEMORY_HEAP_SYSMEM_CACHED = 2, NV_ENC_MEMORY_HEAP_SYSMEM_UNCACHED = 3 }
 Memory heap to allocate input and output buffers. More...
 
enum  NV_ENC_H264_ENTROPY_CODING_MODE { NV_ENC_H264_ENTROPY_CODING_MODE_AUTOSELECT = 0x0, NV_ENC_H264_ENTROPY_CODING_MODE_CABAC = 0x1, NV_ENC_H264_ENTROPY_CODING_MODE_CAVLC = 0x2 }
 H.264 entropy coding modes. More...
 
enum  NV_ENC_H264_BDIRECT_MODE { NV_ENC_H264_BDIRECT_MODE_AUTOSELECT = 0x0, NV_ENC_H264_BDIRECT_MODE_DISABLE = 0x1, NV_ENC_H264_BDIRECT_MODE_TEMPORAL = 0x2, NV_ENC_H264_BDIRECT_MODE_SPATIAL = 0x3 }
 H.264 specific Bdirect modes. More...
 
enum  NV_ENC_H264_FMO_MODE { NV_ENC_H264_FMO_AUTOSELECT = 0x0, NV_ENC_H264_FMO_ENABLE = 0x1, NV_ENC_H264_FMO_DISABLE = 0x2 }
 H.264 specific FMO usage. More...
 
enum  NV_ENC_H264_ADAPTIVE_TRANSFORM_MODE { NV_ENC_H264_ADAPTIVE_TRANSFORM_AUTOSELECT = 0x0, NV_ENC_H264_ADAPTIVE_TRANSFORM_DISABLE = 0x1, NV_ENC_H264_ADAPTIVE_TRANSFORM_ENABLE = 0x2 }
 H.264 specific Adaptive Transform modes. More...
 
enum  NV_ENC_STEREO_PACKING_MODE {
  NV_ENC_STEREO_PACKING_MODE_NONE = 0x0, NV_ENC_STEREO_PACKING_MODE_CHECKERBOARD = 0x1, NV_ENC_STEREO_PACKING_MODE_COLINTERLEAVE = 0x2, NV_ENC_STEREO_PACKING_MODE_ROWINTERLEAVE = 0x3,
  NV_ENC_STEREO_PACKING_MODE_SIDEBYSIDE = 0x4, NV_ENC_STEREO_PACKING_MODE_TOPBOTTOM = 0x5, NV_ENC_STEREO_PACKING_MODE_FRAMESEQ = 0x6
}
 Stereo frame packing modes. More...
 
enum  NV_ENC_INPUT_RESOURCE_TYPE { NV_ENC_INPUT_RESOURCE_TYPE_DIRECTX = 0x0, NV_ENC_INPUT_RESOURCE_TYPE_CUDADEVICEPTR = 0x1, NV_ENC_INPUT_RESOURCE_TYPE_CUDAARRAY = 0x2, NV_ENC_INPUT_RESOURCE_TYPE_OPENGL_TEX = 0x3 }
 Input Resource type. More...
 
enum  NV_ENC_DEVICE_TYPE { NV_ENC_DEVICE_TYPE_DIRECTX = 0x0, NV_ENC_DEVICE_TYPE_CUDA = 0x1, NV_ENC_DEVICE_TYPE_OPENGL = 0x2 }
 Encoder Device type. More...
 
enum  NV_ENC_CAPS {
  NV_ENC_CAPS_NUM_MAX_BFRAMES, NV_ENC_CAPS_SUPPORTED_RATECONTROL_MODES, NV_ENC_CAPS_SUPPORT_FIELD_ENCODING, NV_ENC_CAPS_SUPPORT_MONOCHROME,
  NV_ENC_CAPS_SUPPORT_FMO, NV_ENC_CAPS_SUPPORT_QPELMV, NV_ENC_CAPS_SUPPORT_BDIRECT_MODE, NV_ENC_CAPS_SUPPORT_CABAC,
  NV_ENC_CAPS_SUPPORT_ADAPTIVE_TRANSFORM, NV_ENC_CAPS_SUPPORT_RESERVED, NV_ENC_CAPS_NUM_MAX_TEMPORAL_LAYERS, NV_ENC_CAPS_SUPPORT_HIERARCHICAL_PFRAMES,
  NV_ENC_CAPS_SUPPORT_HIERARCHICAL_BFRAMES, NV_ENC_CAPS_LEVEL_MAX, NV_ENC_CAPS_LEVEL_MIN, NV_ENC_CAPS_SEPARATE_COLOUR_PLANE,
  NV_ENC_CAPS_WIDTH_MAX, NV_ENC_CAPS_HEIGHT_MAX, NV_ENC_CAPS_SUPPORT_TEMPORAL_SVC, NV_ENC_CAPS_SUPPORT_DYN_RES_CHANGE,
  NV_ENC_CAPS_SUPPORT_DYN_BITRATE_CHANGE, NV_ENC_CAPS_SUPPORT_DYN_FORCE_CONSTQP, NV_ENC_CAPS_SUPPORT_DYN_RCMODE_CHANGE, NV_ENC_CAPS_SUPPORT_SUBFRAME_READBACK,
  NV_ENC_CAPS_SUPPORT_CONSTRAINED_ENCODING, NV_ENC_CAPS_SUPPORT_INTRA_REFRESH, NV_ENC_CAPS_SUPPORT_CUSTOM_VBV_BUF_SIZE, NV_ENC_CAPS_SUPPORT_DYNAMIC_SLICE_MODE,
  NV_ENC_CAPS_SUPPORT_REF_PIC_INVALIDATION, NV_ENC_CAPS_PREPROC_SUPPORT, NV_ENC_CAPS_ASYNC_ENCODE_SUPPORT, NV_ENC_CAPS_MB_NUM_MAX,
  NV_ENC_CAPS_MB_PER_SEC_MAX, NV_ENC_CAPS_SUPPORT_YUV444_ENCODE, NV_ENC_CAPS_SUPPORT_LOSSLESS_ENCODE, NV_ENC_CAPS_SUPPORT_SAO,
  NV_ENC_CAPS_SUPPORT_MEONLY_MODE, NV_ENC_CAPS_SUPPORT_LOOKAHEAD, NV_ENC_CAPS_SUPPORT_TEMPORAL_AQ, NV_ENC_CAPS_SUPPORT_10BIT_ENCODE,
  NV_ENC_CAPS_NUM_MAX_LTR_FRAMES, NV_ENC_CAPS_SUPPORT_WEIGHTED_PREDICTION, NV_ENC_CAPS_EXPOSED_COUNT
}
 Encoder capabilities enumeration. More...
 
enum  NV_ENC_HEVC_CUSIZE {
  NV_ENC_HEVC_CUSIZE_AUTOSELECT = 0, NV_ENC_HEVC_CUSIZE_8x8 = 1, NV_ENC_HEVC_CUSIZE_16x16 = 2, NV_ENC_HEVC_CUSIZE_32x32 = 3,
  NV_ENC_HEVC_CUSIZE_64x64 = 4
}
 HEVC CU SIZE. More...
 

Detailed Description

Macro Definition Documentation

#define NVENCAPI

Definition at line 73 of file nvEncodeAPI.h.

#define NV_ENC_PARAMS_RC_VBR_MINQP   (NV_ENC_PARAMS_RC_MODE)0x4

Deprecated.

Definition at line 265 of file nvEncodeAPI.h.

Referenced by nvenc_override_rate_control(), and nvenc_setup_rate_control().

#define NV_ENC_PARAMS_RC_2_PASS_QUALITY   NV_ENC_PARAMS_RC_CBR_LOWDELAY_HQ

Deprecated.

Definition at line 266 of file nvEncodeAPI.h.

#define NV_ENC_PARAMS_RC_2_PASS_FRAMESIZE_CAP   NV_ENC_PARAMS_RC_CBR_HQ

Deprecated.

Definition at line 267 of file nvEncodeAPI.h.

#define NV_ENC_PARAMS_RC_2_PASS_VBR   NV_ENC_PARAMS_RC_VBR_HQ

Deprecated.

Definition at line 268 of file nvEncodeAPI.h.

#define NV_ENC_PARAMS_RC_CBR2   NV_ENC_PARAMS_RC_CBR

Deprecated.

Definition at line 269 of file nvEncodeAPI.h.

#define NV_ENC_BUFFER_FORMAT_NV12_PL   NV_ENC_BUFFER_FORMAT_NV12

Definition at line 343 of file nvEncodeAPI.h.

Referenced by nvenc_map_buffer_format().

#define NV_ENC_BUFFER_FORMAT_YV12_PL   NV_ENC_BUFFER_FORMAT_YV12

Definition at line 344 of file nvEncodeAPI.h.

Referenced by nvenc_map_buffer_format().

#define NV_ENC_BUFFER_FORMAT_IYUV_PL   NV_ENC_BUFFER_FORMAT_IYUV

Definition at line 345 of file nvEncodeAPI.h.

#define NV_ENC_BUFFER_FORMAT_YUV444_PL   NV_ENC_BUFFER_FORMAT_YUV444

Definition at line 346 of file nvEncodeAPI.h.

Referenced by nvenc_map_buffer_format().

#define NV_ENC_CAPS_PARAM_VER   NVENCAPI_STRUCT_VERSION(1)

NV_ENC_CAPS_PARAM struct version.

Definition at line 987 of file nvEncodeAPI.h.

Referenced by nvenc_check_cap().

#define NV_ENC_CREATE_INPUT_BUFFER_VER   NVENCAPI_STRUCT_VERSION(1)

NV_ENC_CREATE_INPUT_BUFFER struct version.

Definition at line 1008 of file nvEncodeAPI.h.

Referenced by nvenc_alloc_surface().

#define NV_ENC_CREATE_BITSTREAM_BUFFER_VER   NVENCAPI_STRUCT_VERSION(1)

NV_ENC_CREATE_BITSTREAM_BUFFER struct version.

Definition at line 1026 of file nvEncodeAPI.h.

Referenced by nvenc_alloc_surface().

#define NV_ENC_CREATE_MV_BUFFER_VER   NVENCAPI_STRUCT_VERSION(1)

NV_ENC_CREATE_MV_BUFFER struct version.

Definition at line 1075 of file nvEncodeAPI.h.

#define NV_ENC_RC_PARAMS_VER   NVENCAPI_STRUCT_VERSION(1)

macro for constructing the version field of ::_NV_ENC_RC_PARAMS

Definition at line 1125 of file nvEncodeAPI.h.

#define NV_ENC_CONFIG_VER   (NVENCAPI_STRUCT_VERSION(6) | ( 1<<31 ))

macro for constructing the version field of _NV_ENC_CONFIG

Definition at line 1385 of file nvEncodeAPI.h.

Referenced by nvenc_setup_encoder().

#define NV_ENC_INITIALIZE_PARAMS_VER   (NVENCAPI_STRUCT_VERSION(5) | ( 1<<31 ))

macro for constructing the version field of _NV_ENC_INITIALIZE_PARAMS

Definition at line 1429 of file nvEncodeAPI.h.

Referenced by nvenc_setup_encoder().

#define NV_ENC_RECONFIGURE_PARAMS_VER   (NVENCAPI_STRUCT_VERSION(1) | ( 1<<31 ))

macro for constructing the version field of _NV_ENC_RECONFIGURE_PARAMS

Definition at line 1449 of file nvEncodeAPI.h.

#define NV_ENC_PRESET_CONFIG_VER   (NVENCAPI_STRUCT_VERSION(4) | ( 1<<31 ))

macro for constructing the version field of _NV_ENC_PRESET_CONFIG

Definition at line 1464 of file nvEncodeAPI.h.

Referenced by nvenc_setup_encoder().

#define NV_ENC_H264_SEI_PAYLOAD   NV_ENC_SEI_PAYLOAD

Definition at line 1478 of file nvEncodeAPI.h.

#define NV_ENC_PIC_PARAMS_VER   (NVENCAPI_STRUCT_VERSION(4) | ( 1<<31 ))

Macro for constructing the version field of _NV_ENC_PIC_PARAMS.

Definition at line 1612 of file nvEncodeAPI.h.

Referenced by ff_nvenc_encode_close(), and ff_nvenc_send_frame().

#define NV_ENC_MEONLY_PARAMS_VER   NVENCAPI_STRUCT_VERSION(3)

NV_ENC_MEONLY_PARAMS struct version.

Definition at line 1645 of file nvEncodeAPI.h.

#define NV_ENC_LOCK_BITSTREAM_VER   NVENCAPI_STRUCT_VERSION(1)

Macro for constructing the version field of _NV_ENC_LOCK_BITSTREAM.

Definition at line 1680 of file nvEncodeAPI.h.

Referenced by process_output_surface().

#define NV_ENC_LOCK_INPUT_BUFFER_VER   NVENCAPI_STRUCT_VERSION(1)

Macro for constructing the version field of _NV_ENC_LOCK_INPUT_BUFFER.

Definition at line 1700 of file nvEncodeAPI.h.

Referenced by nvenc_upload_frame().

#define NV_ENC_MAP_INPUT_RESOURCE_VER   NVENCAPI_STRUCT_VERSION(4)

Macro for constructing the version field of _NV_ENC_MAP_INPUT_RESOURCE.

Definition at line 1720 of file nvEncodeAPI.h.

Referenced by nvenc_upload_frame().

#define NV_ENC_REGISTER_RESOURCE_VER   NVENCAPI_STRUCT_VERSION(3)

Macro for constructing the version field of _NV_ENC_REGISTER_RESOURCE.

Definition at line 1757 of file nvEncodeAPI.h.

Referenced by nvenc_register_frame().

#define NV_ENC_STAT_VER   NVENCAPI_STRUCT_VERSION(1)

Macro for constructing the version field of _NV_ENC_STAT.

Definition at line 1778 of file nvEncodeAPI.h.

#define NV_ENC_SEQUENCE_PARAM_PAYLOAD_VER   NVENCAPI_STRUCT_VERSION(1)

Macro for constructing the version field of _NV_ENC_SEQUENCE_PARAM_PAYLOAD.

Definition at line 1798 of file nvEncodeAPI.h.

Referenced by nvenc_setup_extradata().

#define NV_ENC_EVENT_PARAMS_VER   NVENCAPI_STRUCT_VERSION(1)

Macro for constructing the version field of ::_NV_ENC_EVENT_PARAMS.

Definition at line 1814 of file nvEncodeAPI.h.

#define NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS_VER   NVENCAPI_STRUCT_VERSION(1)

Macro for constructing the version field of ::_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS.

Definition at line 1830 of file nvEncodeAPI.h.

Referenced by nvenc_open_session().

Typedef Documentation

Definition at line 1151 of file nvEncodeAPI.h.

Enumeration Type Documentation

Input frame encode modes.

Enumerator
NV_ENC_PARAMS_FRAME_FIELD_MODE_FRAME 

Frame mode.

NV_ENC_PARAMS_FRAME_FIELD_MODE_FIELD 

Field mode.

NV_ENC_PARAMS_FRAME_FIELD_MODE_MBAFF 

MB adaptive frame/field.

Definition at line 245 of file nvEncodeAPI.h.

Rate Control Modes.

Enumerator
NV_ENC_PARAMS_RC_CONSTQP 

Constant QP mode.

NV_ENC_PARAMS_RC_VBR 

Variable bitrate mode.

NV_ENC_PARAMS_RC_CBR 

Constant bitrate mode.

NV_ENC_PARAMS_RC_CBR_LOWDELAY_HQ 

low-delay CBR, high quality

NV_ENC_PARAMS_RC_CBR_HQ 

CBR, high quality (slower)

NV_ENC_PARAMS_RC_VBR_HQ 

VBR, high quality (slower)

Definition at line 255 of file nvEncodeAPI.h.

Input picture structure.

Enumerator
NV_ENC_PIC_STRUCT_FRAME 

Progressive frame.

NV_ENC_PIC_STRUCT_FIELD_TOP_BOTTOM 

Field encoding top field first.

NV_ENC_PIC_STRUCT_FIELD_BOTTOM_TOP 

Field encoding bottom field first.

Definition at line 274 of file nvEncodeAPI.h.

Input picture type.

Enumerator
NV_ENC_PIC_TYPE_P 

Forward predicted.

NV_ENC_PIC_TYPE_B 

Bi-directionally predicted picture.

NV_ENC_PIC_TYPE_I 

Intra predicted picture.

NV_ENC_PIC_TYPE_IDR 

IDR picture.

NV_ENC_PIC_TYPE_BI 

Bi-directionally predicted with only Intra MBs.

NV_ENC_PIC_TYPE_SKIPPED 

Picture is skipped.

NV_ENC_PIC_TYPE_INTRA_REFRESH 

First picture in intra refresh cycle.

NV_ENC_PIC_TYPE_UNKNOWN 

Picture type unknown.

Definition at line 284 of file nvEncodeAPI.h.

Motion vector precisions.

Enumerator
NV_ENC_MV_PRECISION_DEFAULT 

Driver selects QuarterPel motion vector precision by default.

NV_ENC_MV_PRECISION_FULL_PEL 

FullPel motion vector precision.

NV_ENC_MV_PRECISION_HALF_PEL 

HalfPel motion vector precision.

NV_ENC_MV_PRECISION_QUARTER_PEL 

QuarterPel motion vector precision.

Definition at line 299 of file nvEncodeAPI.h.

Input buffer formats.

Enumerator
NV_ENC_BUFFER_FORMAT_UNDEFINED 

Undefined buffer format.

NV_ENC_BUFFER_FORMAT_NV12 

Semi-Planar YUV [Y plane followed by interleaved UV plane].

NV_ENC_BUFFER_FORMAT_YV12 

Planar YUV [Y plane followed by V and U planes].

NV_ENC_BUFFER_FORMAT_IYUV 

Planar YUV [Y plane followed by U and V planes].

NV_ENC_BUFFER_FORMAT_YUV444 

Planar YUV [Y plane followed by U and V planes].

NV_ENC_BUFFER_FORMAT_YUV420_10BIT 

10 bit Semi-Planar YUV [Y plane followed by interleaved UV plane].

Each pixel of size 2 bytes. Most Significant 10 bits contain pixel data.

NV_ENC_BUFFER_FORMAT_YUV444_10BIT 

10 bit Planar YUV444 [Y plane followed by U and V planes].

Each pixel of size 2 bytes. Most Significant 10 bits contain pixel data.

NV_ENC_BUFFER_FORMAT_ARGB 

8 bit Packed A8R8G8B8.

This is a word-ordered format where a pixel is represented by a 32-bit word with B in the lowest 8 bits, G in the next 8 bits, R in the 8 bits after that and A in the highest 8 bits.

NV_ENC_BUFFER_FORMAT_ARGB10 

10 bit Packed A2R10G10B10.

This is a word-ordered format where a pixel is represented by a 32-bit word with B in the lowest 10 bits, G in the next 10 bits, R in the 10 bits after that and A in the highest 2 bits.

NV_ENC_BUFFER_FORMAT_AYUV 

8 bit Packed A8Y8U8V8.

This is a word-ordered format where a pixel is represented by a 32-bit word with V in the lowest 8 bits, U in the next 8 bits, Y in the 8 bits after that and A in the highest 8 bits.

NV_ENC_BUFFER_FORMAT_ABGR 

8 bit Packed A8B8G8R8.

This is a word-ordered format where a pixel is represented by a 32-bit word with R in the lowest 8 bits, G in the next 8 bits, B in the 8 bits after that and A in the highest 8 bits.

NV_ENC_BUFFER_FORMAT_ABGR10 

10 bit Packed A2B10G10R10.

This is a word-ordered format where a pixel is represented by a 32-bit word with R in the lowest 10 bits, G in the next 10 bits, B in the 10 bits after that and A in the highest 2 bits.

Definition at line 311 of file nvEncodeAPI.h.

Encoding levels.

Enumerator
NV_ENC_LEVEL_AUTOSELECT 
NV_ENC_LEVEL_H264_1 
NV_ENC_LEVEL_H264_1b 
NV_ENC_LEVEL_H264_11 
NV_ENC_LEVEL_H264_12 
NV_ENC_LEVEL_H264_13 
NV_ENC_LEVEL_H264_2 
NV_ENC_LEVEL_H264_21 
NV_ENC_LEVEL_H264_22 
NV_ENC_LEVEL_H264_3 
NV_ENC_LEVEL_H264_31 
NV_ENC_LEVEL_H264_32 
NV_ENC_LEVEL_H264_4 
NV_ENC_LEVEL_H264_41 
NV_ENC_LEVEL_H264_42 
NV_ENC_LEVEL_H264_5 
NV_ENC_LEVEL_H264_51 
NV_ENC_LEVEL_H264_52 
NV_ENC_LEVEL_HEVC_1 
NV_ENC_LEVEL_HEVC_2 
NV_ENC_LEVEL_HEVC_21 
NV_ENC_LEVEL_HEVC_3 
NV_ENC_LEVEL_HEVC_31 
NV_ENC_LEVEL_HEVC_4 
NV_ENC_LEVEL_HEVC_41 
NV_ENC_LEVEL_HEVC_5 
NV_ENC_LEVEL_HEVC_51 
NV_ENC_LEVEL_HEVC_52 
NV_ENC_LEVEL_HEVC_6 
NV_ENC_LEVEL_HEVC_61 
NV_ENC_LEVEL_HEVC_62 
NV_ENC_TIER_HEVC_MAIN 
NV_ENC_TIER_HEVC_HIGH 

Definition at line 351 of file nvEncodeAPI.h.

Error Codes.

Enumerator
NV_ENC_SUCCESS 

This indicates that API call returned with no errors.

NV_ENC_ERR_NO_ENCODE_DEVICE 

This indicates that no encode capable devices were detected.

NV_ENC_ERR_UNSUPPORTED_DEVICE 

This indicates that devices pass by the client is not supported.

NV_ENC_ERR_INVALID_ENCODERDEVICE 

This indicates that the encoder device supplied by the client is not valid.

NV_ENC_ERR_INVALID_DEVICE 

This indicates that device passed to the API call is invalid.

NV_ENC_ERR_DEVICE_NOT_EXIST 

This indicates that device passed to the API call is no longer available and needs to be reinitialized.

The clients need to destroy the current encoder session by freeing the allocated input output buffers and destroying the device and create a new encoding session.

NV_ENC_ERR_INVALID_PTR 

This indicates that one or more of the pointers passed to the API call is invalid.

NV_ENC_ERR_INVALID_EVENT 

This indicates that completion event passed in NvEncEncodePicture() call is invalid.

NV_ENC_ERR_INVALID_PARAM 

This indicates that one or more of the parameter passed to the API call is invalid.

NV_ENC_ERR_INVALID_CALL 

This indicates that an API call was made in wrong sequence/order.

NV_ENC_ERR_OUT_OF_MEMORY 

This indicates that the API call failed because it was unable to allocate enough memory to perform the requested operation.

NV_ENC_ERR_ENCODER_NOT_INITIALIZED 

This indicates that the encoder has not been initialized with NvEncInitializeEncoder() or that initialization has failed.

The client cannot allocate input or output buffers or do any encoding related operation before successfully initializing the encoder.

NV_ENC_ERR_UNSUPPORTED_PARAM 

This indicates that an unsupported parameter was passed by the client.

NV_ENC_ERR_LOCK_BUSY 

This indicates that the NvEncLockBitstream() failed to lock the output buffer.

This happens when the client makes a non blocking lock call to access the output bitstream by passing NV_ENC_LOCK_BITSTREAM::doNotWait flag. This is not a fatal error and client should retry the same operation after few milliseconds.

NV_ENC_ERR_NOT_ENOUGH_BUFFER 

This indicates that the size of the user buffer passed by the client is insufficient for the requested operation.

NV_ENC_ERR_INVALID_VERSION 

This indicates that an invalid struct version was used by the client.

NV_ENC_ERR_MAP_FAILED 

This indicates that NvEncMapInputResource() API failed to map the client provided input resource.

NV_ENC_ERR_NEED_MORE_INPUT 

This indicates encode driver requires more input buffers to produce an output bitstream.

If this error is returned from NvEncEncodePicture() API, this is not a fatal error. If the client is encoding with B frames then, NvEncEncodePicture() API might be buffering the input frame for re-ordering.

A client operating in synchronous mode cannot call NvEncLockBitstream() API on the output bitstream buffer if NvEncEncodePicture() returned the NV_ENC_ERR_NEED_MORE_INPUT error code. The client must continue providing input frames until encode driver returns NV_ENC_SUCCESS. After receiving NV_ENC_SUCCESS status the client can call NvEncLockBitstream() API on the output buffers in the same order in which it has called NvEncEncodePicture().

NV_ENC_ERR_ENCODER_BUSY 

This indicates that the HW encoder is busy encoding and is unable to encode the input.

The client should call NvEncEncodePicture() again after few milliseconds.

NV_ENC_ERR_EVENT_NOT_REGISTERD 

This indicates that the completion event passed in NvEncEncodePicture() API has not been registered with encoder driver using NvEncRegisterAsyncEvent().

NV_ENC_ERR_GENERIC 

This indicates that an unknown internal error has occurred.

NV_ENC_ERR_INCOMPATIBLE_CLIENT_KEY 

This indicates that the client is attempting to use a feature that is not available for the license type for the current system.

NV_ENC_ERR_UNIMPLEMENTED 

This indicates that the client is attempting to use a feature that is not implemented for the current version.

NV_ENC_ERR_RESOURCE_REGISTER_FAILED 

This indicates that the NvEncRegisterResource API failed to register the resource.

NV_ENC_ERR_RESOURCE_NOT_REGISTERED 

This indicates that the client is attempting to unregister a resource that has not been successfully registered.

NV_ENC_ERR_RESOURCE_NOT_MAPPED 

This indicates that the client is attempting to unmap a resource that has not been successfully mapped.

Definition at line 395 of file nvEncodeAPI.h.

Encode Picture encode flags.

Enumerator
NV_ENC_PIC_FLAG_FORCEINTRA 

Encode the current picture as an Intra picture.

NV_ENC_PIC_FLAG_FORCEIDR 

Encode the current picture as an IDR picture.

This flag is only valid when Picture type decision is taken by the Encoder [_NV_ENC_INITIALIZE_PARAMS::enablePTD == 1].

NV_ENC_PIC_FLAG_OUTPUT_SPSPPS 

Write the sequence and picture header in encoded bitstream of the current picture.

NV_ENC_PIC_FLAG_EOS 

Indicates end of the input stream.

Definition at line 567 of file nvEncodeAPI.h.

Memory heap to allocate input and output buffers.

Enumerator
NV_ENC_MEMORY_HEAP_AUTOSELECT 

Memory heap to be decided by the encoder driver based on the usage.

NV_ENC_MEMORY_HEAP_VID 

Memory heap is in local video memory.

NV_ENC_MEMORY_HEAP_SYSMEM_CACHED 

Memory heap is in cached system memory.

NV_ENC_MEMORY_HEAP_SYSMEM_UNCACHED 

Memory heap is in uncached system memory.

Definition at line 580 of file nvEncodeAPI.h.

H.264 entropy coding modes.

Enumerator
NV_ENC_H264_ENTROPY_CODING_MODE_AUTOSELECT 

Entropy coding mode is auto selected by the encoder driver.

NV_ENC_H264_ENTROPY_CODING_MODE_CABAC 

Entropy coding mode is CABAC.

NV_ENC_H264_ENTROPY_CODING_MODE_CAVLC 

Entropy coding mode is CAVLC.

Definition at line 592 of file nvEncodeAPI.h.

H.264 specific Bdirect modes.

Enumerator
NV_ENC_H264_BDIRECT_MODE_AUTOSELECT 

BDirect mode is auto selected by the encoder driver.

NV_ENC_H264_BDIRECT_MODE_DISABLE 

Disable BDirect mode.

NV_ENC_H264_BDIRECT_MODE_TEMPORAL 

Temporal BDirect mode.

NV_ENC_H264_BDIRECT_MODE_SPATIAL 

Spatial BDirect mode.

Definition at line 602 of file nvEncodeAPI.h.

H.264 specific FMO usage.

Enumerator
NV_ENC_H264_FMO_AUTOSELECT 

FMO usage is auto selected by the encoder driver.

NV_ENC_H264_FMO_ENABLE 

Enable FMO.

NV_ENC_H264_FMO_DISABLE 

Disble FMO.

Definition at line 613 of file nvEncodeAPI.h.

H.264 specific Adaptive Transform modes.

Enumerator
NV_ENC_H264_ADAPTIVE_TRANSFORM_AUTOSELECT 

Adaptive Transform 8x8 mode is auto selected by the encoder driver.

NV_ENC_H264_ADAPTIVE_TRANSFORM_DISABLE 

Adaptive Transform 8x8 mode disabled.

NV_ENC_H264_ADAPTIVE_TRANSFORM_ENABLE 

Adaptive Transform 8x8 mode should be used.

Definition at line 623 of file nvEncodeAPI.h.

Stereo frame packing modes.

Enumerator
NV_ENC_STEREO_PACKING_MODE_NONE 

No Stereo packing required.

NV_ENC_STEREO_PACKING_MODE_CHECKERBOARD 

Checkerboard mode for packing stereo frames.

NV_ENC_STEREO_PACKING_MODE_COLINTERLEAVE 

Column Interleave mode for packing stereo frames.

NV_ENC_STEREO_PACKING_MODE_ROWINTERLEAVE 

Row Interleave mode for packing stereo frames.

NV_ENC_STEREO_PACKING_MODE_SIDEBYSIDE 

Side-by-side mode for packing stereo frames.

NV_ENC_STEREO_PACKING_MODE_TOPBOTTOM 

Top-Bottom mode for packing stereo frames.

NV_ENC_STEREO_PACKING_MODE_FRAMESEQ 

Frame Sequential mode for packing stereo frames.

Definition at line 633 of file nvEncodeAPI.h.

Input Resource type.

Enumerator
NV_ENC_INPUT_RESOURCE_TYPE_DIRECTX 

input resource type is a directx9 surface

NV_ENC_INPUT_RESOURCE_TYPE_CUDADEVICEPTR 

input resource type is a cuda device pointer surface

NV_ENC_INPUT_RESOURCE_TYPE_CUDAARRAY 

input resource type is a cuda array surface

NV_ENC_INPUT_RESOURCE_TYPE_OPENGL_TEX 

input resource type is an OpenGL texture

Definition at line 647 of file nvEncodeAPI.h.

Encoder Device type.

Enumerator
NV_ENC_DEVICE_TYPE_DIRECTX 

encode device type is a directx9 device

NV_ENC_DEVICE_TYPE_CUDA 

encode device type is a cuda device

NV_ENC_DEVICE_TYPE_OPENGL 

encode device type is an OpenGL device.

Use of this device type is supported only on Linux

Definition at line 658 of file nvEncodeAPI.h.

Encoder capabilities enumeration.

Enumerator
NV_ENC_CAPS_NUM_MAX_BFRAMES 

Maximum number of B-Frames supported.

NV_ENC_CAPS_SUPPORTED_RATECONTROL_MODES 

Rate control modes supported.


The API return value is a bitmask of the values in NV_ENC_PARAMS_RC_MODE.

NV_ENC_CAPS_SUPPORT_FIELD_ENCODING 

Indicates HW support for field mode encoding.


0 : Interlaced mode encoding is not supported.
1 : Interlaced field mode encoding is supported.
2 : Interlaced frame encoding and field mode encoding are both supported.

NV_ENC_CAPS_SUPPORT_MONOCHROME 

Indicates HW support for monochrome mode encoding.


0 : Monochrome mode not supported.
1 : Monochrome mode supported.

NV_ENC_CAPS_SUPPORT_FMO 

Indicates HW support for FMO.


0 : FMO not supported.
1 : FMO supported.

NV_ENC_CAPS_SUPPORT_QPELMV 

Indicates HW capability for Quarter pel motion estimation.


0 : QuarterPel Motion Estimation not supported.
1 : QuarterPel Motion Estimation supported.

NV_ENC_CAPS_SUPPORT_BDIRECT_MODE 

H.264 specific.

Indicates HW support for BDirect modes.
0 : BDirect mode encoding not supported.
1 : BDirect mode encoding supported.

NV_ENC_CAPS_SUPPORT_CABAC 

H264 specific.

Indicates HW support for CABAC entropy coding mode.
0 : CABAC entropy coding not supported.
1 : CABAC entropy coding supported.

NV_ENC_CAPS_SUPPORT_ADAPTIVE_TRANSFORM 

Indicates HW support for Adaptive Transform.


0 : Adaptive Transform not supported.
1 : Adaptive Transform supported.

NV_ENC_CAPS_SUPPORT_RESERVED 

Reserved enum field.

NV_ENC_CAPS_NUM_MAX_TEMPORAL_LAYERS 

Indicates HW support for encoding Temporal layers.


0 : Encoding Temporal layers not supported.
1 : Encoding Temporal layers supported.

NV_ENC_CAPS_SUPPORT_HIERARCHICAL_PFRAMES 

Indicates HW support for Hierarchical P frames.


0 : Hierarchical P frames not supported.
1 : Hierarchical P frames supported.

NV_ENC_CAPS_SUPPORT_HIERARCHICAL_BFRAMES 

Indicates HW support for Hierarchical B frames.


0 : Hierarchical B frames not supported.
1 : Hierarchical B frames supported.

NV_ENC_CAPS_LEVEL_MAX 

Maximum Encoding level supported (See NV_ENC_LEVEL for details).

NV_ENC_CAPS_LEVEL_MIN 

Minimum Encoding level supported (See NV_ENC_LEVEL for details).

NV_ENC_CAPS_SEPARATE_COLOUR_PLANE 

Indicates HW support for separate colour plane encoding.


0 : Separate colour plane encoding not supported.
1 : Separate colour plane encoding supported.

NV_ENC_CAPS_WIDTH_MAX 

Maximum output width supported.

NV_ENC_CAPS_HEIGHT_MAX 

Maximum output height supported.

NV_ENC_CAPS_SUPPORT_TEMPORAL_SVC 

Indicates Temporal Scalability Support.


0 : Temporal SVC encoding not supported.
1 : Temporal SVC encoding supported.

NV_ENC_CAPS_SUPPORT_DYN_RES_CHANGE 

Indicates Dynamic Encode Resolution Change Support.

Support added from NvEncodeAPI version 2.0.
0 : Dynamic Encode Resolution Change not supported.
1 : Dynamic Encode Resolution Change supported.

NV_ENC_CAPS_SUPPORT_DYN_BITRATE_CHANGE 

Indicates Dynamic Encode Bitrate Change Support.

Support added from NvEncodeAPI version 2.0.
0 : Dynamic Encode bitrate change not supported.
1 : Dynamic Encode bitrate change supported.

NV_ENC_CAPS_SUPPORT_DYN_FORCE_CONSTQP 

Indicates Forcing Constant QP On The Fly Support.

Support added from NvEncodeAPI version 2.0.
0 : Forcing constant QP on the fly not supported.
1 : Forcing constant QP on the fly supported.

NV_ENC_CAPS_SUPPORT_DYN_RCMODE_CHANGE 

Indicates Dynamic rate control mode Change Support.


0 : Dynamic rate control mode change not supported.
1 : Dynamic rate control mode change supported.

NV_ENC_CAPS_SUPPORT_SUBFRAME_READBACK 

Indicates Subframe readback support for slice-based encoding.


0 : Subframe readback not supported.
1 : Subframe readback supported.

NV_ENC_CAPS_SUPPORT_CONSTRAINED_ENCODING 

Indicates Constrained Encoding mode support.

Support added from NvEncodeAPI version 2.0.
0 : Constrained encoding mode not supported.
1 : Constarined encoding mode supported. If this mode is supported client can enable this during initialisation. Client can then force a picture to be coded as constrained picture where each slice in a constrained picture will have constrained_intra_pred_flag set to 1 and disable_deblocking_filter_idc will be set to 2 and prediction vectors for inter macroblocks in each slice will be restricted to the slice region.

NV_ENC_CAPS_SUPPORT_INTRA_REFRESH 

Indicates Intra Refresh Mode Support.

Support added from NvEncodeAPI version 2.0.
0 : Intra Refresh Mode not supported.
1 : Intra Refresh Mode supported.

NV_ENC_CAPS_SUPPORT_CUSTOM_VBV_BUF_SIZE 

Indicates Custom VBV Bufer Size support.

It can be used for capping frame size. Support added from NvEncodeAPI version 2.0.
0 : Custom VBV buffer size specification from client, not supported.
1 : Custom VBV buffer size specification from client, supported.

NV_ENC_CAPS_SUPPORT_DYNAMIC_SLICE_MODE 

Indicates Dynamic Slice Mode Support.

Support added from NvEncodeAPI version 2.0.
0 : Dynamic Slice Mode not supported.
1 : Dynamic Slice Mode supported.

NV_ENC_CAPS_SUPPORT_REF_PIC_INVALIDATION 

Indicates Reference Picture Invalidation Support.

Support added from NvEncodeAPI version 2.0.
0 : Reference Picture Invalidation not supported.
1 : Reference Picture Invalidation supported.

NV_ENC_CAPS_PREPROC_SUPPORT 

Indicates support for PreProcessing.

The API return value is a bitmask of the values defined in ::NV_ENC_PREPROC_FLAGS

NV_ENC_CAPS_ASYNC_ENCODE_SUPPORT 

Indicates support Async mode.


0 : Async Encode mode not supported.
1 : Async Encode mode supported.

NV_ENC_CAPS_MB_NUM_MAX 

Maximum MBs per frame supported.

NV_ENC_CAPS_MB_PER_SEC_MAX 

Maximum aggregate throughput in MBs per sec.

NV_ENC_CAPS_SUPPORT_YUV444_ENCODE 

Indicates HW support for YUV444 mode encoding.


0 : YUV444 mode encoding not supported.
1 : YUV444 mode encoding supported.

NV_ENC_CAPS_SUPPORT_LOSSLESS_ENCODE 

Indicates HW support for lossless encoding.


0 : lossless encoding not supported.
1 : lossless encoding supported.

NV_ENC_CAPS_SUPPORT_SAO 

Indicates HW support for Sample Adaptive Offset.


0 : SAO not supported.
1 : SAO encoding supported.

NV_ENC_CAPS_SUPPORT_MEONLY_MODE 

Indicates HW support for MEOnly Mode.


0 : MEOnly Mode not supported.
1 : MEOnly Mode supported for I and P frames.
2 : MEOnly Mode supported for I, P and B frames.

NV_ENC_CAPS_SUPPORT_LOOKAHEAD 

Indicates HW support for lookahead encoding (enableLookahead=1).


0 : Lookahead not supported.
1 : Lookahead supported.

NV_ENC_CAPS_SUPPORT_TEMPORAL_AQ 

Indicates HW support for temporal AQ encoding (enableTemporalAQ=1).


0 : Temporal AQ not supported.
1 : Temporal AQ supported.

NV_ENC_CAPS_SUPPORT_10BIT_ENCODE 

Indicates HW support for 10 bit encoding.


0 : 10 bit encoding not supported.
1 : 10 bit encoding supported.

NV_ENC_CAPS_NUM_MAX_LTR_FRAMES 

Maximum number of Long Term Reference frames supported.

NV_ENC_CAPS_SUPPORT_WEIGHTED_PREDICTION 

Indicates HW support for Weighted Predicition.


0 : Weighted Predicition not supported.
1 : Weighted Predicition supported.

NV_ENC_CAPS_EXPOSED_COUNT 

Reserved - Not to be used by clients.

Definition at line 669 of file nvEncodeAPI.h.

HEVC CU SIZE.

Enumerator
NV_ENC_HEVC_CUSIZE_AUTOSELECT 
NV_ENC_HEVC_CUSIZE_8x8 
NV_ENC_HEVC_CUSIZE_16x16 
NV_ENC_HEVC_CUSIZE_32x32 
NV_ENC_HEVC_CUSIZE_64x64 

Definition at line 967 of file nvEncodeAPI.h.