NVIDIA DRIVE OS Linux SDK API Reference

5.2.3 Release
For Test and Development only

Detailed Description

The H.264 Encoder API provides basic encode picture types.

Data Structures

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...
 

Macros

#define MAX_NON_SLICE_DATA_SIZE
 Maximum encoded header info size. More...
 

Enumerations

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,
  NVMEDIA_ENCODE_LEVEL_H264_5 = 50,
  NVMEDIA_ENCODE_LEVEL_H264_51 = 51,
  NVMEDIA_ENCODE_LEVEL_H264_52 = 52,
  NVMEDIA_ENCODE_LEVEL_H264_END = 255
}
 Defines encoding levels for H264 encoder. More...
 
enum  NvMediaEncodeLevelH265 {
  NVMEDIA_ENCODE_LEVEL_H265_AUTOSELECT = 0,
  NVMEDIA_ENCODE_LEVEL_H265_1 = 30,
  NVMEDIA_ENCODE_LEVEL_H265_2 = 60,
  NVMEDIA_ENCODE_LEVEL_H265_21 = 63,
  NVMEDIA_ENCODE_LEVEL_H265_3 = 90,
  NVMEDIA_ENCODE_LEVEL_H265_31 = 93,
  NVMEDIA_ENCODE_LEVEL_H265_4 = 120,
  NVMEDIA_ENCODE_LEVEL_H265_41 = 123,
  NVMEDIA_ENCODE_LEVEL_H265_5 = 150,
  NVMEDIA_ENCODE_LEVEL_H265_51 = 153,
  NVMEDIA_ENCODE_LEVEL_H265_52 = 156,
  NVMEDIA_ENCODE_LEVEL_H265_6 = 180,
  NVMEDIA_ENCODE_LEVEL_H265_61 = 183,
  NVMEDIA_ENCODE_LEVEL_H265_62 = 186,
  NVMEDIA_ENCODE_LEVEL_H265_END = 255
}
 Defines encoding levels for H265 encoder. 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),
  NVMEDIA_ENCODE_CONFIG_H264_ENABLE_MV_BUFFER_DUMP_V2 = (1 << 15)
}
 Defines H264 encoder configuration features. More...
 

Macro Definition Documentation

◆ MAX_NON_SLICE_DATA_SIZE

#define MAX_NON_SLICE_DATA_SIZE

Maximum encoded header info size.

Definition at line 550 of file nvmedia_common_encode.h.

Enumeration Type Documentation

◆ NvMediaEncAttrType

Specifies the Video encoder get attribute type.

This can be extended to get other encoding parameter information.

Enumerator
NvMediaEncAttr_GetSPS 

This attribute is used to get SPS data for current encoding session.

NvMediaEncAttr_GetPPS 

This attribute is used to get PPS data for current encoding session.

NvMediaEncAttr_GetVPS 

This attribute is used to get VPS data for current h265 encoding session.

Definition at line 524 of file nvmedia_common_encode.h.

◆ NvMediaEncodeH264AdaptiveTransformMode

Defines H.264 specific Adaptive Transform modes.

Enumerator
NVMEDIA_ENCODE_H264_ADAPTIVE_TRANSFORM_AUTOSELECT 

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

NVMEDIA_ENCODE_H264_ADAPTIVE_TRANSFORM_DISABLE 

Specifies that Adaptive Transform 8x8 mode is disabled.

NVMEDIA_ENCODE_H264_ADAPTIVE_TRANSFORM_ENABLE 

Specifies that Adaptive Transform 8x8 mode must be used.

Definition at line 398 of file nvmedia_common_encode.h.

◆ NvMediaEncodeH264BDirectMode

Defines H.264 specific Bdirect modes.

Enumerator
NVMEDIA_ENCODE_H264_BDIRECT_MODE_SPATIAL 

Spatial BDirect mode.

This value is not supported in the QNX Safety build.

NVMEDIA_ENCODE_H264_BDIRECT_MODE_DISABLE 

Disable BDirect mode.

NVMEDIA_ENCODE_H264_BDIRECT_MODE_TEMPORAL 

Temporal BDirect mode.

This value is not supported in the QNX Safety build.

Definition at line 383 of file nvmedia_common_encode.h.

◆ NvMediaEncodeH264EntropyCodingMode

Defines H.264 entropy coding modes.

Enumerator
NVMEDIA_ENCODE_H264_ENTROPY_CODING_MODE_CAVLC 

Entropy coding mode is CAVLC.

