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
261 typedef int VAStatus;
263 #define VA_STATUS_SUCCESS 0x00000000
264 #define VA_STATUS_ERROR_OPERATION_FAILED 0x00000001
265 #define VA_STATUS_ERROR_ALLOCATION_FAILED 0x00000002
266 #define VA_STATUS_ERROR_INVALID_DISPLAY 0x00000003
267 #define VA_STATUS_ERROR_INVALID_CONFIG 0x00000004
268 #define VA_STATUS_ERROR_INVALID_CONTEXT 0x00000005
269 #define VA_STATUS_ERROR_INVALID_SURFACE 0x00000006
270 #define VA_STATUS_ERROR_INVALID_BUFFER 0x00000007
271 #define VA_STATUS_ERROR_INVALID_IMAGE 0x00000008
272 #define VA_STATUS_ERROR_INVALID_SUBPICTURE 0x00000009
273 #define VA_STATUS_ERROR_ATTR_NOT_SUPPORTED 0x0000000a
274 #define VA_STATUS_ERROR_MAX_NUM_EXCEEDED 0x0000000b
275 #define VA_STATUS_ERROR_UNSUPPORTED_PROFILE 0x0000000c
276 #define VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT 0x0000000d
277 #define VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT 0x0000000e
278 #define VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE 0x0000000f
279 #define VA_STATUS_ERROR_SURFACE_BUSY 0x00000010
280 #define VA_STATUS_ERROR_FLAG_NOT_SUPPORTED 0x00000011
281 #define VA_STATUS_ERROR_INVALID_PARAMETER 0x00000012
282 #define VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED 0x00000013
283 #define VA_STATUS_ERROR_UNIMPLEMENTED 0x00000014
284 #define VA_STATUS_ERROR_SURFACE_IN_DISPLAYING 0x00000015
285 #define VA_STATUS_ERROR_INVALID_IMAGE_FORMAT 0x00000016
286 #define VA_STATUS_ERROR_DECODING_ERROR 0x00000017
287 #define VA_STATUS_ERROR_ENCODING_ERROR 0x00000018
295 #define VA_STATUS_ERROR_INVALID_VALUE 0x00000019
297 #define VA_STATUS_ERROR_UNSUPPORTED_FILTER 0x00000020
299 #define VA_STATUS_ERROR_INVALID_FILTER_CHAIN 0x00000021
301 #define VA_STATUS_ERROR_HW_BUSY 0x00000022
303 #define VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE 0x00000024
305 #define VA_STATUS_ERROR_NOT_ENOUGH_BUFFER 0x00000025
307 #define VA_STATUS_ERROR_TIMEDOUT 0x00000026
308 #define VA_STATUS_ERROR_UNKNOWN 0xFFFFFFFF
317 #define VA_FRAME_PICTURE 0x00000000
318 #define VA_TOP_FIELD 0x00000001
319 #define VA_BOTTOM_FIELD 0x00000002
320 #define VA_TOP_FIELD_FIRST 0x00000004
321 #define VA_BOTTOM_FIELD_FIRST 0x00000008
329 #define VA_ENABLE_BLEND 0x00000004
336 #define VA_CLEAR_DRAWABLE 0x00000008
339 #define VA_SRC_COLOR_MASK 0x000000f0
340 #define VA_SRC_BT601 0x00000010
341 #define VA_SRC_BT709 0x00000020
342 #define VA_SRC_SMPTE_240 0x00000040
345 #define VA_FILTER_SCALING_DEFAULT 0x00000000
346 #define VA_FILTER_SCALING_FAST 0x00000100
347 #define VA_FILTER_SCALING_HQ 0x00000200
348 #define VA_FILTER_SCALING_NL_ANAMORPHIC 0x00000300
349 #define VA_FILTER_SCALING_MASK 0x00000f00
352 #define VA_FILTER_INTERPOLATION_DEFAULT 0x00000000
353 #define VA_FILTER_INTERPOLATION_NEAREST_NEIGHBOR 0x00001000
354 #define VA_FILTER_INTERPOLATION_BILINEAR 0x00002000
355 #define VA_FILTER_INTERPOLATION_ADVANCED 0x00003000
356 #define VA_FILTER_INTERPOLATION_MASK 0x0000f000
359 #define VA_PADDING_LOW 4
360 #define VA_PADDING_MEDIUM 8
361 #define VA_PADDING_HIGH 16
362 #define VA_PADDING_LARGE 32
366 #define VA_EXEC_SYNC 0x0
368 #define VA_EXEC_ASYNC 0x1
371 #define VA_EXEC_MODE_DEFAULT 0x0
372 #define VA_EXEC_MODE_POWER_SAVING 0x1
373 #define VA_EXEC_MODE_PERFORMANCE 0x2
380 #define VA_FEATURE_NOT_SUPPORTED 0
390 #define VA_FEATURE_SUPPORTED 1
397 #define VA_FEATURE_REQUIRED 2
402 const char *
vaErrorStr(VAStatus error_status);
405 typedef struct _VARectangle {
413 typedef struct _VAMotionVector {
489 typedef int (*VAPrivFunc)(void);
504 VAProfileMPEG2Simple = 0,
505 VAProfileMPEG2Main = 1,
506 VAProfileMPEG4Simple = 2,
507 VAProfileMPEG4AdvancedSimple = 3,
508 VAProfileMPEG4Main = 4,
510 VAProfileH264Main = 6,
511 VAProfileH264High = 7,
512 VAProfileVC1Simple = 8,
513 VAProfileVC1Main = 9,
514 VAProfileVC1Advanced = 10,
515 VAProfileH263Baseline = 11,
516 VAProfileJPEGBaseline = 12,
517 VAProfileH264ConstrainedBaseline = 13,
518 VAProfileVP8Version0_3 = 14,
519 VAProfileH264MultiviewHigh = 15,
520 VAProfileH264StereoHigh = 16,
521 VAProfileHEVCMain = 17,
522 VAProfileHEVCMain10 = 18,
523 VAProfileVP9Profile0 = 19,
524 VAProfileVP9Profile1 = 20,
525 VAProfileVP9Profile2 = 21,
526 VAProfileVP9Profile3 = 22,
527 VAProfileHEVCMain12 = 23,
528 VAProfileHEVCMain422_10 = 24,
529 VAProfileHEVCMain422_12 = 25,
530 VAProfileHEVCMain444 = 26,
531 VAProfileHEVCMain444_10 = 27,
532 VAProfileHEVCMain444_12 = 28,
533 VAProfileHEVCSccMain = 29,
534 VAProfileHEVCSccMain10 = 30,
535 VAProfileHEVCSccMain444 = 31,
536 VAProfileAV1Profile0 = 32,
537 VAProfileAV1Profile1 = 33,
538 VAProfileHEVCSccMain444_10 = 34,
541 VAProfileH264High10 = 36
550 VAEntrypointIDCT = 3,
551 VAEntrypointMoComp = 4,
552 VAEntrypointDeblocking = 5,
553 VAEntrypointEncSlice = 6,
554 VAEntrypointEncPicture = 7,
563 VAEntrypointEncSliceLP = 8,
615 VAConfigAttribRTFormat = 0,
616 VAConfigAttribSpatialResidual = 1,
617 VAConfigAttribSpatialClipping = 2,
618 VAConfigAttribIntraResidual = 3,
619 VAConfigAttribEncryption = 4,
620 VAConfigAttribRateControl = 5,
1040 VAConfigAttribTypeMax
1049 typedef struct _VAConfigAttrib {
1056 #define VA_RT_FORMAT_YUV420 0x00000001
1057 #define VA_RT_FORMAT_YUV422 0x00000002
1058 #define VA_RT_FORMAT_YUV444 0x00000004
1059 #define VA_RT_FORMAT_YUV411 0x00000008
1060 #define VA_RT_FORMAT_YUV400 0x00000010
1061 #define VA_RT_FORMAT_YUV420_10 0x00000100
1062 #define VA_RT_FORMAT_YUV422_10 0x00000200
1063 #define VA_RT_FORMAT_YUV444_10 0x00000400
1064 #define VA_RT_FORMAT_YUV420_12 0x00001000
1065 #define VA_RT_FORMAT_YUV422_12 0x00002000
1066 #define VA_RT_FORMAT_YUV444_12 0x00004000
1068 #define VA_RT_FORMAT_RGB16 0x00010000
1069 #define VA_RT_FORMAT_RGB32 0x00020000
1070 #define VA_RT_FORMAT_RGBP 0x00100000
1071 #define VA_RT_FORMAT_RGB32_10 0x00200000
1073 #define VA_RT_FORMAT_PROTECTED 0x80000000
1075 #define VA_RT_FORMAT_RGB32_10BPP VA_RT_FORMAT_RGB32_10
1076 #define VA_RT_FORMAT_YUV420_10BPP VA_RT_FORMAT_YUV420_10
1081 #define VA_RC_NONE 0x00000001
1083 #define VA_RC_CBR 0x00000002
1085 #define VA_RC_VBR 0x00000004
1087 #define VA_RC_VCM 0x00000008
1089 #define VA_RC_CQP 0x00000010
1091 #define VA_RC_VBR_CONSTRAINED 0x00000020
1094 #define VA_RC_ICQ 0x00000040
1097 #define VA_RC_MB 0x00000080
1099 #define VA_RC_CFS 0x00000100
1110 #define VA_RC_PARALLEL 0x00000200
1117 #define VA_RC_QVBR 0x00000400
1128 #define VA_RC_AVBR 0x00000800
1137 #define VA_RC_TCBRC 0x00001000
1144 #define VA_DEC_SLICE_MODE_NORMAL 0x00000001
1146 #define VA_DEC_SLICE_MODE_BASE 0x00000002
1150 typedef union _VAConfigAttribValDecJPEG {
1153 uint32_t rotation : 4;
1155 uint32_t reserved : 28;
1158 } VAConfigAttribValDecJPEG;
1162 #define VA_DEC_PROCESSING_NONE 0x00000000
1164 #define VA_DEC_PROCESSING 0x00000001
1170 #define VA_ENC_PACKED_HEADER_NONE 0x00000000
1177 #define VA_ENC_PACKED_HEADER_SEQUENCE 0x00000001
1184 #define VA_ENC_PACKED_HEADER_PICTURE 0x00000002
1191 #define VA_ENC_PACKED_HEADER_SLICE 0x00000004
1200 #define VA_ENC_PACKED_HEADER_MISC 0x00000008
1202 #define VA_ENC_PACKED_HEADER_RAW_DATA 0x00000010
1208 #define VA_ENC_INTERLACED_NONE 0x00000000
1210 #define VA_ENC_INTERLACED_FRAME 0x00000001
1212 #define VA_ENC_INTERLACED_FIELD 0x00000002
1214 #define VA_ENC_INTERLACED_MBAFF 0x00000004
1216 #define VA_ENC_INTERLACED_PAFF 0x00000008
1222 #define VA_ENC_SLICE_STRUCTURE_POWER_OF_TWO_ROWS 0x00000001
1224 #define VA_ENC_SLICE_STRUCTURE_ARBITRARY_MACROBLOCKS 0x00000002
1226 #define VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS 0x00000004
1228 #define VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE 0x00000008
1230 #define VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS 0x00000010
1234 #define VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS 0x00000020
1238 typedef union _VAConfigAttribValMaxFrameSize {
1255 typedef union _VAConfigAttribValEncJPEG {
1265 uint32_t max_num_components : 3;
1266 uint32_t max_num_scans : 4;
1267 uint32_t max_num_huffman_tables : 3;
1268 uint32_t max_num_quantization_tables : 3;
1276 #define VA_ENC_QUANTIZATION_NONE 0x00000000
1278 #define VA_ENC_QUANTIZATION_TRELLIS_SUPPORTED 0x00000001
1289 #define VA_PREDICTION_DIRECTION_PREVIOUS 0x00000001
1291 #define VA_PREDICTION_DIRECTION_FUTURE 0x00000002
1293 #define VA_PREDICTION_DIRECTION_BI_NOT_EMPTY 0x00000004
1299 #define VA_ENC_INTRA_REFRESH_NONE 0x00000000
1301 #define VA_ENC_INTRA_REFRESH_ROLLING_COLUMN 0x00000001
1303 #define VA_ENC_INTRA_REFRESH_ROLLING_ROW 0x00000002
1305 #define VA_ENC_INTRA_REFRESH_ADAPTIVE 0x00000010
1307 #define VA_ENC_INTRA_REFRESH_CYCLIC 0x00000020
1309 #define VA_ENC_INTRA_REFRESH_P_FRAME 0x00010000
1311 #define VA_ENC_INTRA_REFRESH_B_FRAME 0x00020000
1313 #define VA_ENC_INTRA_REFRESH_MULTI_REF 0x00040000
1318 typedef union _VAConfigAttribValEncROI {
1346 uint32_t reserved : 22;
1352 typedef union _VAConfigAttribValEncRateControlExt {
1387 uint32_t reserved : 23;
1393 typedef union _VAConfigAttribValMultipleFrame {
1408 typedef union _VAConfigAttribValContextPriority {
1420 typedef union _VAConfigAttribValEncPerBlockControl {
1436 #define VA_PC_CIPHER_AES 0x00000001
1440 #define VA_PC_BLOCK_SIZE_128 0x00000001
1442 #define VA_PC_BLOCK_SIZE_192 0x00000002
1444 #define VA_PC_BLOCK_SIZE_256 0x00000004
1448 #define VA_PC_CIPHER_MODE_ECB 0x00000001
1450 #define VA_PC_CIPHER_MODE_CBC 0x00000002
1452 #define VA_PC_CIPHER_MODE_CTR 0x00000004
1456 #define VA_PC_SAMPLE_TYPE_FULLSAMPLE 0x00000001
1458 #define VA_PC_SAMPLE_TYPE_SUBSAMPLE 0x00000002
1462 #define VA_PC_USAGE_DEFAULT 0x00000000
1464 #define VA_PC_USAGE_WIDEVINE 0x00000001
1469 #define VA_PROCESSING_RATE_NONE 0x00000000
1471 #define VA_PROCESSING_RATE_ENCODE 0x00000001
1473 #define VA_PROCESSING_RATE_DECODE 0x00000002
1479 #define VA_ATTRIB_NOT_SUPPORTED 0x80000000
1518 int *num_entrypoints
1553 VAConfigID *config_id
1561 VAConfigID config_id
1574 VAConfigID config_id,
1605 #define VA_INVALID_ID 0xffffffff
1606 #define VA_INVALID_SURFACE VA_INVALID_ID
1620 typedef struct _VAGenericValue {
1639 #define VA_SURFACE_ATTRIB_NOT_SUPPORTED 0x00000000
1641 #define VA_SURFACE_ATTRIB_GETTABLE 0x00000001
1643 #define VA_SURFACE_ATTRIB_SETTABLE 0x00000002
1648 VASurfaceAttribNone = 0,
1691 typedef struct _VASurfaceAttrib {
1708 #define VA_SURFACE_ATTRIB_MEM_TYPE_VA 0x00000001
1710 #define VA_SURFACE_ATTRIB_MEM_TYPE_V4L2 0x00000002
1712 #define VA_SURFACE_ATTRIB_MEM_TYPE_USER_PTR 0x00000004
1719 typedef struct _VASurfaceAttribExternalBuffers {
1731 uint32_t pitches[4];
1733 uint32_t offsets[4];
1747 #define VA_SURFACE_EXTBUF_DESC_ENABLE_TILING 0x00000001
1749 #define VA_SURFACE_EXTBUF_DESC_CACHED 0x00000002
1751 #define VA_SURFACE_EXTBUF_DESC_UNCACHED 0x00000004
1753 #define VA_SURFACE_EXTBUF_DESC_WC 0x00000008
1755 #define VA_SURFACE_EXTBUF_DESC_PROTECTED 0x80000000
1760 #define VA_SURFACE_ATTRIB_USAGE_HINT_GENERIC 0x00000000
1762 #define VA_SURFACE_ATTRIB_USAGE_HINT_DECODER 0x00000001
1764 #define VA_SURFACE_ATTRIB_USAGE_HINT_ENCODER 0x00000002
1766 #define VA_SURFACE_ATTRIB_USAGE_HINT_VPP_READ 0x00000004
1768 #define VA_SURFACE_ATTRIB_USAGE_HINT_VPP_WRITE 0x00000008
1770 #define VA_SURFACE_ATTRIB_USAGE_HINT_DISPLAY 0x00000010
1773 #define VA_SURFACE_ATTRIB_USAGE_HINT_EXPORT 0x00000020
1809 unsigned int *num_attribs
1832 unsigned int format,
1834 unsigned int height,
1835 VASurfaceID *surfaces,
1836 unsigned int num_surfaces,
1838 unsigned int num_attribs
1851 VASurfaceID *surfaces,
1855 #define VA_PROGRESSIVE 0x1
1870 VAConfigID config_id,
1874 VASurfaceID *render_targets,
1875 int num_render_targets,
1909 VAMFContextID *mf_context
1947 VAMFContextID mf_context,
1965 VAMFContextID mf_context,
1980 VAPictureParameterBufferType = 0,
1981 VAIQMatrixBufferType = 1,
1982 VABitPlaneBufferType = 2,
1983 VASliceGroupMapBufferType = 3,
1984 VASliceParameterBufferType = 4,
1985 VASliceDataBufferType = 5,
1986 VAMacroblockParameterBufferType = 6,
1987 VAResidualDataBufferType = 7,
1988 VADeblockingParameterBufferType = 8,
1989 VAImageBufferType = 9,
1990 VAProtectedSliceDataBufferType = 10,
1991 VAQMatrixBufferType = 11,
1992 VAHuffmanTableBufferType = 12,
1993 VAProbabilityBufferType = 13,
1996 VAEncCodedBufferType = 21,
1997 VAEncSequenceParameterBufferType = 22,
1998 VAEncPictureParameterBufferType = 23,
1999 VAEncSliceParameterBufferType = 24,
2000 VAEncPackedHeaderParameterBufferType = 25,
2001 VAEncPackedHeaderDataBufferType = 26,
2002 VAEncMiscParameterBufferType = 27,
2003 VAEncMacroblockParameterBufferType = 28,
2004 VAEncMacroblockMapBufferType = 29,
2039 VAEncFEIMBCodeBufferType = 44,
2040 VAEncFEIDistortionBufferType = 45,
2041 VAEncFEIMBControlBufferType = 46,
2042 VAEncFEIMVPredictorBufferType = 47,
2043 VAStatsStatisticsParameterBufferType = 48,
2048 VAStatsMVBufferType = 51,
2049 VAStatsMVPredictorBufferType = 52,
2121 typedef struct _VAContextParameterUpdateBuffer {
2134 uint32_t reserved[VA_PADDING_MEDIUM];
2149 #define VA_ENCRYPTION_TYPE_FULLSAMPLE_CTR 0x00000001
2150 #define VA_ENCRYPTION_TYPE_FULLSAMPLE_CBC 0x00000002
2151 #define VA_ENCRYPTION_TYPE_SUBSAMPLE_CTR 0x00000004
2152 #define VA_ENCRYPTION_TYPE_SUBSAMPLE_CBC 0x00000008
2155 typedef struct _VAEncryptionSegmentInfo {
2169 uint8_t aes_cbc_iv_or_ctr[64];
2171 uint32_t va_reserved[VA_PADDING_MEDIUM];
2175 typedef struct _VAEncryptionParameters {
2192 uint8_t wrapped_decrypt_blob[64];
2195 uint8_t wrapped_encrypt_blob[64];
2218 uint32_t va_reserved[VA_PADDING_MEDIUM];
2224 typedef struct _VAProcessingRateParameterEnc {
2227 uint8_t reserved[3];
2241 typedef struct _VAProcessingRateParameterDec {
2244 uint8_t reserved0[3];
2248 typedef struct _VAProcessingRateParameter {
2253 } VAProcessingRateParameter;
2279 VAProcessingRateParameter *proc_buf,
2280 unsigned int *processing_rate
2284 VAEncMiscParameterTypeFrameRate = 0,
2285 VAEncMiscParameterTypeRateControl = 1,
2286 VAEncMiscParameterTypeMaxSliceSize = 2,
2287 VAEncMiscParameterTypeAIR = 3,
2292 VAEncMiscParameterTypeQualityLevel = 6,
2350 typedef struct _VAEncPackedHeaderParameterBuffer {
2379 typedef struct _VAEncMiscParameterBuffer {
2385 typedef struct _VAEncMiscParameterTemporalLayerStructure {
2396 uint32_t layer_id[32];
2404 typedef struct _VAEncMiscParameterRateControl {
2464 uint32_t enable_dynamic_scaling : 1;
2521 typedef struct _VAEncMiscParameterFrameRate {
2561 typedef struct _VAEncMiscParameterMaxSliceSize {
2562 uint32_t max_slice_size;
2568 typedef struct _VAEncMiscParameterAIR {
2569 uint32_t air_num_mbs;
2570 uint32_t air_threshold;
2575 } VAEncMiscParameterAIR;
2580 typedef struct _VAEncMiscParameterRIR {
2591 uint32_t enable_rir_column : 1;
2593 uint32_t enable_rir_row : 1;
2594 uint32_t reserved : 30;
2602 uint16_t intra_insertion_location;
2607 uint16_t intra_insert_size;
2612 uint8_t qp_delta_for_inserted_intra;
2615 } VAEncMiscParameterRIR;
2625 typedef struct _VAEncMiscParameterHRD {
2657 typedef struct _VAEncMiscParameterBufferMaxFrameSize {
2677 typedef struct _VAEncMiscParameterBufferMultiPassFrameSize {
2705 typedef struct _VAEncMiscParameterBufferQualityLevel {
2721 typedef struct _VAEncMiscParameterQuantization {
2726 uint32_t disable_trellis : 1;
2728 uint32_t enable_trellis_I : 1;
2730 uint32_t enable_trellis_P : 1;
2732 uint32_t enable_trellis_B : 1;
2733 uint32_t reserved : 28;
2736 } quantization_flags;
2737 uint32_t va_reserved;
2749 typedef struct _VAEncMiscParameterSkipFrame {
2776 typedef struct _VAEncROI {
2802 typedef struct _VAEncMiscParameterBufferROI {
2809 int8_t max_delta_qp;
2810 int8_t min_delta_qp;
2829 uint32_t roi_value_is_qp_delta : 1;
2830 uint32_t reserved : 31;
2837 } VAEncMiscParameterBufferROI;
2849 typedef struct _VAEncMiscParameterBufferDirtyRect {
2851 uint32_t num_roi_rectangle;
2855 } VAEncMiscParameterBufferDirtyRect;
2858 typedef struct _VAEncMiscParameterParallelRateControl {
2870 typedef struct _VAEncMiscParameterEncQuality {
2891 uint32_t ReservedBit : 1;
2926 uint32_t encControls;
2930 uint8_t FTQSkipThresholdLUT[52];
2932 uint16_t NonFTQSkipThresholdLUT[52];
2934 uint32_t reserved[VA_PADDING_HIGH];
2944 typedef struct _VAEncMiscParameterCustomRoundingControl {
2970 uint32_t reserved : 16;
2973 } rounding_offset_setting;
2984 #define VA_SLICE_DATA_FLAG_ALL 0x00
2985 #define VA_SLICE_DATA_FLAG_BEGIN 0x01
2986 #define VA_SLICE_DATA_FLAG_MIDDLE 0x02
2987 #define VA_SLICE_DATA_FLAG_END 0x04
2990 typedef struct _VASliceParameterBufferBase {
2991 uint32_t slice_data_size;
2992 uint32_t slice_data_offset;
2993 uint32_t slice_data_flag;
2994 } VASliceParameterBufferBase;
3011 typedef struct _VAHuffmanTableBufferJPEGBaseline {
3013 uint8_t load_huffman_table[2];
3019 uint8_t num_dc_codes[16];
3021 uint8_t dc_values[12];
3026 uint8_t num_ac_codes[16];
3028 uint8_t ac_values[162];
3047 typedef struct _VAPictureParameterBufferMPEG2 {
3048 uint16_t horizontal_size;
3049 uint16_t vertical_size;
3050 VASurfaceID forward_reference_picture;
3051 VASurfaceID backward_reference_picture;
3053 int32_t picture_coding_type;
3057 uint32_t intra_dc_precision : 2;
3058 uint32_t picture_structure : 2;
3059 uint32_t top_field_first : 1;
3060 uint32_t frame_pred_frame_dct : 1;
3061 uint32_t concealment_motion_vectors : 1;
3062 uint32_t q_scale_type : 1;
3063 uint32_t intra_vlc_format : 1;
3064 uint32_t alternate_scan : 1;
3065 uint32_t repeat_first_field : 1;
3066 uint32_t progressive_frame : 1;
3067 uint32_t is_first_field : 1;
3072 } picture_coding_extension;
3076 } VAPictureParameterBufferMPEG2;
3079 typedef struct _VAIQMatrixBufferMPEG2 {
3081 int32_t load_intra_quantiser_matrix;
3083 int32_t load_non_intra_quantiser_matrix;
3085 int32_t load_chroma_intra_quantiser_matrix;
3087 int32_t load_chroma_non_intra_quantiser_matrix;
3089 uint8_t intra_quantiser_matrix[64];
3091 uint8_t non_intra_quantiser_matrix[64];
3093 uint8_t chroma_intra_quantiser_matrix[64];
3095 uint8_t chroma_non_intra_quantiser_matrix[64];
3102 typedef struct _VASliceParameterBufferMPEG2 {
3103 uint32_t slice_data_size;
3104 uint32_t slice_data_offset;
3105 uint32_t slice_data_flag;
3106 uint32_t macroblock_offset;
3107 uint32_t slice_horizontal_position;
3108 uint32_t slice_vertical_position;
3109 int32_t quantiser_scale_code;
3110 int32_t intra_slice_flag;
3117 typedef struct _VAMacroblockParameterBufferMPEG2 {
3118 uint16_t macroblock_address;
3124 uint8_t macroblock_type;
3127 uint32_t frame_motion_type : 2;
3128 uint32_t field_motion_type : 2;
3129 uint32_t dct_type : 1;
3133 uint8_t motion_vertical_field_select;
3143 int16_t PMV[2][2][2];
3144 uint16_t coded_block_pattern;
3151 uint16_t num_skipped_macroblocks;
3160 #define VA_MB_TYPE_MOTION_FORWARD 0x02
3161 #define VA_MB_TYPE_MOTION_BACKWARD 0x04
3162 #define VA_MB_TYPE_MOTION_PATTERN 0x08
3163 #define VA_MB_TYPE_MOTION_INTRA 0x10
3180 typedef struct _VAPictureParameterBufferMPEG4 {
3182 uint16_t vop_height;
3183 VASurfaceID forward_reference_picture;
3184 VASurfaceID backward_reference_picture;
3187 uint32_t short_video_header : 1;
3188 uint32_t chroma_format : 2;
3189 uint32_t interlaced : 1;
3190 uint32_t obmc_disable : 1;
3191 uint32_t sprite_enable : 2;
3192 uint32_t sprite_warping_accuracy : 2;
3193 uint32_t quant_type : 1;
3194 uint32_t quarter_sample : 1;
3195 uint32_t data_partitioned : 1;
3196 uint32_t reversible_vlc : 1;
3197 uint32_t resync_marker_disable : 1;
3201 uint8_t no_of_sprite_warping_points;
3202 int16_t sprite_trajectory_du[3];
3203 int16_t sprite_trajectory_dv[3];
3204 uint8_t quant_precision;
3207 uint32_t vop_coding_type : 2;
3208 uint32_t backward_reference_vop_coding_type : 2;
3209 uint32_t vop_rounding_type : 1;
3210 uint32_t intra_dc_vlc_thr : 3;
3211 uint32_t top_field_first : 1;
3212 uint32_t alternate_vertical_scan_flag : 1;
3216 uint8_t vop_fcode_forward;
3217 uint8_t vop_fcode_backward;
3218 uint16_t vop_time_increment_resolution;
3220 uint8_t num_gobs_in_vop;
3221 uint8_t num_macroblocks_in_gob;
3231 typedef struct _VAIQMatrixBufferMPEG4 {
3233 int32_t load_intra_quant_mat;
3235 int32_t load_non_intra_quant_mat;
3237 uint8_t intra_quant_mat[64];
3239 uint8_t non_intra_quant_mat[64];
3246 typedef struct _VASliceParameterBufferMPEG4 {
3247 uint32_t slice_data_size;
3248 uint32_t slice_data_offset;
3249 uint32_t slice_data_flag;
3250 uint32_t macroblock_offset;
3251 uint32_t macroblock_number;
3252 int32_t quant_scale;
3265 VAMvMode1MvHalfPel = 1,
3266 VAMvMode1MvHalfPelBilinear = 2,
3267 VAMvModeMixedMv = 3,
3268 VAMvModeIntensityCompensation = 4
3284 typedef struct _VAPictureParameterBufferVC1 {
3285 VASurfaceID forward_reference_picture;
3286 VASurfaceID backward_reference_picture;
3290 VASurfaceID inloop_decoded_picture;
3295 uint32_t pulldown : 1;
3296 uint32_t interlace : 1;
3297 uint32_t tfcntrflag : 1;
3298 uint32_t finterpflag : 1;
3300 uint32_t multires : 1;
3301 uint32_t overlap : 1;
3302 uint32_t syncmarker : 1;
3303 uint32_t rangered : 1;
3304 uint32_t max_b_frames : 3;
3305 uint32_t profile : 2;
3310 uint16_t coded_width;
3311 uint16_t coded_height;
3314 uint32_t broken_link : 1;
3315 uint32_t closed_entry : 1;
3316 uint32_t panscan_flag : 1;
3317 uint32_t loopfilter : 1;
3320 } entrypoint_fields;
3321 uint8_t conditional_overlap_flag;
3322 uint8_t fast_uvmc_flag;
3325 uint32_t luma_flag : 1;
3327 uint32_t chroma_flag : 1;
3328 uint32_t chroma : 3;
3331 } range_mapping_fields;
3333 uint8_t b_picture_fraction;
3335 uint8_t mb_mode_table;
3336 uint8_t range_reduction_frame;
3337 uint8_t rounding_control;
3338 uint8_t post_processing;
3339 uint8_t picture_resolution_index;
3345 uint32_t picture_type : 3;
3346 uint32_t frame_coding_mode : 3;
3347 uint32_t top_field_first : 1;
3348 uint32_t is_first_field : 1;
3349 uint32_t intensity_compensation : 1;
3355 uint32_t mv_type_mb : 1;
3356 uint32_t direct_mb : 1;
3357 uint32_t skip_mb : 1;
3358 uint32_t field_tx : 1;
3359 uint32_t forward_mb : 1;
3360 uint32_t ac_pred : 1;
3361 uint32_t overflags : 1;
3367 uint32_t bp_mv_type_mb : 1;
3368 uint32_t bp_direct_mb : 1;
3369 uint32_t bp_skip_mb : 1;
3370 uint32_t bp_field_tx : 1;
3371 uint32_t bp_forward_mb : 1;
3372 uint32_t bp_ac_pred : 1;
3373 uint32_t bp_overflags : 1;
3379 uint32_t reference_distance_flag : 1;
3380 uint32_t reference_distance : 5;
3381 uint32_t num_reference_pictures: 1;
3382 uint32_t reference_field_pic_indicator : 1;
3388 uint32_t mv_mode : 3;
3389 uint32_t mv_mode2 : 3;
3390 uint32_t mv_table : 3;
3391 uint32_t two_mv_block_pattern_table: 2;
3392 uint32_t four_mv_switch : 1;
3393 uint32_t four_mv_block_pattern_table : 2;
3394 uint32_t extended_mv_flag : 1;
3395 uint32_t extended_mv_range : 2;
3396 uint32_t extended_dmv_flag : 1;
3397 uint32_t extended_dmv_range : 2;
3403 uint32_t dquant : 2;
3404 uint32_t quantizer : 2;
3405 uint32_t half_qp : 1;
3406 uint32_t pic_quantizer_scale : 5;
3407 uint32_t pic_quantizer_type : 1;
3408 uint32_t dq_frame : 1;
3409 uint32_t dq_profile : 2;
3410 uint32_t dq_sb_edge : 2;
3411 uint32_t dq_db_edge : 2;
3412 uint32_t dq_binary_level : 1;
3413 uint32_t alt_pic_quantizer : 5;
3416 } pic_quantizer_fields;
3419 uint32_t variable_sized_transform_flag : 1;
3420 uint32_t mb_level_transform_type_flag : 1;
3421 uint32_t frame_level_transform_type : 2;
3422 uint32_t transform_ac_codingset_idx1 : 2;
3423 uint32_t transform_ac_codingset_idx2 : 2;
3424 uint32_t intra_transform_dc_table : 1;
3429 uint8_t luma_scale2;
3430 uint8_t luma_shift2;
3431 uint8_t intensity_compensation_field;
3434 uint32_t va_reserved[VA_PADDING_MEDIUM - 1];
3456 typedef struct _VASliceParameterBufferVC1 {
3457 uint32_t slice_data_size;
3458 uint32_t slice_data_offset;
3459 uint32_t slice_data_flag;
3460 uint32_t macroblock_offset;
3461 uint32_t slice_vertical_position;
3476 typedef struct _VAPictureH264 {
3477 VASurfaceID picture_id;
3480 int32_t TopFieldOrderCnt;
3481 int32_t BottomFieldOrderCnt;
3487 #define VA_PICTURE_H264_INVALID 0x00000001
3488 #define VA_PICTURE_H264_TOP_FIELD 0x00000002
3489 #define VA_PICTURE_H264_BOTTOM_FIELD 0x00000004
3490 #define VA_PICTURE_H264_SHORT_TERM_REFERENCE 0x00000008
3491 #define VA_PICTURE_H264_LONG_TERM_REFERENCE 0x00000010
3498 typedef struct _VAPictureParameterBufferH264 {
3499 VAPictureH264 CurrPic;
3500 VAPictureH264 ReferenceFrames[16];
3501 uint16_t picture_width_in_mbs_minus1;
3502 uint16_t picture_height_in_mbs_minus1;
3503 uint8_t bit_depth_luma_minus8;
3504 uint8_t bit_depth_chroma_minus8;
3505 uint8_t num_ref_frames;
3508 uint32_t chroma_format_idc : 2;
3509 uint32_t residual_colour_transform_flag : 1;
3510 uint32_t gaps_in_frame_num_value_allowed_flag : 1;
3511 uint32_t frame_mbs_only_flag : 1;
3512 uint32_t mb_adaptive_frame_field_flag : 1;
3513 uint32_t direct_8x8_inference_flag : 1;
3514 uint32_t MinLumaBiPredSize8x8 : 1;
3515 uint32_t log2_max_frame_num_minus4 : 4;
3516 uint32_t pic_order_cnt_type : 2;
3517 uint32_t log2_max_pic_order_cnt_lsb_minus4 : 4;
3518 uint32_t delta_pic_order_always_zero_flag : 1;
3523 va_deprecated uint8_t num_slice_groups_minus1;
3524 va_deprecated uint8_t slice_group_map_type;
3525 va_deprecated uint16_t slice_group_change_rate_minus1;
3526 int8_t pic_init_qp_minus26;
3527 int8_t pic_init_qs_minus26;
3528 int8_t chroma_qp_index_offset;
3529 int8_t second_chroma_qp_index_offset;
3532 uint32_t entropy_coding_mode_flag : 1;
3533 uint32_t weighted_pred_flag : 1;
3534 uint32_t weighted_bipred_idc : 2;
3535 uint32_t transform_8x8_mode_flag : 1;
3536 uint32_t field_pic_flag : 1;
3537 uint32_t constrained_intra_pred_flag : 1;
3538 uint32_t pic_order_present_flag : 1;
3539 uint32_t deblocking_filter_control_present_flag : 1;
3540 uint32_t redundant_pic_cnt_present_flag : 1;
3541 uint32_t reference_pic_flag : 1;
3548 uint32_t va_reserved[VA_PADDING_MEDIUM];
3552 typedef struct _VAIQMatrixBufferH264 {
3554 uint8_t ScalingList4x4[6][16];
3556 uint8_t ScalingList8x8[2][64];
3563 typedef struct _VASliceParameterBufferH264 {
3564 uint32_t slice_data_size;
3566 uint32_t slice_data_offset;
3567 uint32_t slice_data_flag;
3578 uint16_t slice_data_bit_offset;
3579 uint16_t first_mb_in_slice;
3581 uint8_t direct_spatial_mv_pred_flag;
3588 uint8_t num_ref_idx_l0_active_minus1;
3595 uint8_t num_ref_idx_l1_active_minus1;
3596 uint8_t cabac_init_idc;
3597 int8_t slice_qp_delta;
3598 uint8_t disable_deblocking_filter_idc;
3599 int8_t slice_alpha_c0_offset_div2;
3600 int8_t slice_beta_offset_div2;
3601 VAPictureH264 RefPicList0[32];
3602 VAPictureH264 RefPicList1[32];
3603 uint8_t luma_log2_weight_denom;
3604 uint8_t chroma_log2_weight_denom;
3605 uint8_t luma_weight_l0_flag;
3606 int16_t luma_weight_l0[32];
3607 int16_t luma_offset_l0[32];
3608 uint8_t chroma_weight_l0_flag;
3609 int16_t chroma_weight_l0[32][2];
3610 int16_t chroma_offset_l0[32][2];
3611 uint8_t luma_weight_l1_flag;
3612 int16_t luma_weight_l1[32];
3613 int16_t luma_offset_l1[32];
3614 uint8_t chroma_weight_l1_flag;
3615 int16_t chroma_weight_l1[32][2];
3616 int16_t chroma_offset_l1[32][2];
3626 VAEncPictureTypeIntra = 0,
3627 VAEncPictureTypePredictive = 1,
3628 VAEncPictureTypeBidirectional = 2,
3638 typedef struct _VAEncSliceParameterBuffer {
3639 uint32_t start_row_number;
3640 uint32_t slice_height;
3643 uint32_t is_intra : 1;
3644 uint32_t disable_deblocking_filter_idc : 2;
3645 uint32_t uses_long_term_ref : 1;
3646 uint32_t is_long_term_ref : 1;
3660 typedef struct _VAEncSequenceParameterBufferH263 {
3661 uint32_t intra_period;
3662 uint32_t bits_per_second;
3663 uint32_t frame_rate;
3664 uint32_t initial_qp;
3669 } VAEncSequenceParameterBufferH263;
3671 typedef struct _VAEncPictureParameterBufferH263 {
3672 VASurfaceID reference_picture;
3673 VASurfaceID reconstructed_picture;
3675 uint16_t picture_width;
3676 uint16_t picture_height;
3677 VAEncPictureType picture_type;
3681 } VAEncPictureParameterBufferH263;
3687 typedef struct _VAEncSequenceParameterBufferMPEG4 {
3688 uint8_t profile_and_level_indication;
3689 uint32_t intra_period;
3690 uint32_t video_object_layer_width;
3691 uint32_t video_object_layer_height;
3692 uint32_t vop_time_increment_resolution;
3693 uint32_t fixed_vop_rate;
3694 uint32_t fixed_vop_time_increment;
3695 uint32_t bits_per_second;
3696 uint32_t frame_rate;
3697 uint32_t initial_qp;
3702 } VAEncSequenceParameterBufferMPEG4;
3704 typedef struct _VAEncPictureParameterBufferMPEG4 {
3705 VASurfaceID reference_picture;
3706 VASurfaceID reconstructed_picture;
3708 uint16_t picture_width;
3709 uint16_t picture_height;
3710 uint32_t modulo_time_base;
3711 uint32_t vop_time_increment;
3712 VAEncPictureType picture_type;
3716 } VAEncPictureParameterBufferMPEG4;
3742 unsigned int num_elements,
3763 unsigned int height,
3764 unsigned int *unit_size,
3765 unsigned int *pitch,
3778 unsigned int num_elements
3796 #define VA_CODED_BUF_STATUS_PICTURE_AVE_QP_MASK 0xff
3797 #define VA_CODED_BUF_STATUS_LARGE_SLICE_MASK 0x100
3798 #define VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK 0x200
3799 #define VA_CODED_BUF_STATUS_BITRATE_OVERFLOW 0x400
3800 #define VA_CODED_BUF_STATUS_BITRATE_HIGH 0x800
3808 #define VA_CODED_BUF_STATUS_FRAME_SIZE_OVERFLOW 0x1000
3812 #define VA_CODED_BUF_STATUS_BAD_BITSTREAM 0x8000
3813 #define VA_CODED_BUF_STATUS_AIR_MB_OVER_THRESHOLD 0xff0000
3823 #define VA_CODED_BUF_STATUS_NUMBER_PASSES_MASK 0xf000000
3832 #define VA_CODED_BUF_STATUS_SINGLE_NALU 0x10000000
3844 typedef struct _VACodedBufferSegment {
3850 uint32_t bit_offset;
4015 #define VA_EXPORT_SURFACE_READ_ONLY 0x0001
4017 #define VA_EXPORT_SURFACE_WRITE_ONLY 0x0002
4019 #define VA_EXPORT_SURFACE_READ_WRITE 0x0003
4025 #define VA_EXPORT_SURFACE_SEPARATE_LAYERS 0x0004
4031 #define VA_EXPORT_SURFACE_COMPOSED_LAYERS 0x0008
4068 VASurfaceID surface_id,
4069 uint32_t mem_type, uint32_t flags,
4090 VASurfaceID render_target
4137 VAMFContextID mf_context,
4155 VASurfaceID render_target
4159 #define VA_TIMEOUT_INFINITE 0xFFFFFFFFFFFFFFFF
4183 VASurfaceID surface,
4188 VASurfaceRendering = 1,
4189 VASurfaceDisplaying = 2,
4193 VASurfaceSkipped = 8
4201 VASurfaceID render_target,
4202 VASurfaceStatus *status
4206 VADecodeSliceMissing = 0,
4207 VADecodeMBError = 1,
4208 } VADecodeErrorType;
4214 typedef struct _VASurfaceDecodeMBErrors {
4218 VADecodeErrorType decode_error_type;
4234 VASurfaceID surface,
4235 VAStatus error_status,
4286 #define VA_FOURCC(ch0, ch1, ch2, ch3) \
4287 ((unsigned long)(unsigned char) (ch0) | ((unsigned long)(unsigned char) (ch1) << 8) | \
4288 ((unsigned long)(unsigned char) (ch2) << 16) | ((unsigned long)(unsigned char) (ch3) << 24 ))
4295 #define VA_FOURCC_NV12 0x3231564E
4299 #define VA_FOURCC_NV21 0x3132564E
4305 #define VA_FOURCC_AI44 0x34344149
4311 #define VA_FOURCC_RGBA 0x41424752
4316 #define VA_FOURCC_RGBX 0x58424752
4321 #define VA_FOURCC_BGRA 0x41524742
4326 #define VA_FOURCC_BGRX 0x58524742
4331 #define VA_FOURCC_ARGB 0x42475241
4336 #define VA_FOURCC_XRGB 0x42475258
4341 #define VA_FOURCC_ABGR 0x52474241
4346 #define VA_FOURCC_XBGR 0x52474258
4352 #define VA_FOURCC_UYVY 0x59565955
4357 #define VA_FOURCC_YUY2 0x32595559
4362 #define VA_FOURCC_AYUV 0x56555941
4367 #define VA_FOURCC_NV11 0x3131564e
4372 #define VA_FOURCC_YV12 0x32315659
4377 #define VA_FOURCC_P208 0x38303250
4382 #define VA_FOURCC_I420 0x30323449
4387 #define VA_FOURCC_YV24 0x34325659
4392 #define VA_FOURCC_YV32 0x32335659
4395 #define VA_FOURCC_Y800 0x30303859
4401 #define VA_FOURCC_IMC3 0x33434D49
4406 #define VA_FOURCC_411P 0x50313134
4412 #define VA_FOURCC_411R 0x52313134
4417 #define VA_FOURCC_422H 0x48323234
4422 #define VA_FOURCC_422V 0x56323234
4427 #define VA_FOURCC_444P 0x50343434
4433 #define VA_FOURCC_RGBP 0x50424752
4438 #define VA_FOURCC_BGRP 0x50524742
4444 #define VA_FOURCC_RGB565 0x36314752
4450 #define VA_FOURCC_BGR565 0x36314742
4457 #define VA_FOURCC_Y210 0x30313259
4463 #define VA_FOURCC_Y212 0x32313259
4469 #define VA_FOURCC_Y216 0x36313259
4475 #define VA_FOURCC_Y410 0x30313459
4481 #define VA_FOURCC_Y412 0x32313459
4487 #define VA_FOURCC_Y416 0x36313459
4493 #define VA_FOURCC_YV16 0x36315659
4499 #define VA_FOURCC_P010 0x30313050
4505 #define VA_FOURCC_P012 0x32313050
4511 #define VA_FOURCC_P016 0x36313050
4518 #define VA_FOURCC_I010 0x30313049
4524 #define VA_FOURCC_IYUV 0x56555949
4528 #define VA_FOURCC_A2R10G10B10 0x30335241
4532 #define VA_FOURCC_A2B10G10R10 0x30334241
4536 #define VA_FOURCC_X2R10G10B10 0x30335258
4540 #define VA_FOURCC_X2B10G10R10 0x30334258
4546 #define VA_FOURCC_Y8 0x20203859
4551 #define VA_FOURCC_Y16 0x20363159
4556 #define VA_FOURCC_VYUY 0x59555956
4561 #define VA_FOURCC_YVYU 0x55595659
4566 #define VA_FOURCC_ARGB64 0x34475241
4571 #define VA_FOURCC_ABGR64 0x34474241
4576 #define VA_FOURCC_XYUV 0x56555958
4579 #define VA_LSB_FIRST 1
4580 #define VA_MSB_FIRST 2
4582 typedef struct _VAImageFormat {
4584 uint32_t byte_order;
4585 uint32_t bits_per_pixel;
4589 uint32_t green_mask;
4591 uint32_t alpha_mask;
4599 typedef struct _VAImage {
4601 VAImageFormat format;
4613 uint32_t num_planes;
4618 uint32_t pitches[3];
4623 uint32_t offsets[3];
4626 int32_t num_palette_entries;
4631 int32_t entry_bytes;
4636 int8_t component_order[4];
4655 VAImageFormat *format_list,
4668 VAImageFormat *format,
4682 VAStatus vaSetImagePalette(
4690 unsigned char *palette
4699 VASurfaceID surface,
4703 unsigned int height,
4715 VASurfaceID surface,
4719 unsigned int src_width,
4720 unsigned int src_height,
4723 unsigned int dest_width,
4724 unsigned int dest_height
4760 VASurfaceID surface,
4779 #define VA_SUBPICTURE_CHROMA_KEYING 0x0001
4780 #define VA_SUBPICTURE_GLOBAL_ALPHA 0x0002
4781 #define VA_SUBPICTURE_DESTINATION_IS_SCREEN_COORD 0x0004
4796 VAImageFormat *format_list,
4797 unsigned int *flags,
4798 unsigned int *num_formats
4840 unsigned int chromakey_min,
4841 unsigned int chromakey_max,
4842 unsigned int chromakey_mask
4866 VASurfaceID *target_surfaces,
4871 uint16_t src_height,
4874 uint16_t dest_width,
4875 uint16_t dest_height,
4889 VASurfaceID *target_surfaces,
4912 VADISPLAYATTRIB_BLE_OFF = 0x00,
4913 VADISPLAYATTRIB_BLE_LOW,
4914 VADISPLAYATTRIB_BLE_MEDIUM,
4915 VADISPLAYATTRIB_BLE_HIGH,
4916 VADISPLAYATTRIB_BLE_NONE,
4920 #define VA_ROTATION_NONE 0x00000000
4921 #define VA_ROTATION_90 0x00000001
4922 #define VA_ROTATION_180 0x00000002
4923 #define VA_ROTATION_270 0x00000003
4935 #define VA_MIRROR_NONE 0x00000000
4937 #define VA_MIRROR_HORIZONTAL 0x00000001
4939 #define VA_MIRROR_VERTICAL 0x00000002
4943 #define VA_OOL_DEBLOCKING_FALSE 0x00000000
4944 #define VA_OOL_DEBLOCKING_TRUE 0x00000001
4947 #define VA_RENDER_MODE_UNDEFINED 0
4948 #define VA_RENDER_MODE_LOCAL_OVERLAY 1
4949 #define VA_RENDER_MODE_LOCAL_GPU 2
4950 #define VA_RENDER_MODE_EXTERNAL_OVERLAY 4
4951 #define VA_RENDER_MODE_EXTERNAL_GPU 8
4954 #define VA_RENDER_DEVICE_UNDEFINED 0
4955 #define VA_RENDER_DEVICE_LOCAL 1
4956 #define VA_RENDER_DEVICE_EXTERNAL 2
4971 typedef union _VADisplayAttribValSubDevice {
4974 uint32_t current_sub_device : 4;
4976 uint32_t sub_device_count : 4;
4978 uint32_t reserved : 8;
4994 uint32_t sub_device_mask : 16;
5001 VADisplayAttribBrightness = 0,
5002 VADisplayAttribContrast = 1,
5003 VADisplayAttribHue = 2,
5004 VADisplayAttribSaturation = 3,
5010 VADisplayAttribBackgroundColor = 4,
5022 VADisplayAttribDirectSurface = 5,
5023 VADisplayAttribRotation = 6,
5024 VADisplayAttribOutofLoopDeblock = 7,
5027 VADisplayAttribBLEBlackMode = 8,
5028 VADisplayAttribBLEWhiteMode = 9,
5029 VADisplayAttribBlueStretch = 10,
5030 VADisplayAttribSkinColorCorrection = 11,
5035 VADisplayAttribCSCMatrix = 12,
5043 VADisplayAttribBlendColor = 13,
5048 VADisplayAttribOverlayAutoPaintColorKey = 14,
5053 VADisplayAttribOverlayColorKey = 15,
5059 VADisplayAttribRenderMode = 16,
5065 VADisplayAttribRenderDevice = 17,
5069 VADisplayAttribRenderRect = 18,
5073 VADisplayAttribSubDevice = 19,
5079 VADisplayAttribCopy = 20,
5084 VADisplayPCIID = 21,
5088 #define VA_DISPLAY_ATTRIB_NOT_SUPPORTED 0x0000
5089 #define VA_DISPLAY_ATTRIB_GETTABLE 0x0001
5090 #define VA_DISPLAY_ATTRIB_SETTABLE 0x0002
5092 typedef struct _VADisplayAttribute {
5102 } VADisplayAttribute;
5117 VADisplayAttribute *attr_list,
5129 VADisplayAttribute *attr_list,
5141 VADisplayAttribute *attr_list,
5157 typedef struct _VAPictureHEVC {
5161 VASurfaceID picture_id;
5166 int32_t pic_order_cnt;
5175 #define VA_PICTURE_HEVC_INVALID 0x00000001
5179 #define VA_PICTURE_HEVC_FIELD_PIC 0x00000002
5184 #define VA_PICTURE_HEVC_BOTTOM_FIELD 0x00000004
5186 #define VA_PICTURE_HEVC_LONG_TERM_REFERENCE 0x00000008
5201 #define VA_PICTURE_HEVC_RPS_ST_CURR_BEFORE 0x00000010
5206 #define VA_PICTURE_HEVC_RPS_ST_CURR_AFTER 0x00000020
5211 #define VA_PICTURE_HEVC_RPS_LT_CURR 0x00000040
5214 VACopyObjectSurface = 0,
5215 VACopyObjectBuffer = 1,
5218 typedef struct _VACopyObject {
5219 VACopyObjectType obj_type;
5221 VASurfaceID surface_id;
5225 uint32_t va_reserved[VA_PADDING_MEDIUM];
5228 typedef union _VACopyOption {
5231 uint32_t va_copy_sync : 2;
5233 uint32_t va_copy_mode : 4;
5234 uint32_t reserved : 26;
5251 VAStatus
vaCopy(
VADisplay dpy, VACopyObject * dst, VACopyObject * src, VACopyOption option);
5265 #include <va/va_enc_av1.h>