NVIDIA DRIVE OS Linux SDK API Reference

5.1.15.0 Release
For Test and Development only
nvmedia_common_encode.h File Reference

Detailed Description

NVIDIA Media Interface: Common Types for Video/Image Encode

Description: This file contains common types and definitions for image and video encode operations.

Definition in file nvmedia_common_encode.h.

Go to the source code of this file.

Data Structures

struct  NvMediaEncodeQP
 Holds quantization parameters(QP) value for frames. More...
 
struct  NvMediaEncodeRCParams
 Holds rate control configuration parameters. More...
 
struct  NvMediaNalData
 This is used to get header info (SPS/PPS/VPS) using GetAttribute call. More...
 
struct  NvMediaEncodeConfigH264VUIParams
 Holds H264 video usability information parameters. More...
 
struct  NvMediaEncodeExternalMeHintCountsPerBlocktype
 Holds an external motion vector hint with counts per block type. More...
 
struct  NvMediaEncodeExternalMEHint
 Holds an External Motion Vector hint. More...
 
struct  NvMediaEncodeConfigH264
 Holds an H264 encoder configuration. More...
 
struct  NvMediaEncodeH264SEIPayload
 H.264 specific User SEI message. More...
 
struct  NvMediaEncodeInitializeParamsH264
 Holds H264-specific encode initialization parameters. More...
 
struct  NvMediaEncodePicParamsH264
 H264 specific encoder picture params. More...
 
struct  NvMediaEncodeConfigH265VUIParams
 Holds the H.265 video usability information parameters. More...
 
struct  NvMediaEncodeConfigH265
 Holds the H265 encoder configuration parameters. More...
 
struct  NvMediaEncodeInitializeParamsH265
 Holds H265-specific encode initialization parameters. More...
 
struct  NvMediaEncodeH265SEIPayload
 Holds an H265-specific User SEI message. More...
 
struct  NvMediaEncodePicParamsH265
 Holds H265-specific encoder picture parameters. More...
 
struct  NvMediaEncodeConfigVP9
 Holds VP9 encoder configuration parameters. More...
 
struct  NvMediaEncodeInitializeParamsVP9
 Holds VP9-specific encode initialization parameters. More...
 
struct  NvMediaEncodePicParamsVP9
 Holds VP9-specific encoder picture parameters, which are sent on a per frame basis. More...
 
struct  NvMediaEncodeConfigVP8
 Holds VP8 encoder configuration parameters. More...
 
struct  NvMediaEncodeInitializeParamsVP8
 Holds VP8-specific encode initialization parameters. More...
 
struct  NvMediaEncodePicParamsVP8
 Holds VP8-specific encoder picture parameters, which are sent on a per frame basis. More...
 

Macros

#define NVMEDIA_COMMON_ENCODE_VERSION_MAJOR   1
 Major Version number. More...
 
#define NVMEDIA_COMMON_ENCODE_VERSION_MINOR   2
 Minor Version number. More...
 
#define NVMEDIA_VIDEO_ENCODER_TIMEOUT_INFINITE
 Infinite time-out for NvMediaVideoEncoderBitsAvailable. More...
 
#define NVMEDIA_ENCODE_INFINITE_GOPLENGTH
 Infinite GOP length so that keyframes are not inserted automatically. More...
 
#define MAX_NON_SLICE_DATA_SIZE
 Maximum encoded header info size. More...
 

Enumerations

enum  NvMediaEncodeParamsRCMode {
  NVMEDIA_ENCODE_PARAMS_RC_CBR = 0,
  NVMEDIA_ENCODE_PARAMS_RC_CONSTQP = 1,
  NVMEDIA_ENCODE_PARAMS_RC_VBR = 2,
  NVMEDIA_ENCODE_PARAMS_RC_VBR_MINQP = 3,
  NVMEDIA_ENCODE_PARAMS_RC_CBR_MINQP = 4
}
 Rate Control Modes. More...
 