NVMEDIA_ENCODE_H264_ENTROPY_CODING_MODE_CABAC 

Entropy coding mode is CABAC.

Definition at line 372 of file nvmedia_common_encode.h.

◆ NvMediaEncodeH264Features

Defines H264 encoder configuration features.

Enumerator
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_OUTPUT_AUD 

Enable to write access unit delimiter syntax in bitstream.

NVMEDIA_ENCODE_CONFIG_H264_ENABLE_INTRA_REFRESH 

Enable gradual decoder refresh or intra refresh.

If the GOP structure uses B frames this will be ignored

NVMEDIA_ENCODE_CONFIG_H264_ENABLE_DYNAMIC_SLICE_MODE 

Enable dynamic slice mode.

Client must specify max slice size using the NvMediaEncodeConfigH264::maxSliceSizeInBytes field. This setting is not supported in the QNX Safety build.

NVMEDIA_ENCODE_CONFIG_H264_ENABLE_CONSTRANED_ENCODING 

Enable constrainedFrame encoding where each slice in the constrained picture is independent of other slices.

NVMEDIA_ENCODE_CONFIG_H264_ENABLE_LOSSLESS_COMPRESSION 

Enable lossless compression.

Note
This feature is not supported.
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_SLICE_LEVEL_OUTPUT 

Enable slice level output encoding.

This enables delivery encoded data slice by slice to client to reduce encode latency. This setting is not supported in the QNX Safety build.

NVMEDIA_ENCODE_CONFIG_H264_ENABLE_RTP_MODE_OUTPUT 

Enable RTP mode output.

NAL unit start code will be replaced with NAL size for the NAL units.

NVMEDIA_ENCODE_CONFIG_H264_ENABLE_EXT_PIC_RC_HINT 

Enable support for external picture RC hint.

Note
This feature is not supported.
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_DYNAMIC_RPS 

Enable support for dynamic reference picture set RPS/DPB control support.

After receiving an input buffer and result of previous frame encoding, based on real time information, Some client software determines properties for the new input buffer (long term/short term/non-referenced, frame number/poc/LT index). This setting is not supported in the QNX Safety build.

NVMEDIA_ENCODE_CONFIG_H264_ENABLE_MV_BUFFER_DUMP 

Enable support for motion vector buffer dump.

This will enable motion vector dump. Motion vector buffer will be appended at the end of encoded bitstream data. This setting is not supported in the QNX Safety build.

NVMEDIA_ENCODE_CONFIG_H264_ENABLE_PROFILING 

Enable encoder profiling.

Profiling information would be added as part of output extradata. This setting is not supported in the QNX Safety build.

NVMEDIA_ENCODE_CONFIG_H264_INIT_QP 

Enable support to use client provided Initial QP for all frame types.

NVMEDIA_ENCODE_CONFIG_H264_QP_MAX 

Enable support to use client provided QP max for all frame types.

NVMEDIA_ENCODE_CONFIG_H264_ENABLE_FOUR_BYTE_START_CODE 

Enable support to use 4 byte start code in all the slices in a picture.

NVMEDIA_ENCODE_CONFIG_H264_ENABLE_ULTRA_FAST_ENCODE 

Enable ultra fast encoding.

It overrides some of the quality settings to achieve ultra fast encoding. This is equivalent to setting NVMEDIA_ENCODE_QUALITY_L0 as the NvMediaEncodeQuality.

NVMEDIA_ENCODE_CONFIG_H264_ENABLE_MV_BUFFER_DUMP_V2 

Enable support for motion vector buffer dump in a simplified (V2) format.

Motion vector buffer will be appended to the end of encoded bitstream data retrieved using NvMediaIEPGetBitsEx. Refer NvMediaEncodeOutputExtradata for more information regarding the format of the dumped MV output. Either NVMEDIA_ENCODE_CONFIG_H264_ENABLE_MV_BUFFER_DUMP_V2 or NVMEDIA_ENCODE_CONFIG_H264_ENABLE_MV_BUFFER_DUMP should be enabled at a given time. If both are enabled, V2 format will be used.

It should be ensured that size of NvMediaBitstreamBuffer passed to NvMediaIEPGetBitsEx has sufficient space to store the MV buffer dump. The numBytesAvailable returned by NvMediaIEPBitsAvailable or numBytes returned by NvMediaIEPGetBitsEx does not take MV buffer dump size into account - represents only the size of the encoded bits that are available. While allocating bitstream buffers, the additional amount of space required in bitstream to accommodate MV buffer data needs to be added. This can be calculated as follows:

