NVIDIA GPUs - beginning with the Kepler generation - contain a hardware-based encoder (referred to as NVENC) which provides fully-accelerated hardware-based video encoding.
More...
|
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...
|
|
|
NVENCSTATUS NVENCAPI | NvEncOpenEncodeSession (void *device, uint32_t deviceType, void **encoder) |
| Opens an encoding session. More...
|
|
NVENCSTATUS NVENCAPI | NvEncGetEncodeGUIDCount (void *encoder, uint32_t *encodeGUIDCount) |
| Retrieves the number of supported encode GUIDs. More...
|
|
NVENCSTATUS NVENCAPI | NvEncGetEncodeGUIDs (void *encoder, GUID *GUIDs, uint32_t guidArraySize, uint32_t *GUIDCount) |
| Retrieves an array of supported encoder codec GUIDs. More...
|
|
NVENCSTATUS NVENCAPI | NvEncGetEncodeProfileGUIDCount (void *encoder, GUID encodeGUID, uint32_t *encodeProfileGUIDCount) |
| Retrieves the number of supported profile GUIDs. More...
|
|
NVENCSTATUS NVENCAPI | NvEncGetEncodeProfileGUIDs (void *encoder, GUID encodeGUID, GUID *profileGUIDs, uint32_t guidArraySize, uint32_t *GUIDCount) |
| Retrieves an array of supported encode profile GUIDs. More...
|
|
NVENCSTATUS NVENCAPI | NvEncGetInputFormatCount (void *encoder, GUID encodeGUID, uint32_t *inputFmtCount) |
| Retrieve the number of supported Input formats. More...
|
|
NVENCSTATUS NVENCAPI | NvEncGetInputFormats (void *encoder, GUID encodeGUID, NV_ENC_BUFFER_FORMAT *inputFmts, uint32_t inputFmtArraySize, uint32_t *inputFmtCount) |
| Retrieves an array of supported Input formats. More...
|
|
NVENCSTATUS NVENCAPI | NvEncGetEncodeCaps (void *encoder, GUID encodeGUID, NV_ENC_CAPS_PARAM *capsParam, int *capsVal) |
| Retrieves the capability value for a specified encoder attribute. More...
|
|
NVENCSTATUS NVENCAPI | NvEncGetEncodePresetCount (void *encoder, GUID encodeGUID, uint32_t *encodePresetGUIDCount) |
| Retrieves the number of supported preset GUIDs. More...
|
|
NVENCSTATUS NVENCAPI | NvEncGetEncodePresetGUIDs (void *encoder, GUID encodeGUID, GUID *presetGUIDs, uint32_t guidArraySize, uint32_t *encodePresetGUIDCount) |
| Receives an array of supported encoder preset GUIDs. More...
|
|
NVENCSTATUS NVENCAPI | NvEncGetEncodePresetConfig (void *encoder, GUID encodeGUID, GUID presetGUID, NV_ENC_PRESET_CONFIG *presetConfig) |
| Returns a preset config structure supported for given preset GUID. More...
|
|
NVENCSTATUS NVENCAPI | NvEncInitializeEncoder (void *encoder, NV_ENC_INITIALIZE_PARAMS *createEncodeParams) |
| Initialize the encoder. More...
|
|
NVENCSTATUS NVENCAPI | NvEncCreateInputBuffer (void *encoder, NV_ENC_CREATE_INPUT_BUFFER *createInputBufferParams) |
| Allocates Input buffer. More...
|
|
NVENCSTATUS NVENCAPI | NvEncDestroyInputBuffer (void *encoder, NV_ENC_INPUT_PTR inputBuffer) |
| Release an input buffers. More...
|
|
NVENCSTATUS NVENCAPI | NvEncCreateBitstreamBuffer (void *encoder, NV_ENC_CREATE_BITSTREAM_BUFFER *createBitstreamBufferParams) |
| Allocates an output bitstream buffer. More...
|
|
NVENCSTATUS NVENCAPI | NvEncDestroyBitstreamBuffer (void *encoder, NV_ENC_OUTPUT_PTR bitstreamBuffer) |
| Release a bitstream buffer. More...
|
|
NVENCSTATUS NVENCAPI | NvEncEncodePicture (void *encoder, NV_ENC_PIC_PARAMS *encodePicParams) |
| Submit an input picture for encoding. More...
|
|
NVENCSTATUS NVENCAPI | NvEncLockBitstream (void *encoder, NV_ENC_LOCK_BITSTREAM *lockBitstreamBufferParams) |
| Lock output bitstream buffer. More...
|
|
NVENCSTATUS NVENCAPI | NvEncUnlockBitstream (void *encoder, NV_ENC_OUTPUT_PTR bitstreamBuffer) |
| Unlock the output bitstream buffer. More...
|
|
NVENCSTATUS NVENCAPI | NvEncLockInputBuffer (void *encoder, NV_ENC_LOCK_INPUT_BUFFER *lockInputBufferParams) |
| Locks an input buffer. More...
|
|
NVENCSTATUS NVENCAPI | NvEncUnlockInputBuffer (void *encoder, NV_ENC_INPUT_PTR inputBuffer) |
| Unlocks the input buffer. More...
|
|
NVENCSTATUS NVENCAPI | NvEncGetEncodeStats (void *encoder, NV_ENC_STAT *encodeStats) |
| Get encoding statistics. More...
|
|
NVENCSTATUS NVENCAPI | NvEncGetSequenceParams (void *encoder, NV_ENC_SEQUENCE_PARAM_PAYLOAD *sequenceParamPayload) |
| Get encoded sequence and picture header. More...
|
|
NVENCSTATUS NVENCAPI | NvEncRegisterAsyncEvent (void *encoder, NV_ENC_EVENT_PARAMS *eventParams) |
| Register event for notification to encoding completion. More...
|
|
NVENCSTATUS NVENCAPI | NvEncUnregisterAsyncEvent (void *encoder, NV_ENC_EVENT_PARAMS *eventParams) |
| Unregister completion event. More...
|
|
NVENCSTATUS NVENCAPI | NvEncMapInputResource (void *encoder, NV_ENC_MAP_INPUT_RESOURCE *mapInputResParams) |
| Map an externally created input resource pointer for encoding. More...
|
|
NVENCSTATUS NVENCAPI | NvEncUnmapInputResource (void *encoder, NV_ENC_INPUT_PTR mappedInputBuffer) |
| UnMaps a NV_ENC_INPUT_PTR which was mapped for encoding. More...
|
|
NVENCSTATUS NVENCAPI | NvEncDestroyEncoder (void *encoder) |
| Destroy Encoding Session. More...
|
|
NVENCSTATUS NVENCAPI | NvEncInvalidateRefFrames (void *encoder, uint64_t invalidRefFrameTimeStamp) |
| Invalidate reference frames. More...
|
|
NVENCSTATUS NVENCAPI | NvEncOpenEncodeSessionEx (NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS *openSessionExParams, void **encoder) |
| Opens an encoding session. More...
|
|
NVENCSTATUS NVENCAPI | NvEncRegisterResource (void *encoder, NV_ENC_REGISTER_RESOURCE *registerResParams) |
| Registers a resource with the Nvidia Video Encoder Interface. More...
|
|
NVENCSTATUS NVENCAPI | NvEncUnregisterResource (void *encoder, NV_ENC_REGISTERED_PTR registeredResource) |
| Unregisters a resource previously registered with the Nvidia Video Encoder Interface. More...
|
|
NVENCSTATUS NVENCAPI | NvEncReconfigureEncoder (void *encoder, NV_ENC_RECONFIGURE_PARAMS *reInitEncodeParams) |
| Reconfigure an existing encoding session. More...
|
|
NVENCSTATUS NVENCAPI | NvEncCreateMVBuffer (void *encoder, NV_ENC_CREATE_MV_BUFFER *createMVBufferParams) |
| Allocates output MV buffer for ME only mode. More...
|
|
NVENCSTATUS NVENCAPI | NvEncDestroyMVBuffer (void *encoder, NV_ENC_OUTPUT_PTR mvBuffer) |
| Release an output MV buffer for ME only mode. More...
|
|
NVENCSTATUS NVENCAPI | NvEncRunMotionEstimationOnly (void *encoder, NV_ENC_MEONLY_PARAMS *meOnlyParams) |
| Submit an input picture and reference frame for motion estimation in ME only mode. More...
|
|
NVENCSTATUS NVENCAPI | NvEncodeAPIGetMaxSupportedVersion (uint32_t *version) |
| Get the largest NvEncodeAPI version supported by the driver. More...
|
|
NVENCSTATUS NVENCAPI | NvEncodeAPICreateInstance (NV_ENCODE_API_FUNCTION_LIST *functionList) |
| Entry Point to the NvEncodeAPI interface. More...
|
|
NVIDIA GPUs - beginning with the Kepler generation - contain a hardware-based encoder (referred to as NVENC) which provides fully-accelerated hardware-based video encoding.
NvEncodeAPI provides the interface for NVIDIA video encoder (NVENC).
- Date
- 2011-2017 This file contains the interface constants, structure definitions and function prototypes.
Definition in file nvEncodeAPI.h.