enum  NvMediaBlockingType {
  NVMEDIA_ENCODE_BLOCKING_TYPE_NEVER,
  NVMEDIA_ENCODE_BLOCKING_TYPE_IF_PENDING
}
 Blocking type. More...
 
enum  NvMediaEncodePicType {
  NVMEDIA_ENCODE_PIC_TYPE_AUTOSELECT = 0,
  NVMEDIA_ENCODE_PIC_TYPE_P = 1,
  NVMEDIA_ENCODE_PIC_TYPE_B = 2,
  NVMEDIA_ENCODE_PIC_TYPE_I = 3,
  NVMEDIA_ENCODE_PIC_TYPE_IDR = 4,
  NVMEDIA_ENCODE_PIC_TYPE_P_INTRA_REFRESH = 5
}
 Input picture type. More...
 
enum  NvMediaEncodeProfile {
  NVMEDIA_ENCODE_PROFILE_AUTOSELECT = 0,
  NVMEDIA_ENCODE_PROFILE_BASELINE = 66,
  NVMEDIA_ENCODE_PROFILE_MAIN = 77,
  NVMEDIA_ENCODE_PROFILE_EXTENDED = 88,
  NVMEDIA_ENCODE_PROFILE_HIGH = 100,
  NVMEDIA_ENCODE_PROFILE_HIGH444 = 244
}
 Defines encoding profiles. More...
 
enum  NvMediaEncodeLevel {
  NVMEDIA_ENCODE_LEVEL_AUTOSELECT = 0,
  NVMEDIA_ENCODE_LEVEL_H264_1 = 10,
  NVMEDIA_ENCODE_LEVEL_H264_1b = 9,
  NVMEDIA_ENCODE_LEVEL_H264_11 = 11,
  NVMEDIA_ENCODE_LEVEL_H264_12 = 12,
  NVMEDIA_ENCODE_LEVEL_H264_13 = 13,
  NVMEDIA_ENCODE_LEVEL_H264_2 = 20,
  NVMEDIA_ENCODE_LEVEL_H264_21 = 21,
  NVMEDIA_ENCODE_LEVEL_H264_22 = 22,
  NVMEDIA_ENCODE_LEVEL_H264_3 = 30,
  NVMEDIA_ENCODE_LEVEL_H264_31 = 31,
  NVMEDIA_ENCODE_LEVEL_H264_32 = 32,
  NVMEDIA_ENCODE_LEVEL_H264_4 = 40,
  NVMEDIA_ENCODE_LEVEL_H264_41 = 41,
  NVMEDIA_ENCODE_LEVEL_H264_42 = 42
}
 Defines encoding levels. More...
 
enum  NvMediaEncodePicFlags {
  NVMEDIA_ENCODE_PIC_FLAG_OUTPUT_SPSPPS = (1 << 0),
  NVMEDIA_ENCODE_PIC_FLAG_RATECONTROL_CHANGE = (1 << 1),
  NVMEDIA_ENCODE_PIC_FLAG_CONSTRAINED_FRAME = (1 << 2)
}
 Defines encoding Picture encode flags. More...
 
enum  NvMediaEncodeQuality {
  NVMEDIA_ENCODE_QUALITY_L0 = 0,
  NVMEDIA_ENCODE_QUALITY_L1 = 1,
  NVMEDIA_ENCODE_QUALITY_L2 = 2
}
 Defines encode quality level pre-settings. More...
 
enum  NvMediaEncodeH264EntropyCodingMode {
  NVMEDIA_ENCODE_H264_ENTROPY_CODING_MODE_CAVLC = 0,
  NVMEDIA_ENCODE_H264_ENTROPY_CODING_MODE_CABAC = 1
}
 Defines H.264 entropy coding modes. More...
 
enum  NvMediaEncodeH264BDirectMode {
  NVMEDIA_ENCODE_H264_BDIRECT_MODE_SPATIAL = 0,
  NVMEDIA_ENCODE_H264_BDIRECT_MODE_DISABLE = 1,
  NVMEDIA_ENCODE_H264_BDIRECT_MODE_TEMPORAL = 2
}
 Defines H.264 specific Bdirect modes. More...
 