mvBufferSize = sizeof(NvMediaEncodeMVBufferHeader) +
ALIGN_256(numMacroBlocks * sizeof(NvMediaEncodeMVData))
where,
NumMacroBlocks =
(ALIGN_16(InputWidth)/16) * (ALIGN_16(InputHeight)/16)
bitstreamSize = ALIGN_8(bitsAvailable) + mvBufferSize

ALIGN_N refers to an operation which returns a multiple of N, greater than or equal to a number, closest to the number.

Note
This setting is not supported in the QNX Safety build.

Definition at line 650 of file nvmedia_common_encode.h.

◆ NvMediaEncodeH264MotionPredictionExclusionFlags

Defines motion prediction exclusion flags for H.264.

Deprecated:
This feature will be deprecated in a future release.
Enumerator
NVMEDIA_ENCODE_DISABLE_INTRA_4x4_VERTICAL_PREDICTION 

Disable Intra 4x4 vertical prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_4x4_HORIZONTAL_PREDICTION 

Disable Intra 4x4 horizontal prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_4x4_DC_PREDICTION 

Disable Intra 4x4 DC prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_4x4_DIAGONAL_DOWN_LEFT_PREDICTION 

Disable Intra 4x4 diagonal down left prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_4x4_DIAGONAL_DOWN_RIGHT_PREDICTION 

Disable Intra 4x4 diagonal down right prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_4x4_VERTICAL_RIGHT_PREDICTION 

Disable Intra 4x4 vertical right prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_4x4_HORIZONTAL_DOWN_PREDICTION 

Disable Intra 4x4 horizontal down prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_4x4_VERTICAL_LEFT_PREDICTION 

Disable Intra 4x4 vertical left prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_4x4_HORIZONTAL_UP_PREDICTION 

Disable Intra 4x4 horizontal up prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_8x8_VERTICAL_PREDICTION 

Disable Intra 8x8 vertical prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_8x8_HORIZONTAL_PREDICTION 

Disable Intra 8x8 horizontal prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_8x8_DC_PREDICTION 

Disable Intra 8x8 DC prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_8x8_DIAGONAL_DOWN_LEFT_PREDICTION 

Disable Intra 8x8 diagonal down left prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_8x8_DIAGONAL_DOWN_RIGHT_PREDICTION 

Disable Intra 8x8 diagonal down right prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_8x8_VERTICAL_RIGHT_PREDICTION 

Disable Intra 8x8 vertical right prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_8x8_HORIZONTAL_DOWN_PREDICTION 

Disable Intra 8x8 horizontal down prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_8x8_VERTICAL_LEFT_PREDICTION 

Disable Intra 8x8 vertical left prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_8x8_HORIZONTAL_UP_PREDICTION 

Disable Intra 8x8 horizontal up prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_16x16_VERTICAL_PREDICTION 

Disable Intra 16x16 vertical prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_16x16_HORIZONTAL_PREDICTION 

Disable Intra 16x16 horizontal prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_16x16_DC_PREDICTION 

Disable Intra 16x16 DC prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_16x16_PLANE_PREDICTION 

Disable Intra 16x16 plane prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_CHROMA_VERTICAL_PREDICTION 

Disable Intra chroma vertical prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_CHROMA_HORIZONTAL_PREDICTION 

Disable Intra chroma horizontal prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_CHROMA_DC_PREDICTION 

Disable Intra chroma DC prediction.

NVMEDIA_ENCODE_DISABLE_INTRA_CHROMA_PLANE_PREDICTION 

Disable Intra chroma plane prediction.

NVMEDIA_ENCODE_DISABLE_INTER_L0_16x16_PREDICTION 

Disable Inter L0 partition 16x16 prediction.

NVMEDIA_ENCODE_DISABLE_INTER_L0_16x8_PREDICTION 

Disable Inter L0 partition 16x8 prediction.

NVMEDIA_ENCODE_DISABLE_INTER_L0_8x16_PREDICTION 

Disable Inter L0 partition 8x16 prediction.

NVMEDIA_ENCODE_DISABLE_INTER_L0_8x8_PREDICTION 

Disable Inter L0 partition 8x8 prediction.

Definition at line 412 of file nvmedia_common_encode.h.

◆ NvMediaEncodeH264MotionSearchControlFlags

Defines motion search mode control flags for H.264.

