17 #ifndef _NVMEDIA_COMMON_H
18 #define _NVMEDIA_COMMON_H
52 #define NVMEDIA_COMMON_VERSION_MAJOR 1
54 #define NVMEDIA_COMMON_VERSION_MINOR 20
60 #define NVMEDIA_MIN_CAPTURE_FRAME_BUFFERS 2
65 #define NVMEDIA_MAX_CAPTURE_FRAME_BUFFERS 32
211 int32_t field_order_cnt[2];
226 #define MAX_USER_SEI_PAYLOAD 128
283 int32_t field_order_cnt[2];
351 uint8_t scaling_lists_4x4[6][16];
353 uint8_t scaling_lists_8x8[2][64];
380 uint16_t InterViewRefsL0[16];
382 uint16_t InterViewRefsL1[16];
417 uint16_t display_primaries_x[3];
419 uint16_t display_primaries_y[3];
535 uint8_t reserved1[3];
609 uint16_t column_width_minus1[22];
611 uint16_t row_height_minus1[20];
638 NvMediaRefSurface *RefPics[16];
639 int32_t PicOrderCntVal[16];
641 uint8_t IsLongTerm[16];
642 int8_t RefPicSetStCurrBefore[8];
643 int8_t RefPicSetStCurrAfter[8];
644 int8_t RefPicSetLtCurr[8];
648 uint8_t ScalingList4x4[6][16];
650 uint8_t ScalingList8x8[6][64];
652 uint8_t ScalingList16x16[6][64];
654 uint8_t ScalingList32x32[2][64];
656 uint8_t ScalingListDCCoeff16x16[6];
658 uint8_t ScalingListDCCoeff32x32[2];
661 uint32_t NumDeltaPocs[64];
703 int8_t cb_qp_adjustment[6];
705 int8_t cr_qp_adjustment[6];
741 int32_t RefPicSetInterLayer0[32];
743 int32_t RefPicSetInterLayer1[32];
802 uint8_t f_code[2][2];
804 uint8_t intra_quantizer_matrix[64];
806 uint8_t non_intra_quantizer_matrix[64];
878 uint8_t intra_quantizer_matrix[64];
880 uint8_t non_intra_quantizer_matrix[64];
1098 uint8_t mb_seg_tree_probs [3];
1101 int8_t seg_feature[2][4];
1103 int8_t ref_lf_deltas[4];
1105 int8_t mode_lf_deltas[4];
1110 uint8_t AlignByte[3];
1118 uint32_t coeff_partition_size[8];
1120 uint32_t coeff_partition_start_offset[8];
1152 uint32_t inter_mode_counts[7][3][2];
1154 uint32_t sb_ymode_counts[4][10];
1156 uint32_t uv_mode_counts[10][10];
1158 uint32_t partition_counts[16][4];
1160 uint32_t switchable_interp_counts[4][3];
1162 uint32_t intra_inter_count[4][2];
1164 uint32_t comp_inter_count[5][2];
1166 uint32_t single_ref_count[5][2][2];
1168 uint32_t comp_ref_count[5][2];
1170 uint32_t tx32x32_count[2][4];
1172 uint32_t tx16x16_count[2][3];
1174 uint32_t tx8x8_count[2][2];
1176 uint32_t mbskip_count[3][2];
1180 uint32_t sign[2][2];
1182 uint32_t classes[2][11];
1184 uint32_t class0[2][2];
1186 uint32_t bits[2][10][2];
1188 uint32_t class0_fp[2][2][4];
1192 uint32_t class0_hp[2][2];
1196 uint32_t countCoeffs[2][2][6][6][4];
1198 uint32_t countCoeffs8x8[2][2][6][6][4];
1200 uint32_t countCoeffs16x16[2][2][6][6][4];
1202 uint32_t countCoeffs32x32[2][2][6][6][4];
1204 uint32_t countEobs[4][2][2][6][6];
1216 uint8_t kf_bmode_prob[10][10][8];
1218 uint8_t kf_bmode_probB[10][10][1];
1220 uint8_t ref_pred_probs[3];
1222 uint8_t mb_segment_tree_probs[7];
1224 uint8_t segment_pred_probs[3];
1226 uint8_t ref_scores[4];
1228 uint8_t prob_comppred[2];
1233 uint8_t kf_uv_mode_prob[10][8];
1235 uint8_t kf_uv_mode_probB[10][1];
1240 uint8_t inter_mode_prob[7][4];
1242 uint8_t intra_inter_prob[4];
1245 uint8_t uv_mode_prob[10][8];
1247 uint8_t tx8x8_prob[2][1];
1249 uint8_t tx16x16_prob[2][2];
1251 uint8_t tx32x32_prob[2][3];
1253 uint8_t sb_ymode_probB[4][1];
1255 uint8_t sb_ymode_prob[4][8];
1258 uint8_t partition_prob[2][16][4];
1261 uint8_t uv_mode_probB[10][1];
1263 uint8_t switchable_interp_prob[4][2];
1265 uint8_t comp_inter_prob[5];
1267 uint8_t mbskip_probs[3];
1276 uint8_t class0[2][1];
1280 uint8_t class0_hp[2];
1284 uint8_t classes[2][10];
1286 uint8_t class0_fp[2][2][3];
1288 uint8_t bits[2][10];
1291 uint8_t single_ref_prob[5][2];
1293 uint8_t comp_ref_prob[5];
1298 uint8_t probCoeffs[2][2][6][6][4];
1300 uint8_t probCoeffs8x8[2][2][6][6][4];
1302 uint8_t probCoeffs16x16[2][2][6][6][4];
1304 uint8_t probCoeffs32x32[2][2][6][6][4];
1355 uint8_t refFrameSignBias[4];
1383 uint32_t comp_var_ref[2];
1397 uint8_t segmentFeatureEnable[8][4];
1399 short segmentFeatureData[8][4];
1403 uint32_t mbRefLfDelta[4];
1405 uint32_t mbModeLfDelta[2];
1422 #define NVMEDIA_VIDEO_ENCODER_TIMEOUT_INFINITE 0xFFFFFFFF
1428 #define NVMEDIA_ENCODE_INFINITE_GOPLENGTH 0xFFFFFFFF
1489 uint32_t averageBitRate;
1494 uint32_t vbvBufferSize;
1497 uint32_t vbvInitialDelay;
1501 uint32_t averageBitRate;
1503 uint32_t maxBitRate;
1506 uint32_t vbvBufferSize;
1509 uint32_t vbvInitialDelay;
1515 uint32_t averageBitRate;
1518 uint32_t vbvBufferSize;
1521 uint32_t vbvInitialDelay;
1840 #define MAX_NON_SLICE_DATA_SIZE 2048
1923 uint32_t refidx : 5;
1927 uint32_t partType : 2;
1929 uint32_t lastofPart : 1;
1931 uint32_t lastOfMB : 1;
2556 int8_t ref_lf_deltas[4];
2558 int8_t mode_lf_deltas[2];
2743 int8_t ref_lf_deltas[4];
2745 int8_t mode_lf_deltas[4];
2776 int8_t seg_filter_level[4];
2778 int8_t seg_qindex[4];
2861 #define NVMEDIA_DISP_ATTR_BRIGHTNESS (1<<0)
2866 #define NVMEDIA_DISP_ATTR_CONTRAST (1<<1)
2871 #define NVMEDIA_DISP_ATTR_SATURATION (1<<2)
2876 #define NVMEDIA_DISP_ATTR_HUE (1<<3)
2881 #define NVMEDIA_DISP_ATTR_COLOR_STANDARD (1<<4)
2886 #define NVMEDIA_DISP_ATTR_LIMITED_RGB (1<<5)
2891 #define NVMEDIA_DISP_ATTR_COMPOSITION (1<<6)
2896 #define NVMEDIA_DISP_ATTR_SET_DEPTH (1<<7)
2901 #define NVMEDIA_DISP_ATTR_SET_POSITION (1<<8)
Enable high precision mv.
Enable support for motion vector buffer dump.
Enable ultra fast encoding.
This attribute is used to get SPS data for current encoding session.
Enable lossless compression.
Disable Intra 8x8 vertical left prediction.
Enable to set loop filter parameters.
Automatic profile selection.
NvMediaEncodeH264Features
Defines H264 encoder configuration features.
Entropy coding mode is CABAC.
Disable Intra 8x8 vertical right prediction.
Enable support to use 4 byte start code in all the slices in a picture.
Enable self_temporal_refine.
Specifies the decoder instance ID 1.
uint32_t NvMediaBool
A boolean value, holding NVMEDIA_TRUE or NVMEDIA_FALSE.
sequence header data present or not
Constant bitrate mode with MinQP.
NvMediaEncoderInstanceId
Specifies the encoder instance ID.
NvMediaDecoderInstanceId
Specifies the decoder instance ID.
NvMediaEncodeLevel
Defines encoding levels.
Disable Intra 4x4 horizontal down prediction.
Enable slice level output encoding.
Disable Intra 4x4 diagonal down right prediction.
A lower depth overlay is fully covering any higher depth overlay.
Quality Level 1 Pre-settings.
VC-1 advanced profile codec.
Enable lossless compression.
NvMediaEncodeVP9Features
Defines VP9 encoder configuration features.
IP Search mode bit Intra 4x4.
Enable encoder profiling.
slice header data present or not
Enable self_spatial_refine.
Disable Intra 4x4 vertical right prediction.
Specifies that Adaptive Transform 8x8 mode is disabled.
Enable to set quantization parameters.
NvMediaDispCompMode
Specifies composition modes for layers.
NvMediaNoiseReductionAlgorithm
Noise Reduction Algorithm.
Bi-directionally predicted picture.
Specifies that the decoder instance ID can be set dynamically during decode.
Enable support for external picture RC hint.
Disable Intra chroma vertical prediction.
Enable constrainedFrame encoding where each slice in the constrained picture is independent of other ...
Disable Intra 8x8 vertical prediction.
NvMediaColorStandard
Defines color standards.
Disable Intra 16x16 vertical prediction.
Indicates that this frame is encoded with each slice completely independent of other slices in the fr...
Specifies that the encoder instance ID can be set dynamically during encode.
Entropy coding mode is CAVLC.
Disable Intra 8x8 horizontal up prediction.
Low (default) filter quality.
Auto selected picture type.
Enable dynamic slice mode.
Disable Intra chroma DC prediction.
Disable Intra 4x4 vertical prediction.
Noise reduction algorithm for outdoor medium light condition.
Enable encoder profiling.
Enable gradual decoder refresh or intra refresh.
Block only when operation is pending.
Enable encoder profiling.
Disable Intra 4x4 horizontal prediction.
NvMediaEncodeH264BDirectMode
Defines H.264 specific Bdirect modes.
Enable to set quantization parameters.
Enable gradual decoder refresh or intra refresh.
VC-1 simple and main profile codec.
Enable support for dynamic reference picture set RPS/DPB control support.
NvMediaEncodePicFlags
Defines encoding Picture encode flags.
NvMediaEncodeH264MotionPredictionExclusionFlags
Defines motion prediction exclusion flags for H.264.
NvMediaEncodeProfile
Defines encoding profiles.
Disable Inter L0 partition 8x16 prediction.
Disable Intra chroma horizontal prediction.
Original (default) noise reduction algorithm.
NvMediaEncodeQuality
Defines encode quality level pre-settings.
Disable Intra 8x8 DC prediction.
Enable support to use client provided QP max for all frame types.
NvMediaFilterQuality
Defines filter quality levels.
Quality Level 2 Pre-settings.
Specifies that Adaptive Transform 8x8 mode is auto selected by the encoder driver.
NvMediaEncodePicType
Input picture type.
NvMediaEncAttrType
Specifies the Video encoder get attribute type.
Enable dynamic slice mode.
Disable Intra 8x8 horizontal prediction.
void NvMediaPictureInfo
A generic "picture information" pointer type.
#define MAX_NON_SLICE_DATA_SIZE
Maximum encoded header info size.
Disable Intra 4x4 DC prediction.
Disable Intra 16x16 horizontal prediction.
Enable support for motion vector buffer dump.
Disable Intra chroma plane prediction.
Disable Inter L0 partition 16x8 prediction.
Enable support to use client provided QP max for all frame types.
Indicates change in rate control parameters from the current picture onwards.
NvMediaEncodeH265Features
Defines H265 encoder configuration features.
Starts a new intra refresh cycle if intra refresh support is enabled otherwise it indicates a P frame...
Disable Intra 8x8 diagonal down left prediction.
Specifies that Adaptive Transform 8x8 mode must be used.
SPS/PPS is repeated for every intra frame.
void NvMediaRefSurface
A generic "reference surface" pointer type.
H.264 Multiview Video Coding codec.
Enable to write access unit delimiter syntax in bitstream.
Repeating of SPS/PPS is disabled.
NvMediaEncodeH264POCType
Define H.264 pic_order_cnt_type.
Enable support to use client provided Initial QP for all frame types.
NvMediaVideoCodec
Video codec type.
NvMediaEncodeH264SPSPPSRepeatMode
Specifies the frequency of the writing of Sequence and Picture parameters for H.264.
Disable Intra 4x4 vertical left prediction.
H265 Multiview Video Coding codec.
Disable Intra 4x4 diagonal down left prediction.
Enable to set loop filter parameters.
Enable support to use client provided QP max for all frame types.
Disable Intra 16x16 DC prediction.
picture header data present or not
Noise reduction algorithm for indoor medium light condition.
Enable to write access unit delimiter syntax in bitstream.
NvMediaBlockingType
Blocking type.
Enable constrainedFrame encoding where each slice in the constrained picture is independent of other ...
Enable support to use client provided Initial QP for all frame types.
NvMediaEncodeH264MotionSearchControlFlags
Defines motion search mode control flags for H.264.
NvMediaEncodeParamsRCMode
Rate Control Modes.
Enable support to use 4 byte start code in all the slices in a picture.
Enable support to use client provided Initial QP for all frame types.
Automatic level selection.
Enable support to use client provided Initial QP for all frame types.
Disable Intra 8x8 diagonal down right prediction.
Noise reduction algorithm for outdoor high light condition.
#define MAX_USER_SEI_PAYLOAD
Maximum user defined sei payload size.
Disable Intra 4x4 horizontal up prediction.
IP Search mode bit Intra 8x8.
Quality Level 0 Pre-settings.
IP Search mode bit Intra 16x16.
Disable Inter L0 partition 16x16 prediction.
A lower depth overlay is per-pixel alpha blended over any higher depth overlay.
Noise reduction algorithm for indoor high light condition.
NvMediaEncodeH264AdaptiveTransformMode
Defines H.264 specific Adaptive Transform modes.
Automatic level selection.
This attribute is used to get PPS data for current encoding session.
A lower depth overlay is per-pixel alpha blended over any higher depth overlay.
SPS/PPS is repeated for every IDR frame.
Disable Inter L0 partition 8x8 prediction.
Specifies the encoder instance ID 0.
Disable error resiliency.
This attribute is used to get VPS data for current h265 encoding session.
Enable encoder profiling.
Enable support for dynamic reference picture set RPS/DPB control support.
Enable support to use client provided QP max for all frame types.
Noise reduction algorithm for outdoor low light condition.
Specifies the decoder instance ID 0.
Writes the sequence and picture header in encoded bitstream of the current picture.
NvMediaEncodeH264EntropyCodingMode
Defines H.264 entropy coding modes.
Disable Intra 16x16 plane prediction.
Specifies the encoder instance ID 1.
Variable bitrate mode with MinQP.
Disable Intra 8x8 horizontal down prediction.
Enable support for external picture RC hint.
Enable slice level output encoding.
Noise reduction algorithm for indoor low light condition.
NvMediaEncodeVP8Features
Defines VP8 encoder configuration features.