enum  NvMediaEncodeH264AdaptiveTransformMode {
  NVMEDIA_ENCODE_H264_ADAPTIVE_TRANSFORM_AUTOSELECT = 0,
  NVMEDIA_ENCODE_H264_ADAPTIVE_TRANSFORM_DISABLE = 1,
  NVMEDIA_ENCODE_H264_ADAPTIVE_TRANSFORM_ENABLE = 2
}
 Defines H.264 specific Adaptive Transform modes. More...
 
enum  NvMediaEncodeH264MotionPredictionExclusionFlags {
  NVMEDIA_ENCODE_DISABLE_INTRA_4x4_VERTICAL_PREDICTION = (1 << 0),
  NVMEDIA_ENCODE_DISABLE_INTRA_4x4_HORIZONTAL_PREDICTION = (1 << 1),
  NVMEDIA_ENCODE_DISABLE_INTRA_4x4_DC_PREDICTION = (1 << 2),
  NVMEDIA_ENCODE_DISABLE_INTRA_4x4_DIAGONAL_DOWN_LEFT_PREDICTION = (1 << 3),
  NVMEDIA_ENCODE_DISABLE_INTRA_4x4_DIAGONAL_DOWN_RIGHT_PREDICTION = (1 << 4),
  NVMEDIA_ENCODE_DISABLE_INTRA_4x4_VERTICAL_RIGHT_PREDICTION = (1 << 5),
  NVMEDIA_ENCODE_DISABLE_INTRA_4x4_HORIZONTAL_DOWN_PREDICTION = (1 << 6),
  NVMEDIA_ENCODE_DISABLE_INTRA_4x4_VERTICAL_LEFT_PREDICTION = (1 << 7),
  NVMEDIA_ENCODE_DISABLE_INTRA_4x4_HORIZONTAL_UP_PREDICTION = (1 << 8),
  NVMEDIA_ENCODE_DISABLE_INTRA_8x8_VERTICAL_PREDICTION = (1 << 9),
  NVMEDIA_ENCODE_DISABLE_INTRA_8x8_HORIZONTAL_PREDICTION = (1 << 10),
  NVMEDIA_ENCODE_DISABLE_INTRA_8x8_DC_PREDICTION = (1 << 11),
  NVMEDIA_ENCODE_DISABLE_INTRA_8x8_DIAGONAL_DOWN_LEFT_PREDICTION = (1 << 12),
  NVMEDIA_ENCODE_DISABLE_INTRA_8x8_DIAGONAL_DOWN_RIGHT_PREDICTION = (1 << 13),
  NVMEDIA_ENCODE_DISABLE_INTRA_8x8_VERTICAL_RIGHT_PREDICTION = (1 << 14),
  NVMEDIA_ENCODE_DISABLE_INTRA_8x8_HORIZONTAL_DOWN_PREDICTION = (1 << 15),
  NVMEDIA_ENCODE_DISABLE_INTRA_8x8_VERTICAL_LEFT_PREDICTION = (1 << 16),
  NVMEDIA_ENCODE_DISABLE_INTRA_8x8_HORIZONTAL_UP_PREDICTION = (1 << 17),
  NVMEDIA_ENCODE_DISABLE_INTRA_16x16_VERTICAL_PREDICTION = (1 << 18),
  NVMEDIA_ENCODE_DISABLE_INTRA_16x16_HORIZONTAL_PREDICTION = (1 << 19),
  NVMEDIA_ENCODE_DISABLE_INTRA_16x16_DC_PREDICTION = (1 << 20),
  NVMEDIA_ENCODE_DISABLE_INTRA_16x16_PLANE_PREDICTION = (1 << 21),
  NVMEDIA_ENCODE_DISABLE_INTRA_CHROMA_VERTICAL_PREDICTION = (1 << 22),
  NVMEDIA_ENCODE_DISABLE_INTRA_CHROMA_HORIZONTAL_PREDICTION = (1 << 23),
  NVMEDIA_ENCODE_DISABLE_INTRA_CHROMA_DC_PREDICTION = (1 << 24),
  NVMEDIA_ENCODE_DISABLE_INTRA_CHROMA_PLANE_PREDICTION = (1 << 25),
  NVMEDIA_ENCODE_DISABLE_INTER_L0_16x16_PREDICTION = (1 << 26),
  NVMEDIA_ENCODE_DISABLE_INTER_L0_16x8_PREDICTION = (1 << 27),
  NVMEDIA_ENCODE_DISABLE_INTER_L0_8x16_PREDICTION = (1 << 28),
  NVMEDIA_ENCODE_DISABLE_INTER_L0_8x8_PREDICTION = (1 << 29)
}
 Defines motion prediction exclusion flags for H.264. More...
 