Deprecated:
This feature will be deprecated in a future release.
Enumerator
NVMEDIA_ENCODE_ENABLE_IP_SEARCH_INTRA_4x4 

IP Search mode bit Intra 4x4.

NVMEDIA_ENCODE_ENABLE_IP_SEARCH_INTRA_8x8 

IP Search mode bit Intra 8x8.

NVMEDIA_ENCODE_ENABLE_IP_SEARCH_INTRA_16x16 

IP Search mode bit Intra 16x16.

NVMEDIA_ENCODE_ENABLE_SELF_TEMPORAL_REFINE 

Enable self_temporal_refine.

NVMEDIA_ENCODE_ENABLE_SELF_SPATIAL_REFINE 

Enable self_spatial_refine.

NVMEDIA_ENCODE_ENABLE_COLOC_REFINE 

Enable coloc_refine.

NVMEDIA_ENCODE_ENABLE_EXTERNAL_REFINE 

Enable external_refine.

NVMEDIA_ENCODE_ENABLE_CONST_MV_REFINE 

Enable const_mv_refine.

NVMEDIA_ENCODE_MOTION_SEARCH_CONTROL_FLAG_VALID 

Enable the flag set.

Definition at line 484 of file nvmedia_common_encode.h.

◆ NvMediaEncodeH264POCType

Define H.264 pic_order_cnt_type.

Enumerator
NVMEDIA_ENCODE_H264_POC_TYPE_AUTOSELECT 

Automatic level selection.

NVMEDIA_ENCODE_H264_POC_TYPE_0 

Pic_order_cnt_type 0.

NVMEDIA_ENCODE_H264_POC_TYPE_2 

Pic_order_cnt_type 2.

Definition at line 537 of file nvmedia_common_encode.h.

◆ NvMediaEncodeH264SPSPPSRepeatMode

Specifies the frequency of the writing of Sequence and Picture parameters for H.264.

Enumerator
NVMEDIA_ENCODE_SPSPPS_REPEAT_DISABLED 

Repeating of SPS/PPS is disabled.

NVMEDIA_ENCODE_SPSPPS_REPEAT_INTRA_FRAMES 

SPS/PPS is repeated for every intra frame.

NVMEDIA_ENCODE_SPSPPS_REPEAT_IDR_FRAMES 

SPS/PPS is repeated for every IDR frame.

Definition at line 510 of file nvmedia_common_encode.h.

◆ NvMediaEncodeLevel

Defines encoding levels for H264 encoder.

Enumerator
NVMEDIA_ENCODE_LEVEL_AUTOSELECT 

Automatic level selection.

NVMEDIA_ENCODE_LEVEL_H264_1 

H.264 Level 1.

NVMEDIA_ENCODE_LEVEL_H264_1b 

H.264 Level 1b.

NVMEDIA_ENCODE_LEVEL_H264_11 

H.264 Level 1.1.

NVMEDIA_ENCODE_LEVEL_H264_12 

H.264 Level 1.2.

NVMEDIA_ENCODE_LEVEL_H264_13 

H.264 Level 1.3.

NVMEDIA_ENCODE_LEVEL_H264_2 

H.264 Level 2.

NVMEDIA_ENCODE_LEVEL_H264_21 

H.264 Level 2.1.

NVMEDIA_ENCODE_LEVEL_H264_22 

H.264 Level 2.2.

NVMEDIA_ENCODE_LEVEL_H264_3 

H.264 Level 3.

NVMEDIA_ENCODE_LEVEL_H264_31 

H.264 Level 3.1.

NVMEDIA_ENCODE_LEVEL_H264_32 

H.264 Level 3.2.

NVMEDIA_ENCODE_LEVEL_H264_4 

H.264 Level 4.

NVMEDIA_ENCODE_LEVEL_H264_41 

H.264 Level 4.1.

NVMEDIA_ENCODE_LEVEL_H264_42 

H.264 Level 4.2.

NVMEDIA_ENCODE_LEVEL_H264_5 

H.264 Level 5.0.

NVMEDIA_ENCODE_LEVEL_H264_51 

H.264 Level 5.1.

NVMEDIA_ENCODE_LEVEL_H264_52 

H.264 Level 5.2.

NVMEDIA_ENCODE_LEVEL_H264_END 
Note
This value is for internal use only.

Definition at line 250 of file nvmedia_common_encode.h.

◆ NvMediaEncodeLevelH265

Defines encoding levels for H265 encoder.

Enumerator
NVMEDIA_ENCODE_LEVEL_H265_AUTOSELECT 

