83 #include <va/va_version.h>
89 #if defined(__GNUC__) && !defined(__COVERITY__)
90 #define va_deprecated __attribute__((deprecated))
92 #define va_deprecated_enum va_deprecated
94 #define va_deprecated_enum
98 #define va_deprecated_enum
262 typedef int VAStatus;
264 #define VA_STATUS_SUCCESS 0x00000000
265 #define VA_STATUS_ERROR_OPERATION_FAILED 0x00000001
266 #define VA_STATUS_ERROR_ALLOCATION_FAILED 0x00000002
267 #define VA_STATUS_ERROR_INVALID_DISPLAY 0x00000003
268 #define VA_STATUS_ERROR_INVALID_CONFIG 0x00000004
269 #define VA_STATUS_ERROR_INVALID_CONTEXT 0x00000005
270 #define VA_STATUS_ERROR_INVALID_SURFACE 0x00000006
271 #define VA_STATUS_ERROR_INVALID_BUFFER 0x00000007
272 #define VA_STATUS_ERROR_INVALID_IMAGE 0x00000008
273 #define VA_STATUS_ERROR_INVALID_SUBPICTURE 0x00000009
274 #define VA_STATUS_ERROR_ATTR_NOT_SUPPORTED 0x0000000a
275 #define VA_STATUS_ERROR_MAX_NUM_EXCEEDED 0x0000000b
276 #define VA_STATUS_ERROR_UNSUPPORTED_PROFILE 0x0000000c
277 #define VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT 0x0000000d
278 #define VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT 0x0000000e
279 #define VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE 0x0000000f
280 #define VA_STATUS_ERROR_SURFACE_BUSY 0x00000010
281 #define VA_STATUS_ERROR_FLAG_NOT_SUPPORTED 0x00000011
282 #define VA_STATUS_ERROR_INVALID_PARAMETER 0x00000012
283 #define VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED 0x00000013
284 #define VA_STATUS_ERROR_UNIMPLEMENTED 0x00000014
285 #define VA_STATUS_ERROR_SURFACE_IN_DISPLAYING 0x00000015
286 #define VA_STATUS_ERROR_INVALID_IMAGE_FORMAT 0x00000016
287 #define VA_STATUS_ERROR_DECODING_ERROR 0x00000017
288 #define VA_STATUS_ERROR_ENCODING_ERROR 0x00000018
296 #define VA_STATUS_ERROR_INVALID_VALUE 0x00000019
298 #define VA_STATUS_ERROR_UNSUPPORTED_FILTER 0x00000020
300 #define VA_STATUS_ERROR_INVALID_FILTER_CHAIN 0x00000021
302 #define VA_STATUS_ERROR_HW_BUSY 0x00000022
304 #define VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE 0x00000024
306 #define VA_STATUS_ERROR_NOT_ENOUGH_BUFFER 0x00000025
308 #define VA_STATUS_ERROR_TIMEDOUT 0x00000026
309 #define VA_STATUS_ERROR_UNKNOWN 0xFFFFFFFF
318 #define VA_FRAME_PICTURE 0x00000000
319 #define VA_TOP_FIELD 0x00000001
320 #define VA_BOTTOM_FIELD 0x00000002
321 #define VA_TOP_FIELD_FIRST 0x00000004
322 #define VA_BOTTOM_FIELD_FIRST 0x00000008
330 #define VA_ENABLE_BLEND 0x00000004
337 #define VA_CLEAR_DRAWABLE 0x00000008
340 #define VA_SRC_COLOR_MASK 0x000000f0
341 #define VA_SRC_BT601 0x00000010
342 #define VA_SRC_BT709 0x00000020
343 #define VA_SRC_SMPTE_240 0x00000040
346 #define VA_FILTER_SCALING_DEFAULT 0x00000000
347 #define VA_FILTER_SCALING_FAST 0x00000100
348 #define VA_FILTER_SCALING_HQ 0x00000200
349 #define VA_FILTER_SCALING_NL_ANAMORPHIC 0x00000300
350 #define VA_FILTER_SCALING_MASK 0x00000f00
353 #define VA_FILTER_INTERPOLATION_DEFAULT 0x00000000
354 #define VA_FILTER_INTERPOLATION_NEAREST_NEIGHBOR 0x00001000
355 #define VA_FILTER_INTERPOLATION_BILINEAR 0x00002000
356 #define VA_FILTER_INTERPOLATION_ADVANCED 0x00003000
357 #define VA_FILTER_INTERPOLATION_MASK 0x0000f000
360 #define VA_PADDING_LOW 4
361 #define VA_PADDING_MEDIUM 8
362 #define VA_PADDING_HIGH 16
363 #define VA_PADDING_LARGE 32
367 #define VA_EXEC_SYNC 0x0
369 #define VA_EXEC_ASYNC 0x1
372 #define VA_EXEC_MODE_DEFAULT 0x0
373 #define VA_EXEC_MODE_POWER_SAVING 0x1
374 #define VA_EXEC_MODE_PERFORMANCE 0x2
381 #define VA_FEATURE_NOT_SUPPORTED 0
391 #define VA_FEATURE_SUPPORTED 1
398 #define VA_FEATURE_REQUIRED 2
406 typedef struct _VARectangle {
414 typedef struct _VAMotionVector {
490 typedef int (*VAPrivFunc)(void);
505 VAProfileMPEG2Simple = 0,
506 VAProfileMPEG2Main = 1,
507 VAProfileMPEG4Simple = 2,
508 VAProfileMPEG4AdvancedSimple = 3,
509 VAProfileMPEG4Main = 4,
511 VAProfileH264Main = 6,
512 VAProfileH264High = 7,
513 VAProfileVC1Simple = 8,
514 VAProfileVC1Main = 9,
515 VAProfileVC1Advanced = 10,
516 VAProfileH263Baseline = 11,
517 VAProfileJPEGBaseline = 12,
518 VAProfileH264ConstrainedBaseline = 13,
519 VAProfileVP8Version0_3 = 14,
520 VAProfileH264MultiviewHigh = 15,
521 VAProfileH264StereoHigh = 16,
522 VAProfileHEVCMain = 17,
523 VAProfileHEVCMain10 = 18,
524 VAProfileVP9Profile0 = 19,
525 VAProfileVP9Profile1 = 20,
526 VAProfileVP9Profile2 = 21,
527 VAProfileVP9Profile3 = 22,
528 VAProfileHEVCMain12 = 23,
529 VAProfileHEVCMain422_10 = 24,
530 VAProfileHEVCMain422_12 = 25,
531 VAProfileHEVCMain444 = 26,
532 VAProfileHEVCMain444_10 = 27,
533 VAProfileHEVCMain444_12 = 28,
534 VAProfileHEVCSccMain = 29,
535 VAProfileHEVCSccMain10 = 30,
536 VAProfileHEVCSccMain444 = 31,
537 VAProfileAV1Profile0 = 32,
538 VAProfileAV1Profile1 = 33,
539 VAProfileHEVCSccMain444_10 = 34,
542 VAProfileH264High10 = 36,
543 VAProfileVVCMain10 = 37,
544 VAProfileVVCMultilayerMain10 = 38,
545 VAProfileAV1Profile2 = 39,
546 VAProfileH264High422 = 40
555 VAEntrypointIDCT = 3,
556 VAEntrypointMoComp = 4,
557 VAEntrypointDeblocking = 5,
558 VAEntrypointEncSlice = 6,
559 VAEntrypointEncPicture = 7,
568 VAEntrypointEncSliceLP = 8,
620 VAConfigAttribRTFormat = 0,
621 VAConfigAttribSpatialResidual = 1,
622 VAConfigAttribSpatialClipping = 2,
623 VAConfigAttribIntraResidual = 3,
624 VAConfigAttribEncryption = 4,
625 VAConfigAttribRateControl = 5,
1067 VAConfigAttribTypeMax
1076 typedef struct _VAConfigAttrib {
1083 #define VA_RT_FORMAT_YUV420 0x00000001
1084 #define VA_RT_FORMAT_YUV422 0x00000002
1085 #define VA_RT_FORMAT_YUV444 0x00000004
1086 #define VA_RT_FORMAT_YUV411 0x00000008
1087 #define VA_RT_FORMAT_YUV400 0x00000010
1088 #define VA_RT_FORMAT_YUV420_10 0x00000100
1089 #define VA_RT_FORMAT_YUV422_10 0x00000200
1090 #define VA_RT_FORMAT_YUV444_10 0x00000400
1091 #define VA_RT_FORMAT_YUV420_12 0x00001000
1092 #define VA_RT_FORMAT_YUV422_12 0x00002000
1093 #define VA_RT_FORMAT_YUV444_12 0x00004000
1095 #define VA_RT_FORMAT_RGB16 0x00010000
1096 #define VA_RT_FORMAT_RGB32 0x00020000
1097 #define VA_RT_FORMAT_RGBP 0x00100000
1098 #define VA_RT_FORMAT_RGB32_10 0x00200000
1100 #define VA_RT_FORMAT_PROTECTED 0x80000000
1102 #define VA_RT_FORMAT_RGB32_10BPP VA_RT_FORMAT_RGB32_10
1103 #define VA_RT_FORMAT_YUV420_10BPP VA_RT_FORMAT_YUV420_10
1108 #define VA_RC_NONE 0x00000001
1110 #define VA_RC_CBR 0x00000002
1112 #define VA_RC_VBR 0x00000004
1114 #define VA_RC_VCM 0x00000008
1116 #define VA_RC_CQP 0x00000010
1118 #define VA_RC_VBR_CONSTRAINED 0x00000020
1121 #define VA_RC_ICQ 0x00000040
1124 #define VA_RC_MB 0x00000080
1126 #define VA_RC_CFS 0x00000100
1137 #define VA_RC_PARALLEL 0x00000200
1144 #define VA_RC_QVBR 0x00000400
1155 #define VA_RC_AVBR 0x00000800
1164 #define VA_RC_TCBRC 0x00001000
1171 #define VA_DEC_SLICE_MODE_NORMAL 0x00000001
1173 #define VA_DEC_SLICE_MODE_BASE 0x00000002
1177 typedef union _VAConfigAttribValDecJPEG {
1180 uint32_t rotation : 4;
1184 uint32_t reserved : 27;
1187 } VAConfigAttribValDecJPEG;
1191 #define VA_DEC_PROCESSING_NONE 0x00000000
1193 #define VA_DEC_PROCESSING 0x00000001
1199 #define VA_ENC_PACKED_HEADER_NONE 0x00000000
1206 #define VA_ENC_PACKED_HEADER_SEQUENCE 0x00000001
1213 #define VA_ENC_PACKED_HEADER_PICTURE 0x00000002
1220 #define VA_ENC_PACKED_HEADER_SLICE 0x00000004
1229 #define VA_ENC_PACKED_HEADER_MISC 0x00000008
1231 #define VA_ENC_PACKED_HEADER_RAW_DATA 0x00000010
1237 #define VA_ENC_INTERLACED_NONE 0x00000000
1239 #define VA_ENC_INTERLACED_FRAME 0x00000001
1241 #define VA_ENC_INTERLACED_FIELD 0x00000002
1243 #define VA_ENC_INTERLACED_MBAFF 0x00000004
1245 #define VA_ENC_INTERLACED_PAFF 0x00000008
1251 #define VA_ENC_SLICE_STRUCTURE_POWER_OF_TWO_ROWS 0x00000001
1253 #define VA_ENC_SLICE_STRUCTURE_ARBITRARY_MACROBLOCKS 0x00000002
1255 #define VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS 0x00000004
1257 #define VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE 0x00000008
1259 #define VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS 0x00000010
1263 #define VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS 0x00000020
1267 typedef union _VAConfigAttribValMaxFrameSize {
1284 typedef union _VAConfigAttribValEncJPEG {
1294 uint32_t max_num_components : 3;
1295 uint32_t max_num_scans : 4;
1296 uint32_t max_num_huffman_tables : 3;
1297 uint32_t max_num_quantization_tables : 3;
1305 #define VA_ENC_QUANTIZATION_NONE 0x00000000
1307 #define VA_ENC_QUANTIZATION_TRELLIS_SUPPORTED 0x00000001
1318 #define VA_PREDICTION_DIRECTION_PREVIOUS 0x00000001
1320 #define VA_PREDICTION_DIRECTION_FUTURE 0x00000002
1322 #define VA_PREDICTION_DIRECTION_BI_NOT_EMPTY 0x00000004
1328 #define VA_ENC_INTRA_REFRESH_NONE 0x00000000
1330 #define VA_ENC_INTRA_REFRESH_ROLLING_COLUMN 0x00000001
1332 #define VA_ENC_INTRA_REFRESH_ROLLING_ROW 0x00000002
1334 #define VA_ENC_INTRA_REFRESH_ADAPTIVE 0x00000010
1336 #define VA_ENC_INTRA_REFRESH_CYCLIC 0x00000020
1338 #define VA_ENC_INTRA_REFRESH_P_FRAME 0x00010000
1340 #define VA_ENC_INTRA_REFRESH_B_FRAME 0x00020000
1342 #define VA_ENC_INTRA_REFRESH_MULTI_REF 0x00040000
1347 typedef union _VAConfigAttribValEncROI {
1375 uint32_t reserved : 22;
1381 typedef union _VAConfigAttribValEncRateControlExt {
1416 uint32_t reserved : 23;
1422 typedef union _VAConfigAttribValMultipleFrame {
1437 typedef union _VAConfigAttribValContextPriority {
1449 typedef union _VAConfigAttribValEncPerBlockControl {
1465 #define VA_PC_CIPHER_AES 0x00000001
1469 #define VA_PC_BLOCK_SIZE_128 0x00000001
1471 #define VA_PC_BLOCK_SIZE_192 0x00000002
1473 #define VA_PC_BLOCK_SIZE_256 0x00000004
1477 #define VA_PC_CIPHER_MODE_ECB 0x00000001
1479 #define VA_PC_CIPHER_MODE_CBC 0x00000002
1481 #define VA_PC_CIPHER_MODE_CTR 0x00000004
1485 #define VA_PC_SAMPLE_TYPE_FULLSAMPLE 0x00000001
1487 #define VA_PC_SAMPLE_TYPE_SUBSAMPLE 0x00000002
1491 #define VA_PC_USAGE_DEFAULT 0x00000000
1493 #define VA_PC_USAGE_WIDEVINE 0x00000001
1498 #define VA_PROCESSING_RATE_NONE 0x00000000
1500 #define VA_PROCESSING_RATE_ENCODE 0x00000001
1502 #define VA_PROCESSING_RATE_DECODE 0x00000002
1508 #define VA_SEGID_BLOCK_16X16 0
1510 #define VA_SEGID_BLOCK_32X32 1
1512 #define VA_SEGID_BLOCK_64X64 2
1514 #define VA_SEGID_BLOCK_8X8 3
1521 #define VA_ATTRIB_NOT_SUPPORTED 0x80000000
1560 int *num_entrypoints
1595 VAConfigID *config_id
1603 VAConfigID config_id
1616 VAConfigID config_id,
1647 #define VA_INVALID_ID 0xffffffff
1648 #define VA_INVALID_SURFACE VA_INVALID_ID
1662 typedef struct _VAGenericValue {
1681 #define VA_SURFACE_ATTRIB_NOT_SUPPORTED 0x00000000
1683 #define VA_SURFACE_ATTRIB_GETTABLE 0x00000001
1685 #define VA_SURFACE_ATTRIB_SETTABLE 0x00000002
1690 VASurfaceAttribNone = 0,
1742 typedef struct _VASurfaceAttrib {
1759 #define VA_SURFACE_ATTRIB_MEM_TYPE_VA 0x00000001
1761 #define VA_SURFACE_ATTRIB_MEM_TYPE_V4L2 0x00000002
1763 #define VA_SURFACE_ATTRIB_MEM_TYPE_USER_PTR 0x00000004
1769 typedef union _VASurfaceAttribAlignmentStruct {
1775 uint32_t reserved : 24;
1784 typedef struct _VASurfaceAttribExternalBuffers {
1796 uint32_t pitches[4];
1798 uint32_t offsets[4];
1812 #define VA_SURFACE_EXTBUF_DESC_ENABLE_TILING 0x00000001
1814 #define VA_SURFACE_EXTBUF_DESC_CACHED 0x00000002
1816 #define VA_SURFACE_EXTBUF_DESC_UNCACHED 0x00000004
1818 #define VA_SURFACE_EXTBUF_DESC_WC 0x00000008
1820 #define VA_SURFACE_EXTBUF_DESC_PROTECTED 0x80000000
1825 #define VA_SURFACE_ATTRIB_USAGE_HINT_GENERIC 0x00000000
1827 #define VA_SURFACE_ATTRIB_USAGE_HINT_DECODER 0x00000001
1829 #define VA_SURFACE_ATTRIB_USAGE_HINT_ENCODER 0x00000002
1831 #define VA_SURFACE_ATTRIB_USAGE_HINT_VPP_READ 0x00000004
1833 #define VA_SURFACE_ATTRIB_USAGE_HINT_VPP_WRITE 0x00000008
1835 #define VA_SURFACE_ATTRIB_USAGE_HINT_DISPLAY 0x00000010
1838 #define VA_SURFACE_ATTRIB_USAGE_HINT_EXPORT 0x00000020
1874 unsigned int *num_attribs
1897 unsigned int format,
1899 unsigned int height,
1900 VASurfaceID *surfaces,
1901 unsigned int num_surfaces,
1903 unsigned int num_attribs
1916 VASurfaceID *surfaces,
1920 #define VA_PROGRESSIVE 0x1
1935 VAConfigID config_id,
1939 VASurfaceID *render_targets,
1940 int num_render_targets,
1974 VAMFContextID *mf_context
2012 VAMFContextID mf_context,
2030 VAMFContextID mf_context,
2045 VAPictureParameterBufferType = 0,
2046 VAIQMatrixBufferType = 1,
2047 VABitPlaneBufferType = 2,
2048 VASliceGroupMapBufferType = 3,
2049 VASliceParameterBufferType = 4,
2050 VASliceDataBufferType = 5,
2051 VAMacroblockParameterBufferType = 6,
2052 VAResidualDataBufferType = 7,
2053 VADeblockingParameterBufferType = 8,
2054 VAImageBufferType = 9,
2055 VAProtectedSliceDataBufferType = 10,
2056 VAQMatrixBufferType = 11,
2057 VAHuffmanTableBufferType = 12,
2058 VAProbabilityBufferType = 13,
2061 VAEncCodedBufferType = 21,
2062 VAEncSequenceParameterBufferType = 22,
2063 VAEncPictureParameterBufferType = 23,
2064 VAEncSliceParameterBufferType = 24,
2065 VAEncPackedHeaderParameterBufferType = 25,
2066 VAEncPackedHeaderDataBufferType = 26,
2067 VAEncMiscParameterBufferType = 27,
2068 VAEncMacroblockParameterBufferType = 28,
2069 VAEncMacroblockMapBufferType = 29,
2104 VAEncFEIMBCodeBufferType = 44,
2105 VAEncFEIDistortionBufferType = 45,
2106 VAEncFEIMBControlBufferType = 46,
2107 VAEncFEIMVPredictorBufferType = 47,
2108 VAStatsStatisticsParameterBufferType = 48,
2113 VAStatsMVBufferType = 51,
2114 VAStatsMVPredictorBufferType = 52,
2217 typedef struct _VAContextParameterUpdateBuffer {
2230 uint32_t reserved[VA_PADDING_MEDIUM];
2245 #define VA_ENCRYPTION_TYPE_FULLSAMPLE_CTR 0x00000001
2246 #define VA_ENCRYPTION_TYPE_FULLSAMPLE_CBC 0x00000002
2247 #define VA_ENCRYPTION_TYPE_SUBSAMPLE_CTR 0x00000004
2248 #define VA_ENCRYPTION_TYPE_SUBSAMPLE_CBC 0x00000008
2251 typedef struct _VAEncryptionSegmentInfo {
2265 uint8_t aes_cbc_iv_or_ctr[64];
2267 uint32_t va_reserved[VA_PADDING_MEDIUM];
2271 typedef struct _VAEncryptionParameters {
2288 uint8_t wrapped_decrypt_blob[64];
2291 uint8_t wrapped_encrypt_blob[64];
2314 uint32_t va_reserved[VA_PADDING_MEDIUM];
2320 typedef struct _VAProcessingRateParameterEnc {
2323 uint8_t reserved[3];
2337 typedef struct _VAProcessingRateParameterDec {
2340 uint8_t reserved0[3];
2344 typedef struct _VAProcessingRateParameter {
2349 } VAProcessingRateParameter;
2375 VAProcessingRateParameter *proc_buf,
2376 unsigned int *processing_rate
2380 VAEncMiscParameterTypeFrameRate = 0,
2381 VAEncMiscParameterTypeRateControl = 1,
2382 VAEncMiscParameterTypeMaxSliceSize = 2,
2383 VAEncMiscParameterTypeAIR = 3,
2388 VAEncMiscParameterTypeQualityLevel = 6,
2446 typedef struct _VAEncPackedHeaderParameterBuffer {
2475 typedef struct _VAEncMiscParameterBuffer {
2481 typedef struct _VAEncMiscParameterTemporalLayerStructure {
2492 uint32_t layer_id[32];
2500 typedef struct _VAEncMiscParameterRateControl {
2560 uint32_t enable_dynamic_scaling : 1;
2617 typedef struct _VAEncMiscParameterFrameRate {
2657 typedef struct _VAEncMiscParameterMaxSliceSize {
2658 uint32_t max_slice_size;
2664 typedef struct _VAEncMiscParameterAIR {
2665 uint32_t air_num_mbs;
2666 uint32_t air_threshold;
2671 } VAEncMiscParameterAIR;
2676 typedef struct _VAEncMiscParameterRIR {
2687 uint32_t enable_rir_column : 1;
2689 uint32_t enable_rir_row : 1;
2690 uint32_t reserved : 30;
2698 uint16_t intra_insertion_location;
2703 uint16_t intra_insert_size;
2708 uint8_t qp_delta_for_inserted_intra;
2711 } VAEncMiscParameterRIR;
2721 typedef struct _VAEncMiscParameterHRD {
2753 typedef struct _VAEncMiscParameterBufferMaxFrameSize {
2773 typedef struct _VAEncMiscParameterBufferMultiPassFrameSize {
2801 typedef struct _VAEncMiscParameterBufferQualityLevel {
2817 typedef struct _VAEncMiscParameterQuantization {
2822 uint32_t disable_trellis : 1;
2824 uint32_t enable_trellis_I : 1;
2826 uint32_t enable_trellis_P : 1;
2828 uint32_t enable_trellis_B : 1;
2829 uint32_t reserved : 28;
2832 } quantization_flags;
2833 uint32_t va_reserved;
2845 typedef struct _VAEncMiscParameterSkipFrame {
2872 typedef struct _VAEncROI {
2898 typedef struct _VAEncMiscParameterBufferROI {
2905 int8_t max_delta_qp;
2906 int8_t min_delta_qp;
2925 uint32_t roi_value_is_qp_delta : 1;
2926 uint32_t reserved : 31;
2933 } VAEncMiscParameterBufferROI;
2945 typedef struct _VAEncMiscParameterBufferDirtyRect {
2947 uint32_t num_roi_rectangle;
2951 } VAEncMiscParameterBufferDirtyRect;
2954 typedef struct _VAEncMiscParameterParallelRateControl {
2966 typedef struct _VAEncMiscParameterEncQuality {
2987 uint32_t ReservedBit : 1;
3022 uint32_t encControls;
3026 uint8_t FTQSkipThresholdLUT[52];
3028 uint16_t NonFTQSkipThresholdLUT[52];
3030 uint32_t reserved[VA_PADDING_HIGH];
3040 typedef struct _VAEncMiscParameterCustomRoundingControl {
3066 uint32_t reserved : 16;
3069 } rounding_offset_setting;
3080 #define VA_SLICE_DATA_FLAG_ALL 0x00
3081 #define VA_SLICE_DATA_FLAG_BEGIN 0x01
3082 #define VA_SLICE_DATA_FLAG_MIDDLE 0x02
3083 #define VA_SLICE_DATA_FLAG_END 0x04
3086 typedef struct _VASliceParameterBufferBase {
3087 uint32_t slice_data_size;
3088 uint32_t slice_data_offset;
3089 uint32_t slice_data_flag;
3090 } VASliceParameterBufferBase;
3107 typedef struct _VAHuffmanTableBufferJPEGBaseline {
3109 uint8_t load_huffman_table[2];
3115 uint8_t num_dc_codes[16];
3117 uint8_t dc_values[12];
3122 uint8_t num_ac_codes[16];
3124 uint8_t ac_values[162];
3143 typedef struct _VAPictureParameterBufferMPEG2 {
3144 uint16_t horizontal_size;
3145 uint16_t vertical_size;
3146 VASurfaceID forward_reference_picture;
3147 VASurfaceID backward_reference_picture;
3149 int32_t picture_coding_type;
3153 uint32_t intra_dc_precision : 2;
3154 uint32_t picture_structure : 2;
3155 uint32_t top_field_first : 1;
3156 uint32_t frame_pred_frame_dct : 1;
3157 uint32_t concealment_motion_vectors : 1;
3158 uint32_t q_scale_type : 1;
3159 uint32_t intra_vlc_format : 1;
3160 uint32_t alternate_scan : 1;
3161 uint32_t repeat_first_field : 1;
3162 uint32_t progressive_frame : 1;
3163 uint32_t is_first_field : 1;
3168 } picture_coding_extension;
3172 } VAPictureParameterBufferMPEG2;
3175 typedef struct _VAIQMatrixBufferMPEG2 {
3185 uint8_t intra_quantiser_matrix[64];
3187 uint8_t non_intra_quantiser_matrix[64];
3189 uint8_t chroma_intra_quantiser_matrix[64];
3191 uint8_t chroma_non_intra_quantiser_matrix[64];
3198 typedef struct _VASliceParameterBufferMPEG2 {
3199 uint32_t slice_data_size;
3200 uint32_t slice_data_offset;
3201 uint32_t slice_data_flag;
3202 uint32_t macroblock_offset;
3203 uint32_t slice_horizontal_position;
3204 uint32_t slice_vertical_position;
3205 int32_t quantiser_scale_code;
3206 int32_t intra_slice_flag;
3213 typedef struct _VAMacroblockParameterBufferMPEG2 {
3214 uint16_t macroblock_address;
3220 uint8_t macroblock_type;
3223 uint32_t frame_motion_type : 2;
3224 uint32_t field_motion_type : 2;
3225 uint32_t dct_type : 1;
3229 uint8_t motion_vertical_field_select;
3239 int16_t PMV[2][2][2];
3240 uint16_t coded_block_pattern;
3247 uint16_t num_skipped_macroblocks;
3256 #define VA_MB_TYPE_MOTION_FORWARD 0x02
3257 #define VA_MB_TYPE_MOTION_BACKWARD 0x04
3258 #define VA_MB_TYPE_MOTION_PATTERN 0x08
3259 #define VA_MB_TYPE_MOTION_INTRA 0x10
3276 typedef struct _VAPictureParameterBufferMPEG4 {
3278 uint16_t vop_height;
3279 VASurfaceID forward_reference_picture;
3280 VASurfaceID backward_reference_picture;
3283 uint32_t short_video_header : 1;
3284 uint32_t chroma_format : 2;
3285 uint32_t interlaced : 1;
3286 uint32_t obmc_disable : 1;
3287 uint32_t sprite_enable : 2;
3288 uint32_t sprite_warping_accuracy : 2;
3289 uint32_t quant_type : 1;
3290 uint32_t quarter_sample : 1;
3291 uint32_t data_partitioned : 1;
3292 uint32_t reversible_vlc : 1;
3293 uint32_t resync_marker_disable : 1;
3297 uint8_t no_of_sprite_warping_points;
3298 int16_t sprite_trajectory_du[3];
3299 int16_t sprite_trajectory_dv[3];
3300 uint8_t quant_precision;
3303 uint32_t vop_coding_type : 2;
3304 uint32_t backward_reference_vop_coding_type : 2;
3305 uint32_t vop_rounding_type : 1;
3306 uint32_t intra_dc_vlc_thr : 3;
3307 uint32_t top_field_first : 1;
3308 uint32_t alternate_vertical_scan_flag : 1;
3312 uint8_t vop_fcode_forward;
3313 uint8_t vop_fcode_backward;
3314 uint16_t vop_time_increment_resolution;
3316 uint8_t num_gobs_in_vop;
3317 uint8_t num_macroblocks_in_gob;
3327 typedef struct _VAIQMatrixBufferMPEG4 {
3333 uint8_t intra_quant_mat[64];
3335 uint8_t non_intra_quant_mat[64];
3342 typedef struct _VASliceParameterBufferMPEG4 {
3343 uint32_t slice_data_size;
3344 uint32_t slice_data_offset;
3345 uint32_t slice_data_flag;
3346 uint32_t macroblock_offset;
3347 uint32_t macroblock_number;
3348 int32_t quant_scale;
3361 VAMvMode1MvHalfPel = 1,
3362 VAMvMode1MvHalfPelBilinear = 2,
3363 VAMvModeMixedMv = 3,
3364 VAMvModeIntensityCompensation = 4
3380 typedef struct _VAPictureParameterBufferVC1 {
3381 VASurfaceID forward_reference_picture;
3382 VASurfaceID backward_reference_picture;
3386 VASurfaceID inloop_decoded_picture;
3391 uint32_t pulldown : 1;
3392 uint32_t interlace : 1;
3393 uint32_t tfcntrflag : 1;
3394 uint32_t finterpflag : 1;
3396 uint32_t multires : 1;
3397 uint32_t overlap : 1;
3398 uint32_t syncmarker : 1;
3399 uint32_t rangered : 1;
3400 uint32_t max_b_frames : 3;
3401 uint32_t profile : 2;
3406 uint16_t coded_width;
3407 uint16_t coded_height;
3410 uint32_t broken_link : 1;
3411 uint32_t closed_entry : 1;
3412 uint32_t panscan_flag : 1;
3413 uint32_t loopfilter : 1;
3416 } entrypoint_fields;
3417 uint8_t conditional_overlap_flag;
3418 uint8_t fast_uvmc_flag;
3421 uint32_t luma_flag : 1;
3423 uint32_t chroma_flag : 1;
3424 uint32_t chroma : 3;
3427 } range_mapping_fields;
3429 uint8_t b_picture_fraction;
3431 uint8_t mb_mode_table;
3432 uint8_t range_reduction_frame;
3433 uint8_t rounding_control;
3434 uint8_t post_processing;
3435 uint8_t picture_resolution_index;
3441 uint32_t picture_type : 3;
3442 uint32_t frame_coding_mode : 3;
3443 uint32_t top_field_first : 1;
3444 uint32_t is_first_field : 1;
3445 uint32_t intensity_compensation : 1;
3451 uint32_t mv_type_mb : 1;
3452 uint32_t direct_mb : 1;
3453 uint32_t skip_mb : 1;
3454 uint32_t field_tx : 1;
3455 uint32_t forward_mb : 1;
3456 uint32_t ac_pred : 1;
3457 uint32_t overflags : 1;
3463 uint32_t bp_mv_type_mb : 1;
3464 uint32_t bp_direct_mb : 1;
3465 uint32_t bp_skip_mb : 1;
3466 uint32_t bp_field_tx : 1;
3467 uint32_t bp_forward_mb : 1;
3468 uint32_t bp_ac_pred : 1;
3469 uint32_t bp_overflags : 1;
3475 uint32_t reference_distance_flag : 1;
3476 uint32_t reference_distance : 5;
3477 uint32_t num_reference_pictures: 1;
3478 uint32_t reference_field_pic_indicator : 1;
3484 uint32_t mv_mode : 3;
3485 uint32_t mv_mode2 : 3;
3486 uint32_t mv_table : 3;
3487 uint32_t two_mv_block_pattern_table: 2;
3488 uint32_t four_mv_switch : 1;
3489 uint32_t four_mv_block_pattern_table : 2;
3490 uint32_t extended_mv_flag : 1;
3491 uint32_t extended_mv_range : 2;
3492 uint32_t extended_dmv_flag : 1;
3493 uint32_t extended_dmv_range : 2;
3499 uint32_t dquant : 2;
3500 uint32_t quantizer : 2;
3501 uint32_t half_qp : 1;
3502 uint32_t pic_quantizer_scale : 5;
3503 uint32_t pic_quantizer_type : 1;
3504 uint32_t dq_frame : 1;
3505 uint32_t dq_profile : 2;
3506 uint32_t dq_sb_edge : 2;
3507 uint32_t dq_db_edge : 2;
3508 uint32_t dq_binary_level : 1;
3509 uint32_t alt_pic_quantizer : 5;
3512 } pic_quantizer_fields;
3515 uint32_t variable_sized_transform_flag : 1;
3516 uint32_t mb_level_transform_type_flag : 1;
3517 uint32_t frame_level_transform_type : 2;
3518 uint32_t transform_ac_codingset_idx1 : 2;
3519 uint32_t transform_ac_codingset_idx2 : 2;
3520 uint32_t intra_transform_dc_table : 1;
3525 uint8_t luma_scale2;
3526 uint8_t luma_shift2;
3527 uint8_t intensity_compensation_field;
3530 uint32_t va_reserved[VA_PADDING_MEDIUM - 1];
3552 typedef struct _VASliceParameterBufferVC1 {
3553 uint32_t slice_data_size;
3554 uint32_t slice_data_offset;
3555 uint32_t slice_data_flag;
3556 uint32_t macroblock_offset;
3557 uint32_t slice_vertical_position;
3572 typedef struct _VAPictureH264 {
3573 VASurfaceID picture_id;
3576 int32_t TopFieldOrderCnt;
3577 int32_t BottomFieldOrderCnt;
3583 #define VA_PICTURE_H264_INVALID 0x00000001
3584 #define VA_PICTURE_H264_TOP_FIELD 0x00000002
3585 #define VA_PICTURE_H264_BOTTOM_FIELD 0x00000004
3586 #define VA_PICTURE_H264_SHORT_TERM_REFERENCE 0x00000008
3587 #define VA_PICTURE_H264_LONG_TERM_REFERENCE 0x00000010
3594 typedef struct _VAPictureParameterBufferH264 {
3595 VAPictureH264 CurrPic;
3596 VAPictureH264 ReferenceFrames[16];
3597 uint16_t picture_width_in_mbs_minus1;
3598 uint16_t picture_height_in_mbs_minus1;
3599 uint8_t bit_depth_luma_minus8;
3600 uint8_t bit_depth_chroma_minus8;
3601 uint8_t num_ref_frames;
3604 uint32_t chroma_format_idc : 2;
3605 uint32_t residual_colour_transform_flag : 1;
3606 uint32_t gaps_in_frame_num_value_allowed_flag : 1;
3607 uint32_t frame_mbs_only_flag : 1;
3608 uint32_t mb_adaptive_frame_field_flag : 1;
3609 uint32_t direct_8x8_inference_flag : 1;
3610 uint32_t MinLumaBiPredSize8x8 : 1;
3611 uint32_t log2_max_frame_num_minus4 : 4;
3612 uint32_t pic_order_cnt_type : 2;
3613 uint32_t log2_max_pic_order_cnt_lsb_minus4 : 4;
3614 uint32_t delta_pic_order_always_zero_flag : 1;
3619 va_deprecated uint8_t num_slice_groups_minus1;
3620 va_deprecated uint8_t slice_group_map_type;
3621 va_deprecated uint16_t slice_group_change_rate_minus1;
3622 int8_t pic_init_qp_minus26;
3623 int8_t pic_init_qs_minus26;
3624 int8_t chroma_qp_index_offset;
3625 int8_t second_chroma_qp_index_offset;
3628 uint32_t entropy_coding_mode_flag : 1;
3629 uint32_t weighted_pred_flag : 1;
3630 uint32_t weighted_bipred_idc : 2;
3631 uint32_t transform_8x8_mode_flag : 1;
3632 uint32_t field_pic_flag : 1;
3633 uint32_t constrained_intra_pred_flag : 1;
3634 uint32_t pic_order_present_flag : 1;
3635 uint32_t deblocking_filter_control_present_flag : 1;
3636 uint32_t redundant_pic_cnt_present_flag : 1;
3637 uint32_t reference_pic_flag : 1;
3644 uint32_t va_reserved[VA_PADDING_MEDIUM];
3648 typedef struct _VAIQMatrixBufferH264 {
3650 uint8_t ScalingList4x4[6][16];
3652 uint8_t ScalingList8x8[2][64];
3659 typedef struct _VASliceParameterBufferH264 {
3660 uint32_t slice_data_size;
3663 uint32_t slice_data_flag;
3675 uint16_t first_mb_in_slice;
3677 uint8_t direct_spatial_mv_pred_flag;
3692 uint8_t cabac_init_idc;
3693 int8_t slice_qp_delta;
3694 uint8_t disable_deblocking_filter_idc;
3695 int8_t slice_alpha_c0_offset_div2;
3696 int8_t slice_beta_offset_div2;
3697 VAPictureH264 RefPicList0[32];
3698 VAPictureH264 RefPicList1[32];
3699 uint8_t luma_log2_weight_denom;
3700 uint8_t chroma_log2_weight_denom;
3701 uint8_t luma_weight_l0_flag;
3702 int16_t luma_weight_l0[32];
3703 int16_t luma_offset_l0[32];
3704 uint8_t chroma_weight_l0_flag;
3705 int16_t chroma_weight_l0[32][2];
3706 int16_t chroma_offset_l0[32][2];
3707 uint8_t luma_weight_l1_flag;
3708 int16_t luma_weight_l1[32];
3709 int16_t luma_offset_l1[32];
3710 uint8_t chroma_weight_l1_flag;
3711 int16_t chroma_weight_l1[32][2];
3712 int16_t chroma_offset_l1[32][2];
3722 VAEncPictureTypeIntra = 0,
3723 VAEncPictureTypePredictive = 1,
3724 VAEncPictureTypeBidirectional = 2,
3734 typedef struct _VAEncSliceParameterBuffer {
3735 uint32_t start_row_number;
3736 uint32_t slice_height;
3739 uint32_t is_intra : 1;
3740 uint32_t disable_deblocking_filter_idc : 2;
3741 uint32_t uses_long_term_ref : 1;
3742 uint32_t is_long_term_ref : 1;
3756 typedef struct _VAEncSequenceParameterBufferH263 {
3757 uint32_t intra_period;
3758 uint32_t bits_per_second;
3759 uint32_t frame_rate;
3760 uint32_t initial_qp;
3765 } VAEncSequenceParameterBufferH263;
3767 typedef struct _VAEncPictureParameterBufferH263 {
3768 VASurfaceID reference_picture;
3769 VASurfaceID reconstructed_picture;
3771 uint16_t picture_width;
3772 uint16_t picture_height;
3773 VAEncPictureType picture_type;
3777 } VAEncPictureParameterBufferH263;
3783 typedef struct _VAEncSequenceParameterBufferMPEG4 {
3784 uint8_t profile_and_level_indication;
3785 uint32_t intra_period;
3786 uint32_t video_object_layer_width;
3787 uint32_t video_object_layer_height;
3788 uint32_t vop_time_increment_resolution;
3789 uint32_t fixed_vop_rate;
3790 uint32_t fixed_vop_time_increment;
3791 uint32_t bits_per_second;
3792 uint32_t frame_rate;
3793 uint32_t initial_qp;
3798 } VAEncSequenceParameterBufferMPEG4;
3800 typedef struct _VAEncPictureParameterBufferMPEG4 {
3801 VASurfaceID reference_picture;
3802 VASurfaceID reconstructed_picture;
3804 uint16_t picture_width;
3805 uint16_t picture_height;
3806 uint32_t modulo_time_base;
3807 uint32_t vop_time_increment;
3808 VAEncPictureType picture_type;
3812 } VAEncPictureParameterBufferMPEG4;
3838 unsigned int num_elements,
3859 unsigned int height,
3860 unsigned int *unit_size,
3861 unsigned int *pitch,
3874 unsigned int num_elements
3892 #define VA_CODED_BUF_STATUS_PICTURE_AVE_QP_MASK 0xff
3893 #define VA_CODED_BUF_STATUS_LARGE_SLICE_MASK 0x100
3894 #define VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK 0x200
3895 #define VA_CODED_BUF_STATUS_BITRATE_OVERFLOW 0x400
3896 #define VA_CODED_BUF_STATUS_BITRATE_HIGH 0x800
3904 #define VA_CODED_BUF_STATUS_FRAME_SIZE_OVERFLOW 0x1000
3908 #define VA_CODED_BUF_STATUS_BAD_BITSTREAM 0x8000
3909 #define VA_CODED_BUF_STATUS_AIR_MB_OVER_THRESHOLD 0xff0000
3919 #define VA_CODED_BUF_STATUS_NUMBER_PASSES_MASK 0xf000000
3928 #define VA_CODED_BUF_STATUS_SINGLE_NALU 0x10000000
3940 typedef struct _VACodedBufferSegment {
3986 #define VA_MAPBUFFER_FLAG_DEFAULT 0
3988 #define VA_MAPBUFFER_FLAG_READ 1
3990 #define VA_MAPBUFFER_FLAG_WRITE 2
3992 VAStatus vaMapBuffer2(
4133 #define VA_EXPORT_SURFACE_READ_ONLY 0x0001
4135 #define VA_EXPORT_SURFACE_WRITE_ONLY 0x0002
4137 #define VA_EXPORT_SURFACE_READ_WRITE 0x0003
4143 #define VA_EXPORT_SURFACE_SEPARATE_LAYERS 0x0004
4149 #define VA_EXPORT_SURFACE_COMPOSED_LAYERS 0x0008
4186 VASurfaceID surface_id,
4187 uint32_t mem_type, uint32_t flags,
4208 VASurfaceID render_target
4255 VAMFContextID mf_context,
4273 VASurfaceID render_target
4277 #define VA_TIMEOUT_INFINITE 0xFFFFFFFFFFFFFFFF
4301 VASurfaceID surface,
4306 VASurfaceRendering = 1,
4307 VASurfaceDisplaying = 2,
4311 VASurfaceSkipped = 8
4319 VASurfaceID render_target,
4320 VASurfaceStatus *status
4324 VADecodeSliceMissing = 0,
4325 VADecodeMBError = 1,
4327 } VADecodeErrorType;
4333 typedef struct _VASurfaceDecodeMBErrors {
4337 VADecodeErrorType decode_error_type;
4359 VASurfaceID surface,
4360 VAStatus error_status,
4411 #define VA_FOURCC(ch0, ch1, ch2, ch3) \
4412 ((unsigned long)(unsigned char) (ch0) | ((unsigned long)(unsigned char) (ch1) << 8) | \
4413 ((unsigned long)(unsigned char) (ch2) << 16) | ((unsigned long)(unsigned char) (ch3) << 24 ))
4420 #define VA_FOURCC_NV12 0x3231564E
4424 #define VA_FOURCC_NV21 0x3132564E
4430 #define VA_FOURCC_AI44 0x34344149
4436 #define VA_FOURCC_RGBA 0x41424752
4441 #define VA_FOURCC_RGBX 0x58424752
4446 #define VA_FOURCC_BGRA 0x41524742
4451 #define VA_FOURCC_BGRX 0x58524742
4456 #define VA_FOURCC_ARGB 0x42475241
4461 #define VA_FOURCC_XRGB 0x42475258
4466 #define VA_FOURCC_ABGR 0x52474241
4471 #define VA_FOURCC_XBGR 0x52474258
4477 #define VA_FOURCC_UYVY 0x59565955
4482 #define VA_FOURCC_YUY2 0x32595559
4487 #define VA_FOURCC_AYUV 0x56555941
4492 #define VA_FOURCC_NV11 0x3131564e
4497 #define VA_FOURCC_YV12 0x32315659
4502 #define VA_FOURCC_P208 0x38303250
4507 #define VA_FOURCC_I420 0x30323449
4512 #define VA_FOURCC_YV24 0x34325659
4517 #define VA_FOURCC_YV32 0x32335659
4520 #define VA_FOURCC_Y800 0x30303859
4526 #define VA_FOURCC_IMC3 0x33434D49
4531 #define VA_FOURCC_411P 0x50313134
4537 #define VA_FOURCC_411R 0x52313134
4542 #define VA_FOURCC_422H 0x48323234
4547 #define VA_FOURCC_422V 0x56323234
4552 #define VA_FOURCC_444P 0x50343434
4558 #define VA_FOURCC_RGBP 0x50424752
4563 #define VA_FOURCC_BGRP 0x50524742
4569 #define VA_FOURCC_RGB565 0x36314752
4575 #define VA_FOURCC_BGR565 0x36314742
4582 #define VA_FOURCC_Y210 0x30313259
4588 #define VA_FOURCC_Y212 0x32313259
4594 #define VA_FOURCC_Y216 0x36313259
4600 #define VA_FOURCC_Y410 0x30313459
4606 #define VA_FOURCC_Y412 0x32313459
4612 #define VA_FOURCC_Y416 0x36313459
4618 #define VA_FOURCC_YV16 0x36315659
4624 #define VA_FOURCC_P010 0x30313050
4630 #define VA_FOURCC_P012 0x32313050
4636 #define VA_FOURCC_P016 0x36313050
4643 #define VA_FOURCC_I010 0x30313049
4649 #define VA_FOURCC_IYUV 0x56555949
4653 #define VA_FOURCC_A2R10G10B10 0x30335241
4657 #define VA_FOURCC_A2B10G10R10 0x30334241
4661 #define VA_FOURCC_X2R10G10B10 0x30335258
4665 #define VA_FOURCC_X2B10G10R10 0x30334258
4671 #define VA_FOURCC_Y8 0x20203859
4676 #define VA_FOURCC_Y16 0x20363159
4681 #define VA_FOURCC_VYUY 0x59555956
4686 #define VA_FOURCC_YVYU 0x55595659
4691 #define VA_FOURCC_ARGB64 0x34475241
4696 #define VA_FOURCC_ABGR64 0x34474241
4701 #define VA_FOURCC_XYUV 0x56555958
4706 #define VA_FOURCC_Q416 0x36313451
4709 #define VA_LSB_FIRST 1
4710 #define VA_MSB_FIRST 2
4712 typedef struct _VAImageFormat {
4714 uint32_t byte_order;
4715 uint32_t bits_per_pixel;
4719 uint32_t green_mask;
4721 uint32_t alpha_mask;
4729 typedef struct _VAImage {
4731 VAImageFormat format;
4743 uint32_t num_planes;
4748 uint32_t pitches[3];
4753 uint32_t offsets[3];
4756 int32_t num_palette_entries;
4761 int32_t entry_bytes;
4766 int8_t component_order[4];
4785 VAImageFormat *format_list,
4798 VAImageFormat *format,
4812 VAStatus vaSetImagePalette(
4820 unsigned char *palette
4829 VASurfaceID surface,
4833 unsigned int height,
4845 VASurfaceID surface,
4849 unsigned int src_width,
4850 unsigned int src_height,
4853 unsigned int dest_width,
4854 unsigned int dest_height
4890 VASurfaceID surface,
4909 #define VA_SUBPICTURE_CHROMA_KEYING 0x0001
4910 #define VA_SUBPICTURE_GLOBAL_ALPHA 0x0002
4911 #define VA_SUBPICTURE_DESTINATION_IS_SCREEN_COORD 0x0004
4926 VAImageFormat *format_list,
4927 unsigned int *flags,
4928 unsigned int *num_formats
4970 unsigned int chromakey_min,
4971 unsigned int chromakey_max,
4972 unsigned int chromakey_mask
4996 VASurfaceID *target_surfaces,
5001 uint16_t src_height,
5004 uint16_t dest_width,
5005 uint16_t dest_height,
5019 VASurfaceID *target_surfaces,
5042 VADISPLAYATTRIB_BLE_OFF = 0x00,
5043 VADISPLAYATTRIB_BLE_LOW,
5044 VADISPLAYATTRIB_BLE_MEDIUM,
5045 VADISPLAYATTRIB_BLE_HIGH,
5046 VADISPLAYATTRIB_BLE_NONE,
5050 #define VA_ROTATION_NONE 0x00000000
5051 #define VA_ROTATION_90 0x00000001
5052 #define VA_ROTATION_180 0x00000002
5053 #define VA_ROTATION_270 0x00000003
5065 #define VA_MIRROR_NONE 0x00000000
5067 #define VA_MIRROR_HORIZONTAL 0x00000001
5069 #define VA_MIRROR_VERTICAL 0x00000002
5073 #define VA_OOL_DEBLOCKING_FALSE 0x00000000
5074 #define VA_OOL_DEBLOCKING_TRUE 0x00000001
5077 #define VA_RENDER_MODE_UNDEFINED 0
5078 #define VA_RENDER_MODE_LOCAL_OVERLAY 1
5079 #define VA_RENDER_MODE_LOCAL_GPU 2
5080 #define VA_RENDER_MODE_EXTERNAL_OVERLAY 4
5081 #define VA_RENDER_MODE_EXTERNAL_GPU 8
5084 #define VA_RENDER_DEVICE_UNDEFINED 0
5085 #define VA_RENDER_DEVICE_LOCAL 1
5086 #define VA_RENDER_DEVICE_EXTERNAL 2
5101 typedef union _VADisplayAttribValSubDevice {
5131 VADisplayAttribBrightness = 0,
5132 VADisplayAttribContrast = 1,
5133 VADisplayAttribHue = 2,
5134 VADisplayAttribSaturation = 3,
5140 VADisplayAttribBackgroundColor = 4,
5152 VADisplayAttribDirectSurface = 5,
5153 VADisplayAttribRotation = 6,
5154 VADisplayAttribOutofLoopDeblock = 7,
5157 VADisplayAttribBLEBlackMode = 8,
5158 VADisplayAttribBLEWhiteMode = 9,
5159 VADisplayAttribBlueStretch = 10,
5160 VADisplayAttribSkinColorCorrection = 11,
5165 VADisplayAttribCSCMatrix = 12,
5173 VADisplayAttribBlendColor = 13,
5178 VADisplayAttribOverlayAutoPaintColorKey = 14,
5183 VADisplayAttribOverlayColorKey = 15,
5189 VADisplayAttribRenderMode = 16,
5195 VADisplayAttribRenderDevice = 17,
5199 VADisplayAttribRenderRect = 18,
5203 VADisplayAttribSubDevice = 19,
5209 VADisplayAttribCopy = 20,
5214 VADisplayPCIID = 21,
5218 #define VA_DISPLAY_ATTRIB_NOT_SUPPORTED 0x0000
5219 #define VA_DISPLAY_ATTRIB_GETTABLE 0x0001
5220 #define VA_DISPLAY_ATTRIB_SETTABLE 0x0002
5222 typedef struct _VADisplayAttribute {
5232 } VADisplayAttribute;
5247 VADisplayAttribute *attr_list,
5259 VADisplayAttribute *attr_list,
5271 VADisplayAttribute *attr_list,
5287 typedef struct _VAPictureHEVC {
5305 #define VA_PICTURE_HEVC_INVALID 0x00000001
5309 #define VA_PICTURE_HEVC_FIELD_PIC 0x00000002
5314 #define VA_PICTURE_HEVC_BOTTOM_FIELD 0x00000004
5316 #define VA_PICTURE_HEVC_LONG_TERM_REFERENCE 0x00000008
5331 #define VA_PICTURE_HEVC_RPS_ST_CURR_BEFORE 0x00000010
5336 #define VA_PICTURE_HEVC_RPS_ST_CURR_AFTER 0x00000020
5341 #define VA_PICTURE_HEVC_RPS_LT_CURR 0x00000040
5353 typedef struct _VAPictureVVC {
5370 #define VA_PICTURE_VVC_INVALID 0x00000001
5372 #define VA_PICTURE_VVC_LONG_TERM_REFERENCE 0x00000002
5378 #define VA_PICTURE_VVC_UNAVAILABLE_REFERENCE 0x00000004
5381 VACopyObjectSurface = 0,
5382 VACopyObjectBuffer = 1,
5385 typedef struct _VACopyObject {
5386 VACopyObjectType obj_type;
5388 VASurfaceID surface_id;
5392 uint32_t va_reserved[VA_PADDING_MEDIUM];
5395 typedef union _VACopyOption {
5398 uint32_t va_copy_sync : 2;
5400 uint32_t va_copy_mode : 4;
5401 uint32_t reserved : 26;
5418 VAStatus
vaCopy(
VADisplay dpy, VACopyObject * dst, VACopyObject * src, VACopyOption option);
VAStatus vaTerminate(VADisplay dpy)
VAMvModeVC1
Definition: va.h:3359
VAEncMiscParameterType
Definition: va.h:2379
VADisplayAttribBLEMode
Definition: va.h:5041
VAStatus vaDestroySurfaces(VADisplay dpy, VASurfaceID *surfaces, int num_surfaces)
VAGenericID VASubpictureID
Definition: va.h:4901
int vaMaxNumConfigAttributes(VADisplay dpy)
const char * vaErrorStr(VAStatus error_status)
VAStatus vaQueryConfigProfiles(VADisplay dpy, VAProfile *profile_list, int *num_profiles)
VAGenericValueType
Generic value types.
Definition: va.h:1651
VAStatus vaDestroyContext(VADisplay dpy, VAContextID context)
VABufferType
Definition: va.h:2044
VAStatus vaInitialize(VADisplay dpy, int *major_version, int *minor_version)
void(* VAMessageCallback)(void *user_context, const char *message)
Definition: va.h:430
VAStatus vaMFReleaseContext(VADisplay dpy, VAMFContextID mf_context, VAContextID context)
VAConfigAttribType
Definition: va.h:619
VAStatus vaSetDriverName(VADisplay dpy, char *driver_name)
VAStatus vaAcquireBufferHandle(VADisplay dpy, VABufferID buf_id, VABufferInfo *buf_info)
Acquires buffer handle for external API usage.
void(* VAGenericFunc)(void)
Generic function type.
Definition: va.h:1659
VAStatus vaSetSubpictureChromakey(VADisplay dpy, VASubpictureID subpicture, unsigned int chromakey_min, unsigned int chromakey_max, unsigned int chromakey_mask)
VAStatus vaGetImage(VADisplay dpy, VASurfaceID surface, int x, int y, unsigned int width, unsigned int height, VAImageID image)
VAStatus vaQuerySurfaceError(VADisplay dpy, VASurfaceID surface, VAStatus error_status, void **error_info)
VAStatus vaRenderPicture(VADisplay dpy, VAContextID context, VABufferID *buffers, int num_buffers)
VAStatus vaExportSurfaceHandle(VADisplay dpy, VASurfaceID surface_id, uint32_t mem_type, uint32_t flags, void *descriptor)
Export a handle to a surface for use with an external API.
VAStatus vaSetSubpictureImage(VADisplay dpy, VASubpictureID subpicture, VAImageID image)
int vaMaxNumProfiles(VADisplay dpy)
VAGenericID VAContextID
Definition: va.h:1643
VASurfaceAttribType
Surface attribute types.
Definition: va.h:1689
int vaMaxNumEntrypoints(VADisplay dpy)
VAStatus vaQueryConfigAttributes(VADisplay dpy, VAConfigID config_id, VAProfile *profile, VAEntrypoint *entrypoint, VAConfigAttrib *attrib_list, int *num_attribs)
VAStatus vaQuerySurfaceStatus(VADisplay dpy, VASurfaceID render_target, VASurfaceStatus *status)
VAEntrypoint
Definition: va.h:552
const char * vaQueryVendorString(VADisplay dpy)
VAStatus vaDestroyConfig(VADisplay dpy, VAConfigID config_id)
VAStatus vaQuerySurfaceAttributes(VADisplay dpy, VAConfigID config, VASurfaceAttrib *attrib_list, unsigned int *num_attribs)
Queries surface attributes for the supplied config.
VAStatus vaAssociateSubpicture(VADisplay dpy, VASubpictureID subpicture, VASurfaceID *target_surfaces, int num_surfaces, int16_t src_x, int16_t src_y, uint16_t src_width, uint16_t src_height, int16_t dest_x, int16_t dest_y, uint16_t dest_width, uint16_t dest_height, uint32_t flags)
VAStatus vaCreateSubpicture(VADisplay dpy, VAImageID image, VASubpictureID *subpicture)
VAMessageCallback vaSetErrorCallback(VADisplay dpy, VAMessageCallback callback, void *user_context)
VAStatus vaCreateContext(VADisplay dpy, VAConfigID config_id, int picture_width, int picture_height, int flag, VASurfaceID *render_targets, int num_render_targets, VAContextID *context)
VAStatus vaQueryConfigEntrypoints(VADisplay dpy, VAProfile profile, VAEntrypoint *entrypoint_list, int *num_entrypoints)
void * VANativeDisplay
Definition: va.h:451
VAStatus vaSetSubpictureGlobalAlpha(VADisplay dpy, VASubpictureID subpicture, float global_alpha)
VAStatus vaCreateImage(VADisplay dpy, VAImageFormat *format, int width, int height, VAImage *image)
VAEncPackedHeaderType
Packed header type.
Definition: va.h:2419
VAStatus vaSyncSurface2(VADisplay dpy, VASurfaceID surface, uint64_t timeout_ns)
Synchronizes pending operations associated with the supplied surface.
VAStatus vaCreateConfig(VADisplay dpy, VAProfile profile, VAEntrypoint entrypoint, VAConfigAttrib *attrib_list, int num_attribs, VAConfigID *config_id)
VAStatus vaSyncSurface(VADisplay dpy, VASurfaceID render_target)
VAStatus vaDestroyBuffer(VADisplay dpy, VABufferID buffer_id)
VAProfile
Definition: va.h:502
VAStatus vaQuerySubpictureFormats(VADisplay dpy, VAImageFormat *format_list, unsigned int *flags, unsigned int *num_formats)
VAStatus vaDestroySubpicture(VADisplay dpy, VASubpictureID subpicture)
#define VA_PADDING_LOW
Definition: va.h:360
VAStatus vaDeriveImage(VADisplay dpy, VASurfaceID surface, VAImage *image)
VAStatus vaMFAddContext(VADisplay dpy, VAMFContextID mf_context, VAContextID context)
unsigned int VAGenericID
Definition: va.h:1580
VAStatus vaCreateBuffer(VADisplay dpy, VAContextID context, VABufferType type, unsigned int size, unsigned int num_elements, void *data, VABufferID *buf_id)
VAStatus vaDeassociateSubpicture(VADisplay dpy, VASubpictureID subpicture, VASurfaceID *target_surfaces, int num_surfaces)
VAStatus vaDestroyImage(VADisplay dpy, VAImageID image)
VAStatus vaPutImage(VADisplay dpy, VASurfaceID surface, VAImageID image, int src_x, int src_y, unsigned int src_width, unsigned int src_height, int dest_x, int dest_y, unsigned int dest_width, unsigned int dest_height)
VAStatus vaCreateSurfaces(VADisplay dpy, unsigned int format, unsigned int width, unsigned int height, VASurfaceID *surfaces, unsigned int num_surfaces, VASurfaceAttrib *attrib_list, unsigned int num_attribs)
Creates an array of surfaces.
VAStatus vaSyncBuffer(VADisplay dpy, VABufferID buf_id, uint64_t timeout_ns)
Synchronizes pending operations associated with the supplied buffer.
VAStatus vaQueryImageFormats(VADisplay dpy, VAImageFormat *format_list, int *num_formats)
VAPrivFunc vaGetLibFunc(VADisplay dpy, const char *func)
VAStatus vaBeginPicture(VADisplay dpy, VAContextID context, VASurfaceID render_target)
VAStatus vaBufferSetNumElements(VADisplay dpy, VABufferID buf_id, unsigned int num_elements)
VAGenericID VABufferID
Definition: va.h:2042
int vaMaxNumImageFormats(VADisplay dpy)
VAStatus vaCreateMFContext(VADisplay dpy, VAMFContextID *mf_context)
void * VADisplay
Definition: va.h:260
VAStatus vaCreateBuffer2(VADisplay dpy, VAContextID context, VABufferType type, unsigned int width, unsigned int height, unsigned int *unit_size, unsigned int *pitch, VABufferID *buf_id)
VAStatus vaReleaseBufferHandle(VADisplay dpy, VABufferID buf_id)
Releases buffer after usage from external API.
VAStatus vaMFSubmit(VADisplay dpy, VAMFContextID mf_context, VAContextID *contexts, int num_contexts)
VAStatus vaQueryProcessingRate(VADisplay dpy, VAConfigID config, VAProcessingRateParameter *proc_buf, unsigned int *processing_rate)
Queries processing rate for the supplied config.
VAStatus vaGetConfigAttributes(VADisplay dpy, VAProfile profile, VAEntrypoint entrypoint, VAConfigAttrib *attrib_list, int num_attribs)
VAStatus vaUnmapBuffer(VADisplay dpy, VABufferID buf_id)
VAMessageCallback vaSetInfoCallback(VADisplay dpy, VAMessageCallback callback, void *user_context)
VAStatus vaMapBuffer(VADisplay dpy, VABufferID buf_id, void **pbuf)
int vaMaxNumSubpictureFormats(VADisplay dpy)
VAStatus vaEndPicture(VADisplay dpy, VAContextID context)
@ VAEncMiscParameterTypeExtensionData
encode extension buffer, ect. MPEG2 Sequence extenstion data
Definition: va.h:2415
@ VAEncMiscParameterTypeParallelBRC
Buffer type used for parallel BRC parameters.
Definition: va.h:2405
@ VAEncMiscParameterTypeRIR
Buffer type used for Rolling intra refresh.
Definition: va.h:2390
@ VAEncMiscParameterTypeCustomRoundingControl
Buffer type used for encoder rounding offset parameters.
Definition: va.h:2411
@ VAEncMiscParameterTypeHRD
Buffer type used for HRD parameters.
Definition: va.h:2387
@ VAEncMiscParameterTypeROI
Buffer type used for region-of-interest (ROI) parameters.
Definition: va.h:2397
@ VAEncMiscParameterTypeSubMbPartPel
Set MB partion mode mask and Half-pel/Quant-pel motion search.
Definition: va.h:2407
@ VAEncMiscParameterTypeEncQuality
set encode quality tuning
Definition: va.h:2409
@ VAEncMiscParameterTypeDirtyRect
Buffer type used for dirty region-of-interest (ROI) parameters.
Definition: va.h:2403
@ VAEncMiscParameterTypeQuantization
Buffer type used for quantization parameters, it's per-sequence parameter.
Definition: va.h:2392
@ VAEncMiscParameterTypeTemporalLayerStructure
Buffer type used for temporal layer structure.
Definition: va.h:2401
@ VAEncMiscParameterTypeMaxFrameSize
Buffer type used to express a maximum frame size (in bits).
Definition: va.h:2385
@ VAEncMiscParameterTypeMultiPassFrameSize
Buffer type used to express a maximum frame size (in bytes) settings for multiple pass.
Definition: va.h:2399
@ VAEncMiscParameterTypeSkipFrame
Buffer type used for sending skip frame parameters to the encoder's rate control, when the user has e...
Definition: va.h:2395
@ VAEncMiscParameterTypeFEIFrameControl
Buffer type used for FEI input frame level parameters.
Definition: va.h:2413
@ VAGenericValueTypeInteger
Definition: va.h:1652
@ VAGenericValueTypeFloat
Definition: va.h:1653
@ VAGenericValueTypePointer
Definition: va.h:1654
@ VAGenericValueTypeFunc
Definition: va.h:1655
@ VAProcPipelineParameterBufferType
Video processing pipeline parameter buffer.
Definition: va.h:2086
@ VASubsetsParameterBufferType
HEVC Decoding Subset Parameter buffer type.
Definition: va.h:2146
@ VAContextParameterUpdateBufferType
adjust context parameters dynamically
Definition: va.h:2152
@ VASubPicBufferType
VVC SubPic data buffer.
Definition: va.h:2195
@ VAEncQPBufferType
Encoding QP buffer.
Definition: va.h:2078
@ VAEncMacroblockDisableSkipMapBufferType
Definition: va.h:2121
@ VATileBufferType
VVC Tile Dimension data buffer.
Definition: va.h:2201
@ VAProtectedSessionExecuteBufferType
Protected session execution buffer type.
Definition: va.h:2159
@ VAEncFEICTBCmdBufferType
HEVC FEI CTB level cmd buffer it is CTB level information for future usage.
Definition: va.h:2126
@ VAProcFilterParameterBufferType
Video filter parameter buffer.
Definition: va.h:2099
@ VAStatsStatisticsBufferType
Statistics output for VAEntrypointStats progressive and top field of interlaced case.
Definition: va.h:2110
@ VASliceStructBufferType
VVC Slice Structure data buffer.
Definition: va.h:2207
@ VAAlfBufferType
VVC ALF data buffer.
Definition: va.h:2183
@ VALmcsBufferType
VVC LMCS data buffer.
Definition: va.h:2189
@ VAStatsStatisticsBottomFieldBufferType
Statistics output for VAEntrypointStats bottom field of interlaced case.
Definition: va.h:2112
@ VAEncFEICURecordBufferType
HEVC FEI CU level data buffer it's CTB level information for future usage.
Definition: va.h:2131
@ VAEncryptionParameterBufferType
Encryption parameters buffer for protected content session.
Definition: va.h:2165
@ VADecodeStreamoutBufferType
Definition: va.h:2134
@ VAEncDeltaQpPerBlockBufferType
Encoding delta QP per block buffer.
Definition: va.h:2176
@ VAEncFEIMVBufferType
FEI specific buffer types.
Definition: va.h:2103
@ VAConfigAttribProcessingRate
Processing rate reporting attribute. Read-only.
Definition: va.h:834
@ VAConfigAttribMaxPictureHeight
Maximum picture height. Read-only.
Definition: va.h:764
@ VAConfigAttribProtectedContentCipherMode
Cipher mode of the protected content session.
Definition: va.h:977
@ VAConfigAttribEncMacroblockInfo
Macroblock information. Read-only.
Definition: va.h:750
@ VAConfigAttribFrameSizeToleranceSupport
frame size tolerance support it indicates the tolerance of frame size
Definition: va.h:874
@ VAConfigAttribContextPriority
priority setting for the context. Read-Write attribute value is VAConfigAttribValContextPriority this...
Definition: va.h:945
@ VAConfigAttribProtectedContentUsage
Special usage attribute of the protected session.
Definition: va.h:991
@ VAConfigAttribEncQuantization
Encoding quantization attribute. Read-only.
Definition: va.h:788
@ VAConfigAttribProtectedContentCipherSampleType
Decryption sample type of the protected content session.
Definition: va.h:984
@ VAConfigAttribEncPerBlockControl
Settings per block attribute for Encoding. Read-only.
Definition: va.h:1043
@ VAConfigAttribEncMaxTileRows
Maximum number of tile rows. Read-only.
Definition: va.h:1050
@ VAConfigAttribTEETypeClient
TEE type client is a specific module supporting specific functions in TEE. Read-only.
Definition: va.h:956
@ VAConfigAttribMaxFrameSize
encode max frame size attribute. Read-only attribute value VAConfigAttribValMaxFrameSize represent ma...
Definition: va.h:924
@ VAConfigAttribDecJPEG
JPEG decoding attribute. Read-only.
Definition: va.h:648
@ VAConfigAttribEncMaxSlices
Maximum number of slices per frame. Read-only.
Definition: va.h:721
@ VAConfigAttribDecSliceMode
Slice Decoding mode. Read/write.
Definition: va.h:640
@ VAConfigAttribCustomRoundingControl
whether accept rouding setting from application. Read-only. This attribute is for encode quality,...
Definition: va.h:913
@ VAConfigAttribEncSkipFrame
Encoding skip frame attribute. Read-only.
Definition: va.h:804
@ VAConfigAttribEncHEVCFeatures
HEVC/H.265 encoding features. Read-only.
Definition: va.h:1002
@ VAConfigAttribEncAV1Ext2
AV1 encoding attribute extend2. Read-only.
Definition: va.h:1036
@ VAConfigAttribEncQualityRange
Encoding quality range attribute. Read-only.
Definition: va.h:781
@ VAConfigAttribEncDynamicScaling
Dynamic Scaling Attribute. Read-only.
Definition: va.h:869
@ VAConfigAttribEncTileSupport
Tile Support Attribute. Read-only.
Definition: va.h:907
@ VAConfigAttribEncROI
Encoding region-of-interest (ROI) attribute. Read-only.
Definition: va.h:815
@ VAConfigAttribFEIMVPredictors
Maximum number of FEI MV predictors. Read-only.
Definition: va.h:891
@ VAConfigAttribEncAV1
AV1 encoding attribute. Read-only.
Definition: va.h:1020
@ VAConfigAttribEncSliceStructure
Slice structure. Read-only.
Definition: va.h:738
@ VAConfigAttribStats
Statistics attribute. Read-only.
Definition: va.h:899
@ VAConfigAttribEncMaxRefFrames
Maximum number of reference frames. Read-only.
Definition: va.h:714
@ VAConfigAttribQPBlockSize
Encoding QP info block size attribute. Read-only. This attribute conveys the block sizes that underly...
Definition: va.h:919
@ VAConfigAttribEncRateControlExt
Encoding extended rate control attribute. Read-only.
Definition: va.h:823
@ VAConfigAttribEncHEVCBlockSizes
HEVC/H.265 encoding block sizes. Read-only.
Definition: va.h:1012
@ VAConfigAttribMaxPictureWidth
Maximum picture width. Read-only.
Definition: va.h:757
@ VAConfigAttribEncIntraRefresh
Encoding intra refresh attribute. Read-only.
Definition: va.h:796
@ VAConfigAttribEncMaxTileCols
Maximum number of tile cols. Read-only.
Definition: va.h:1057
@ VAConfigAttribDecProcessing
Decode processing support. Read/write.
Definition: va.h:681
@ VAConfigAttribPredictionDirection
inter frame prediction directrion attribute. Read-only. this attribute conveys the prediction directi...
Definition: va.h:936
@ VAConfigAttribTEEType
TEE could be any HW secure device. Read-only.
Definition: va.h:954
@ VAConfigAttribFEIFunctionType
Encode function type for FEI.
Definition: va.h:883
@ VAConfigAttribDecAV1Features
AV1 decoding features. Read-only.
Definition: va.h:952
@ VAConfigAttribEncParallelRateControl
Parallel Rate Control (hierachical B) attribute. Read-only.
Definition: va.h:860
@ VAConfigAttribEncJPEG
JPEG encoding attribute. Read-only.
Definition: va.h:772
@ VAConfigAttribEncInterlaced
Interlaced mode. Read/write.
Definition: va.h:703
@ VAConfigAttribProtectedContentCipherBlockSize
Cipher block size of the protected content session.
Definition: va.h:970
@ VAConfigAttribMultipleFrame
combined submission of multiple frames from different streams, it is optimization for different HW im...
Definition: va.h:940
@ VAConfigAttribEncVP9
VP9 encoding attribute. Read-only.
Definition: va.h:1065
@ VAConfigAttribEncAV1Ext1
AV1 encoding attribute extend1. Read-only.
Definition: va.h:1028
@ VAConfigAttribEncPackedHeaders
Packed headers mode. Read/write.
Definition: va.h:694
@ VAConfigAttribEncDirtyRect
Encoding dirty rectangle. Read-only.
Definition: va.h:848
@ VAConfigAttribProtectedContentCipherAlgorithm
Cipher algorithm of the protected content session.
Definition: va.h:963
@ VASurfaceAttribMaxWidth
Maximal width in pixels (int, read-only).
Definition: va.h:1704
@ VASurfaceAttribUsageHint
Surface usage hint, gives the driver a hint of intended usage to optimize allocation (e....
Definition: va.h:1720
@ VASurfaceAttribAlignmentSize
width and height log2 aligment in pixels (int, read-only)
Definition: va.h:1736
@ VASurfaceAttribMemoryType
Surface memory type expressed in bit fields (int, read/write).
Definition: va.h:1710
@ VASurfaceAttribMaxHeight
Maximal height in pixels (int, read-only).
Definition: va.h:1708
@ VASurfaceAttribDRMFormatModifiers
List of possible DRM format modifiers (pointer, write).
Definition: va.h:1727
@ VASurfaceAttribMinWidth
Minimal width in pixels (int, read-only).
Definition: va.h:1702
@ VASurfaceAttribExternalBufferDescriptor
External buffer descriptor (pointer, write).
Definition: va.h:1717
@ VASurfaceAttribPixelFormat
Pixel format as a FOURCC (int, read/write).
Definition: va.h:1700
@ VASurfaceAttribCount
Number of surface attributes.
Definition: va.h:1738
@ VASurfaceAttribMinHeight
Minimal height in pixels (int, read-only).
Definition: va.h:1706
@ VAEntrypointFEI
VAEntrypointFEI.
Definition: va.h:586
@ VAEntrypointProtectedTEEComm
VAEntrypointProtectedTEEComm.
Definition: va.h:609
@ VAEntrypointVideoProc
Definition: va.h:569
@ VAEntrypointStats
VAEntrypointStats.
Definition: va.h:603
@ VAEntrypointProtectedContent
VAEntrypointProtectedContent.
Definition: va.h:615
@ VAEncPackedHeaderPicture
Packed picture header.
Definition: va.h:2423
@ VAEncPackedHeaderRawData
Packed raw header.
Definition: va.h:2434
@ VAEncPackedHeaderSequence
Packed sequence header.
Definition: va.h:2421
@ VAEncPackedHeaderSlice
Packed slice header.
Definition: va.h:2425
@ VAProfileProtected
Profile ID used for protected video playback.
Definition: va.h:541
@ VAProfileNone
Profile ID used for video processing.
Definition: va.h:504
VA buffer information.
Definition: va.h:4024
uint32_t mem_type
Buffer memory type (See VASurfaceAttribMemoryType).
Definition: va.h:4037
uint32_t type
Buffer type (See VABufferType).
Definition: va.h:4028
size_t mem_size
Size of the underlying buffer.
Definition: va.h:4039
uintptr_t handle
Buffer handle.
Definition: va.h:4026
Coded buffer segment.
Definition: va.h:3940
uint32_t bit_offset
Bit offset into the data buffer where the video data starts.
Definition: va.h:3946
uint32_t status
Status set by the driver. See VA_CODED_BUF_STATUS_*.
Definition: va.h:3948
void * next
Pointer to the next VACodedBufferSegment element, or NULL if there is none.
Definition: va.h:3957
uint32_t size
Size of the data buffer in this segment (in bytes).
Definition: va.h:3944
void * buf
Pointer to the start of the data buffer.
Definition: va.h:3952
uint32_t reserved
Reserved for future use.
Definition: va.h:3950
update the context parameter this structure is used to update context parameters, such as priority of...
Definition: va.h:2217
uint32_t context_priority_update
indicate whether context priority changed
Definition: va.h:2221
VAConfigAttribValContextPriority context_priority
task/context priority
Definition: va.h:2228
uint32_t reserved
Reserved bits for future use, must be zero.
Definition: va.h:2223
Defines a maximum frame size (in bits).
Definition: va.h:2753
uint32_t max_frame_size
Maximum size of a frame (in bits).
Definition: va.h:2758
Maximum frame size (in bytes) settings for multiple pass.
Definition: va.h:2773
uint8_t * delta_qp
delta QP list for every pass
Definition: va.h:2784
uint32_t reserved
Reserved bytes for future use, must be zero.
Definition: va.h:2780
uint8_t num_passes
number of passes, every pass has different QP, currently AVC encoder can support up to 4 passes
Definition: va.h:2782
uint32_t max_frame_size
Maximum size of a frame (in byte)
Definition: va.h:2778
Encoding quality level.
Definition: va.h:2801
uint32_t quality_level
Encoding quality level setting. When set to 0, default quality level is used.
Definition: va.h:2805
Custom Encoder Rounding Offset Control. Application may use this structure to set customized rounding...
Definition: va.h:3040
uint32_t enable_custom_rouding_intra
Enable customized rounding offset for intra blocks. If 0, default value would be taken by driver for ...
Definition: va.h:3047
uint32_t rounding_offset_intra
Intra rounding offset Ignored if enable_custom_rouding_intra equals 0.
Definition: va.h:3052
uint32_t enable_custom_rounding_inter
Enable customized rounding offset for inter blocks. If 0, default value would be taken by driver for ...
Definition: va.h:3058
uint32_t rounding_offset_inter
Inter rounding offset Ignored if enable_custom_rouding_inter equals 0.
Definition: va.h:3063
uint32_t PanicModeDisable
Definition: va.h:3014
uint32_t UltraHMEDisable
Definition: va.h:3010
uint32_t HMEDisable
Definition: va.h:3006
uint32_t FTQSkipThresholdLUTInput
Definition: va.h:2983
uint32_t HMEMVCostScalingFactor
Definition: va.h:3004
uint32_t SuperHMEDisable
Definition: va.h:3008
uint32_t FTQOverride
Definition: va.h:2978
uint32_t ForceRepartitionCheck
Definition: va.h:3019
uint32_t directBiasAdjustmentEnable
Definition: va.h:2990
uint32_t NonFTQSkipThresholdLUTInput
Definition: va.h:2986
uint32_t useRawPicForRef
Definition: va.h:2972
uint32_t FTQEnable
Definition: va.h:2980
uint32_t skipCheckDisable
Definition: va.h:2975
uint32_t globalMotionBiasAdjustmentEnable
Definition: va.h:2997
uint32_t reserved
Definition: va.h:2643
uint32_t temporal_id
Definition: va.h:2641
uint32_t framerate
Definition: va.h:2637
uint32_t buffer_size
Definition: va.h:2738
uint32_t initial_buffer_fullness
Definition: va.h:2732
Attribute value for VAConfigAttribEncParallelRateControl.
Definition: va.h:2954
uint32_t num_layers
Definition: va.h:2956
uint32_t * num_b_in_gop
Definition: va.h:2961
Quantization settings for encoding.
Definition: va.h:2817
Rate control parameters.
Definition: va.h:2500
uint32_t bits_per_second
Definition: va.h:2502
uint32_t basic_unit_size
Definition: va.h:2530
uint32_t reserved
Definition: va.h:2577
uint32_t frame_tolerance_mode
Definition: va.h:2575
uint32_t mb_rate_control
Definition: va.h:2550
uint32_t temporal_id
Definition: va.h:2552
uint32_t disable_bit_stuffing
Definition: va.h:2542
uint32_t cfs_I_frames
Definition: va.h:2554
uint32_t ICQ_quality_factor
Definition: va.h:2586
uint32_t max_qp
Definition: va.h:2592
uint32_t window_size
Definition: va.h:2514
uint32_t enable_parallel_brc
Definition: va.h:2559
uint32_t disable_frame_skip
Definition: va.h:2540
uint32_t reset
Definition: va.h:2538
uint32_t target_frame_size
Definition: va.h:2606
uint32_t initial_qp
Definition: va.h:2519
uint32_t min_qp
Definition: va.h:2525
uint32_t target_percentage
Definition: va.h:2508
uint32_t quality_factor
Definition: va.h:2597
Encoding skip frame.
Definition: va.h:2845
uint32_t size_skip_frames
When skip_frame_flag = 1, the size of the skipped frames in bits. When skip_frame_flag = 2,...
Definition: va.h:2857
uint8_t skip_frame_flag
Indicates skip frames as below. 0: Encode as normal, no skip. 1: One or more frames were skipped prio...
Definition: va.h:2852
uint8_t num_skip_frames
The number of frames skipped prior to the current frame. Valid when skip_frame_flag = 1.
Definition: va.h:2854
Temporal layer Structure.
Definition: va.h:2481
uint32_t periodicity
The length of the array defining frame layer membership. Should be 1-32.
Definition: va.h:2485
uint32_t number_of_layers
The number of temporal layers.
Definition: va.h:2483
Encoding region-of-interest (ROI).
Definition: va.h:2872
int8_t roi_value
ROI value.
Definition: va.h:2895
VARectangle roi_rectangle
Defines the ROI boundary in pixels, the driver will map it to appropriate codec coding units....
Definition: va.h:2876
Encode Slice Parameter Buffer.
Definition: va.h:3734
Encryption parameters buffer for VAEncryptionParameterBufferType.
Definition: va.h:2271
uint32_t key_blob_size
key blob size It could be VA_PC_BLOCK_SIZE_128, VA_PC_BLOCK_SIZE_192, or VA_PC_BLOCK_SIZE_256
Definition: va.h:2296
uint32_t blocks_stripe_clear
Indicates the number of 16-byte BLOCKS that are clear in any given encrypted region of segments,...
Definition: va.h:2312
uint32_t num_segments
The number of sengments.
Definition: va.h:2277
uint32_t size_of_length
CENC counter length.
Definition: va.h:2285
VAEncryptionSegmentInfo * segment_info
Pointer of segments.
Definition: va.h:2279
uint32_t status_report_index
The status report index reserved for CENC fullsample workload. The related structures and definitions...
Definition: va.h:2283
uint32_t blocks_stripe_encrypted
Indicates the number of 16-byte BLOCKS that are encrypted in any given encrypted region of segments....
Definition: va.h:2305
uint32_t encryption_type
Encryption type, refer to VA_ENCRYPTION_TYPE_FULLSAMPLE_CTR, VA_ENCRYPTION_TYPE_FULLSAMPLE_CBC,...
Definition: va.h:2275
structure for encrypted segment info.
Definition: va.h:2251
uint32_t segment_length
The length of the segments in bytes.
Definition: va.h:2256
uint32_t partial_aes_block_size
The length in bytes of the remainder of an incomplete block from a previous segment.
Definition: va.h:2259
uint32_t init_byte_length
The length in bytes of the initial clear data.
Definition: va.h:2261
uint32_t segment_start_offset
The offset relative to the start of the bitstream input in bytes of the start of the segment.
Definition: va.h:2254
Generic value.
Definition: va.h:1662
float f
32-bit float.
Definition: va.h:1670
VAGenericFunc fn
Pointer to function.
Definition: va.h:1674
int32_t i
32-bit signed integer.
Definition: va.h:1668
void * p
Generic pointer.
Definition: va.h:1672
VAGenericValueType type
Value type. See VAGenericValueType.
Definition: va.h:1664
Huffman table for JPEG decoding.
Definition: va.h:3107
int32_t load_intra_quantiser_matrix
Same as the MPEG-2 bitstream syntax element.
Definition: va.h:3177
int32_t load_chroma_intra_quantiser_matrix
Same as the MPEG-2 bitstream syntax element.
Definition: va.h:3181
int32_t load_chroma_non_intra_quantiser_matrix
Same as the MPEG-2 bitstream syntax element.
Definition: va.h:3183
int32_t load_non_intra_quantiser_matrix
Same as the MPEG-2 bitstream syntax element.
Definition: va.h:3179
int32_t load_intra_quant_mat
Definition: va.h:3329
int32_t load_non_intra_quant_mat
Definition: va.h:3331
Generic motion vector data structure.
Definition: va.h:414
Description of picture properties of those in DPB surfaces.
Definition: va.h:5287
int32_t pic_order_cnt
picture order count. in HEVC, POCs for top and bottom fields of same picture should take different va...
Definition: va.h:5296
VASurfaceID picture_id
reconstructed picture buffer surface index invalid when taking value VA_INVALID_SURFACE.
Definition: va.h:5291
Description of picture properties of those in DPB surfaces.
Definition: va.h:5353
int32_t pic_order_cnt
picture order count.
Definition: va.h:5360
VASurfaceID picture_id
reconstructed picture buffer surface index invalid when taking value VA_INVALID_SURFACE.
Definition: va.h:5357
uint8_t level_idc
Profile level.
Definition: va.h:2339
uint32_t intra_period
Period between I frames.
Definition: va.h:2329
uint8_t level_idc
Profile level.
Definition: va.h:2322
uint32_t ip_period
Period between I/P frames.
Definition: va.h:2331
uint32_t quality_level
quality level. When set to 0, default quality level is used.
Definition: va.h:2327
Structure to describe rectangle.
Definition: va.h:406
uint8_t num_ref_idx_l0_active_minus1
Definition: va.h:3684
uint8_t num_ref_idx_l1_active_minus1
Definition: va.h:3691
uint32_t slice_data_offset
Byte offset to the NAL Header Unit for this slice.
Definition: va.h:3662
uint16_t slice_data_bit_offset
Bit offset from NAL Header Unit to the begining of slice_data().
Definition: va.h:3674
VASurfaceAttribExternalBuffers structure for the VASurfaceAttribExternalBufferDescriptor attribute.
Definition: va.h:1784
uint32_t num_planes
number of planes for planar layout
Definition: va.h:1794
uint32_t data_size
total size of the buffer in bytes.
Definition: va.h:1792
uint32_t height
height in pixels.
Definition: va.h:1790
uint32_t width
width in pixels.
Definition: va.h:1788
uint32_t pixel_format
pixel format in fourcc.
Definition: va.h:1786
uint32_t flags
flags. See "Surface external buffer descriptor flags".
Definition: va.h:1804
uint32_t num_buffers
number of elements in the "buffers" array
Definition: va.h:1802
uintptr_t * buffers
buffer handles or user pointers
Definition: va.h:1800
void * private_data
reserved for passing private data
Definition: va.h:1806
Surface attribute.
Definition: va.h:1742
VAGenericValue value
Value. See "Surface attribute types" for the expected types.
Definition: va.h:1748
VASurfaceAttribType type
Type.
Definition: va.h:1744
uint32_t flags
Flags. See "Surface attribute flags".
Definition: va.h:1746
uint32_t reserved
reserved bits for future, must be zero
Definition: va.h:1443
uint32_t priority
the priority , for the Query operation (read) it represents highest priority for the set operation (w...
Definition: va.h:1441
Attribute value for VAConfigAttribEncJPEG.
Definition: va.h:1284
uint32_t non_interleaved_mode
set to 1 for non-interleaved.
Definition: va.h:1291
uint32_t differential_mode
set to 1 for differential.
Definition: va.h:1293
uint32_t progressive_dct_mode
set to 1 for progressive dct.
Definition: va.h:1289
uint32_t arithmatic_coding_mode
set to 1 for arithmatic coding.
Definition: va.h:1287
uint32_t reserved
reserved bit for future, must be zero
Definition: va.h:1458
uint32_t delta_qp_size_in_bytes
size of delta qp per block in bytes
Definition: va.h:1456
uint32_t log2_delta_qp_block_size
supported size of delta qp block
Definition: va.h:1454
uint32_t delta_qp_support
whether to support dela qp per block
Definition: va.h:1452
Attribute value for VAConfigAttribEncROI.
Definition: va.h:1347
uint32_t roi_rc_priority_support
A flag indicates whether ROI priority is supported.
Definition: va.h:1362
uint32_t roi_rc_qp_delta_support
A flag indicates whether ROI delta QP is supported.
Definition: va.h:1374
uint32_t num_roi_regions
The number of ROI regions supported, 0 if ROI is not supported.
Definition: va.h:1350
Attribute value for VAConfigAttribEncRateControlExt.
Definition: va.h:1381
uint32_t temporal_layer_bitrate_control_flag
Definition: va.h:1415
uint32_t max_num_temporal_layers_minus1
The maximum number of temporal layers minus 1.
Definition: va.h:1390
Attribute value for VAConfigAttribMaxFrameSize.
Definition: va.h:1267
uint32_t max_frame_size
support max frame size if max_frame_size == 1, VAEncMiscParameterTypeMaxFrameSize/VAEncMiscParameterB...
Definition: va.h:1274
uint32_t reserved
reserved bits for future, must be zero
Definition: va.h:1278
uint32_t multiple_pass
multiple_pass support
Definition: va.h:1276
Attribute value for VAConfigAttribMultipleFrame.
Definition: va.h:1422
uint32_t reserved
reserved bit for future, must be zero
Definition: va.h:1431
uint32_t max_num_concurrent_frames
max num of concurrent frames from different stream
Definition: va.h:1425
uint32_t mixed_quality_level
indicate whether all stream must support same quality level if mixed_quality_level == 0,...
Definition: va.h:1429
sub device info Sub-device is the concept basing on the "device" behind "vaDisplay"....
Definition: va.h:5101
uint32_t sub_device_count
sub devices count, read - only
Definition: va.h:5106
uint32_t reserved
reserved bits for future, must be zero
Definition: va.h:5108
uint32_t sub_device_mask
bit mask to indicate which sub_device is available, read only
Definition: va.h:5124
uint32_t current_sub_device
current sub device index, read - write
Definition: va.h:5104
VASurfaceAttribAlignmentStruct structure for the VASurfaceAttribAlignmentSize attribute.
Definition: va.h:1769
uint32_t log2_height_alignment
log2 height aligment
Definition: va.h:1774
uint32_t log2_width_alignment
log2 width aligment
Definition: va.h:1772
VAStatus vaGetDisplayAttributes(VADisplay dpy, VADisplayAttribute *attr_list, int num_attributes)
VADisplayAttribType
Definition: va.h:5130
VAStatus vaCopy(VADisplay dpy, VACopyObject *dst, VACopyObject *src, VACopyOption option)
Copies an object.
VAStatus vaSetDisplayAttributes(VADisplay dpy, VADisplayAttribute *attr_list, int num_attributes)
VAStatus vaQueryDisplayAttributes(VADisplay dpy, VADisplayAttribute *attr_list, int *num_attributes)
#define va_deprecated_enum
Misc packed header. See codec-specific definitions.
Definition: va.h:98
int vaMaxNumDisplayAttributes(VADisplay dpy)
The FEI encoding common API.
The FEI encoding H264 special API.
The FEI encoding HEVC special API.
The video processing API.