enum  NvMediaEncodeH264MotionSearchControlFlags {
  NVMEDIA_ENCODE_ENABLE_IP_SEARCH_INTRA_4x4 = (1 << 0),
  NVMEDIA_ENCODE_ENABLE_IP_SEARCH_INTRA_8x8 = (1 << 1),
  NVMEDIA_ENCODE_ENABLE_IP_SEARCH_INTRA_16x16 = (1 << 2),
  NVMEDIA_ENCODE_ENABLE_SELF_TEMPORAL_REFINE = (1 << 3),
  NVMEDIA_ENCODE_ENABLE_SELF_SPATIAL_REFINE = (1 << 4),
  NVMEDIA_ENCODE_ENABLE_COLOC_REFINE = (1 << 5),
  NVMEDIA_ENCODE_ENABLE_EXTERNAL_REFINE = (1 << 6),
  NVMEDIA_ENCODE_ENABLE_CONST_MV_REFINE = (1 << 7),
  NVMEDIA_ENCODE_MOTION_SEARCH_CONTROL_FLAG_VALID = (1 << 31)
}
 Defines motion search mode control flags for H.264. More...
 
enum  NvMediaEncodeH264SPSPPSRepeatMode {
  NVMEDIA_ENCODE_SPSPPS_REPEAT_DISABLED = 0,
  NVMEDIA_ENCODE_SPSPPS_REPEAT_INTRA_FRAMES = 1,
  NVMEDIA_ENCODE_SPSPPS_REPEAT_IDR_FRAMES = 2
}
 Specifies the frequency of the writing of Sequence and Picture parameters for H.264. More...
 
enum  NvMediaEncAttrType {
  NvMediaEncAttr_GetSPS = 1,
  NvMediaEncAttr_GetPPS,
  NvMediaEncAttr_GetVPS
}
 Specifies the Video encoder get attribute type. More...
 
enum  NvMediaEncodeH264POCType {
  NVMEDIA_ENCODE_H264_POC_TYPE_AUTOSELECT = 0,
  NVMEDIA_ENCODE_H264_POC_TYPE_0 = 1,
  NVMEDIA_ENCODE_H264_POC_TYPE_2 = 2
}
 Define H.264 pic_order_cnt_type. More...
 
enum  NvMediaEncodeH264Features {
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_OUTPUT_AUD = (1 << 0),
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_INTRA_REFRESH = (1 << 1),
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_DYNAMIC_SLICE_MODE = (1 << 2),
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_CONSTRANED_ENCODING = (1 << 3),
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_LOSSLESS_COMPRESSION = (1 << 4),
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_SLICE_LEVEL_OUTPUT = (1 << 5),
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_RTP_MODE_OUTPUT = (1 << 6),
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_EXT_PIC_RC_HINT = (1 << 7),
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_DYNAMIC_RPS = (1 << 8),
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_MV_BUFFER_DUMP = (1 << 9),
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_PROFILING = (1 << 10),
  NVMEDIA_ENCODE_CONFIG_H264_INIT_QP = (1 << 11),
  NVMEDIA_ENCODE_CONFIG_H264_QP_MAX = (1 << 12),
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_FOUR_BYTE_START_CODE = (1 << 13),
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_ULTRA_FAST_ENCODE = (1 << 14)
}
 Defines H264 encoder configuration features. More...
 