Automatic level selection.

NVMEDIA_ENCODE_LEVEL_H265_1 

H.265 Level 1.0.

NVMEDIA_ENCODE_LEVEL_H265_2 

H.265 Level 2.0.

NVMEDIA_ENCODE_LEVEL_H265_21 

H.265 Level 2.1.

NVMEDIA_ENCODE_LEVEL_H265_3 

H.265 Level 3.0.

NVMEDIA_ENCODE_LEVEL_H265_31 

H.265 Level 3.1.

NVMEDIA_ENCODE_LEVEL_H265_4 

H.265 Level 4.0.

NVMEDIA_ENCODE_LEVEL_H265_41 

H.265 Level 4.1.

NVMEDIA_ENCODE_LEVEL_H265_5 

H.265 Level 5.0.

NVMEDIA_ENCODE_LEVEL_H265_51 

H.265 Level 5.1.

NVMEDIA_ENCODE_LEVEL_H265_52 

H.265 Level 5.2.

NVMEDIA_ENCODE_LEVEL_H265_6 

H.265 Level 6.0.

NVMEDIA_ENCODE_LEVEL_H265_61 

H.265 Level 6.1.

NVMEDIA_ENCODE_LEVEL_H265_62 

H.265 Level 6.2.

NVMEDIA_ENCODE_LEVEL_H265_END 
Note
This value is for internal use only.

Definition at line 296 of file nvmedia_common_encode.h.

◆ NvMediaEncodePicFlags

Defines encoding Picture encode flags.

Enumerator
NVMEDIA_ENCODE_PIC_FLAG_OUTPUT_SPSPPS 

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

NVMEDIA_ENCODE_PIC_FLAG_RATECONTROL_CHANGE 

Indicates change in rate control parameters from the current picture onwards.

NVMEDIA_ENCODE_PIC_FLAG_CONSTRAINED_FRAME 

Indicates that this frame is encoded with each slice completely independent of other slices in the frame.

NVMEDIA_ENCODE_CONFIG_H264_ENABLE_CONSTRANED_ENCODING must be set to support this encode mode

Definition at line 335 of file nvmedia_common_encode.h.

◆ NvMediaEncodePicType

Input picture type.

Enumerator
NVMEDIA_ENCODE_PIC_TYPE_AUTOSELECT 

Auto selected picture type.

NVMEDIA_ENCODE_PIC_TYPE_P 

Forward predicted.

NVMEDIA_ENCODE_PIC_TYPE_B 

Bi-directionally predicted picture.

NVMEDIA_ENCODE_PIC_TYPE_I 

Intra predicted picture.

NVMEDIA_ENCODE_PIC_TYPE_IDR 

IDR picture.

NVMEDIA_ENCODE_PIC_TYPE_P_INTRA_REFRESH 

Starts a new intra refresh cycle if intra refresh support is enabled otherwise it indicates a P frame.

Definition at line 207 of file nvmedia_common_encode.h.

◆ NvMediaEncodeProfile

Defines encoding profiles.

Enumerator
NVMEDIA_ENCODE_PROFILE_AUTOSELECT 

Automatic profile selection.

NVMEDIA_ENCODE_PROFILE_BASELINE 

Baseline profile.

NVMEDIA_ENCODE_PROFILE_MAIN 

Main profile.

NVMEDIA_ENCODE_PROFILE_EXTENDED 

Extended profile.

This value is not supported in the QNX Safety build.

NVMEDIA_ENCODE_PROFILE_HIGH 

High profile.

NVMEDIA_ENCODE_PROFILE_HIGH444 

High 444 profile.

H.264 High444 profile support lossless encode (trans-quant bypass) for YUV444 and YUV420 input. Lossy encode is not supported with High444 profile.

Definition at line 227 of file nvmedia_common_encode.h.

◆ NvMediaEncodeQuality

Defines encode quality level pre-settings.

Enumerator
NVMEDIA_ENCODE_QUALITY_L0 

Quality Level 0 Preset.


Relative comparison with respect to other presets:

  • Performance: High
  • Quality: Low
NVMEDIA_ENCODE_QUALITY_L1 

Quality Level 1 Preset.


Relative comparison with respect to other presets:

  • Performance: Medium
  • Quality: Medium
NVMEDIA_ENCODE_QUALITY_L2 

Quality Level 2 Preset.


Relative comparison with respect to other presets:

  • Performance: Low
  • Quality: High

Definition at line 350 of file nvmedia_common_encode.h.