enum  NvMediaEncodeH265Features {
  NVMEDIA_ENCODE_CONFIG_H265_ENABLE_OUTPUT_AUD = (1 << 0),
  NVMEDIA_ENCODE_CONFIG_H265_ENABLE_INTRA_REFRESH = (1 << 1),
  NVMEDIA_ENCODE_CONFIG_H265_ENABLE_DYNAMIC_SLICE_MODE = (1 << 2),
  NVMEDIA_ENCODE_CONFIG_H265_ENABLE_CONSTRANED_ENCODING = (1 << 3),
  NVMEDIA_ENCODE_CONFIG_H265_ENABLE_LOSSLESS_COMPRESSION = (1 << 4),
  NVMEDIA_ENCODE_CONFIG_H265_ENABLE_SLICE_LEVEL_OUTPUT = (1 << 5),
  NVMEDIA_ENCODE_CONFIG_H265_ENABLE_RTP_MODE_OUTPUT = (1 << 6),
  NVMEDIA_ENCODE_CONFIG_H265_ENABLE_EXT_PIC_RC_HINT = (1 << 7),
  NVMEDIA_ENCODE_CONFIG_H265_ENABLE_DYNAMIC_RPS = (1 << 8),
  NVMEDIA_ENCODE_CONFIG_H265_ENABLE_MV_BUFFER_DUMP = (1 << 9),
  NVMEDIA_ENCODE_CONFIG_H265_ENABLE_PROFILING = (1 << 10),
  NVMEDIA_ENCODE_CONFIG_H265_ENABLE_ULTRA_FAST_ENCODE = (1 << 11),
  NVMEDIA_ENCODE_CONFIG_H265_INIT_QP = (1 << 12),
  NVMEDIA_ENCODE_CONFIG_H265_QP_MAX = (1 << 13),
  NVMEDIA_ENCODE_CONFIG_H265_ENABLE_FOUR_BYTE_START_CODE = (1 << 14)
}
 Defines H265 encoder configuration features. More...
 
enum  NvMediaEncodeVP9Features {
  NVMEDIA_ENCODE_CONFIG_VP9_ENABLE_LOOP_FILTER_PARAMS = (1 << 0),
  NVMEDIA_ENCODE_CONFIG_VP9_ENABLE_QUANTIZATION_PARAMS = (1 << 1),
  NVMEDIA_ENCODE_CONFIG_VP9_ENABLE_TRANSFORM_MODE = (1 << 2),
  NVMEDIA_ENCODE_CONFIG_VP9_ENABLE_HIGH_PRECISION_MV = (1 << 3),
  NVMEDIA_ENCODE_CONFIG_VP9_DISABLE_ERROR_RESILIENT = (1 << 4),
  NVMEDIA_ENCODE_CONFIG_VP9_ENABLE_PROFILING = (1 << 5),
  NVMEDIA_ENCODE_CONFIG_VP9_INIT_QP = (1 << 6),
  NVMEDIA_ENCODE_CONFIG_VP9_QP_MAX = (1 << 7)
}
 Defines VP9 encoder configuration features. More...
 
enum  NvMediaEncodeVP8Features {
  NVMEDIA_ENCODE_CONFIG_VP8_ENABLE_LOOP_FILTER_PARAMS = (1 << 0),
  NVMEDIA_ENCODE_CONFIG_VP8_ENABLE_QUANTIZATION_PARAMS = (1 << 1),
  NVMEDIA_ENCODE_CONFIG_VP8_ENABLE_SEGMENTATION = (1 << 2),
  NVMEDIA_ENCODE_CONFIG_VP8_ENABLE_PROFILING = (1 << 3),
  NVMEDIA_ENCODE_CONFIG_VP8_INIT_QP = (1 << 4),
  NVMEDIA_ENCODE_CONFIG_VP8_QP_MAX = (1 << 5)
}
 Defines VP8 encoder configuration features. More...