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
 
  553     VAEntrypointIDCT        = 3,
 
  554     VAEntrypointMoComp      = 4,
 
  555     VAEntrypointDeblocking  = 5,
 
  556     VAEntrypointEncSlice    = 6,    
 
  557     VAEntrypointEncPicture  = 7,    
 
  566     VAEntrypointEncSliceLP  = 8,
 
  618     VAConfigAttribRTFormat      = 0,
 
  619     VAConfigAttribSpatialResidual   = 1,
 
  620     VAConfigAttribSpatialClipping   = 2,
 
  621     VAConfigAttribIntraResidual     = 3,
 
  622     VAConfigAttribEncryption        = 4,
 
  623     VAConfigAttribRateControl       = 5,
 
 1057     VAConfigAttribTypeMax
 
 1066 typedef struct _VAConfigAttrib {
 
 1073 #define VA_RT_FORMAT_YUV420 0x00000001   
 1074 #define VA_RT_FORMAT_YUV422 0x00000002   
 1075 #define VA_RT_FORMAT_YUV444 0x00000004   
 1076 #define VA_RT_FORMAT_YUV411 0x00000008   
 1077 #define VA_RT_FORMAT_YUV400 0x00000010   
 1078 #define VA_RT_FORMAT_YUV420_10  0x00000100   
 1079 #define VA_RT_FORMAT_YUV422_10  0x00000200   
 1080 #define VA_RT_FORMAT_YUV444_10  0x00000400   
 1081 #define VA_RT_FORMAT_YUV420_12  0x00001000   
 1082 #define VA_RT_FORMAT_YUV422_12  0x00002000   
 1083 #define VA_RT_FORMAT_YUV444_12  0x00004000   
 1085 #define VA_RT_FORMAT_RGB16  0x00010000   
 1086 #define VA_RT_FORMAT_RGB32  0x00020000   
 1087 #define VA_RT_FORMAT_RGBP   0x00100000   
 1088 #define VA_RT_FORMAT_RGB32_10   0x00200000   
 1090 #define VA_RT_FORMAT_PROTECTED  0x80000000 
 1092 #define VA_RT_FORMAT_RGB32_10BPP    VA_RT_FORMAT_RGB32_10    
 1093 #define VA_RT_FORMAT_YUV420_10BPP   VA_RT_FORMAT_YUV420_10   
 1098 #define VA_RC_NONE                      0x00000001 
 1100 #define VA_RC_CBR                       0x00000002 
 1102 #define VA_RC_VBR                       0x00000004 
 1104 #define VA_RC_VCM                       0x00000008 
 1106 #define VA_RC_CQP                       0x00000010 
 1108 #define VA_RC_VBR_CONSTRAINED           0x00000020 
 1111 #define VA_RC_ICQ           0x00000040 
 1114 #define VA_RC_MB                        0x00000080 
 1116 #define VA_RC_CFS                       0x00000100 
 1127 #define VA_RC_PARALLEL                  0x00000200 
 1134 #define VA_RC_QVBR                      0x00000400 
 1145 #define VA_RC_AVBR                      0x00000800 
 1154 #define VA_RC_TCBRC                     0x00001000 
 1161 #define VA_DEC_SLICE_MODE_NORMAL       0x00000001 
 1163 #define VA_DEC_SLICE_MODE_BASE         0x00000002 
 1167 typedef union _VAConfigAttribValDecJPEG {
 
 1170         uint32_t rotation : 4;
 
 1174         uint32_t reserved : 27;
 
 1177 } VAConfigAttribValDecJPEG;
 
 1181 #define VA_DEC_PROCESSING_NONE     0x00000000 
 1183 #define VA_DEC_PROCESSING          0x00000001 
 1189 #define VA_ENC_PACKED_HEADER_NONE       0x00000000 
 1196 #define VA_ENC_PACKED_HEADER_SEQUENCE   0x00000001 
 1203 #define VA_ENC_PACKED_HEADER_PICTURE    0x00000002 
 1210 #define VA_ENC_PACKED_HEADER_SLICE      0x00000004 
 1219 #define VA_ENC_PACKED_HEADER_MISC       0x00000008 
 1221 #define VA_ENC_PACKED_HEADER_RAW_DATA   0x00000010 
 1227 #define VA_ENC_INTERLACED_NONE          0x00000000 
 1229 #define VA_ENC_INTERLACED_FRAME         0x00000001 
 1231 #define VA_ENC_INTERLACED_FIELD         0x00000002 
 1233 #define VA_ENC_INTERLACED_MBAFF         0x00000004 
 1235 #define VA_ENC_INTERLACED_PAFF          0x00000008 
 1241 #define VA_ENC_SLICE_STRUCTURE_POWER_OF_TWO_ROWS        0x00000001 
 1243 #define VA_ENC_SLICE_STRUCTURE_ARBITRARY_MACROBLOCKS    0x00000002 
 1245 #define VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS               0x00000004 
 1247 #define VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE           0x00000008 
 1249 #define VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS           0x00000010 
 1253 #define VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS         0x00000020 
 1257 typedef union _VAConfigAttribValMaxFrameSize {
 
 1274 typedef union _VAConfigAttribValEncJPEG {
 
 1284         uint32_t max_num_components : 3;
 
 1285         uint32_t max_num_scans : 4;
 
 1286         uint32_t max_num_huffman_tables : 3;
 
 1287         uint32_t max_num_quantization_tables : 3;
 
 1295 #define VA_ENC_QUANTIZATION_NONE                        0x00000000 
 1297 #define VA_ENC_QUANTIZATION_TRELLIS_SUPPORTED           0x00000001 
 1308 #define VA_PREDICTION_DIRECTION_PREVIOUS                0x00000001 
 1310 #define VA_PREDICTION_DIRECTION_FUTURE                  0x00000002 
 1312 #define VA_PREDICTION_DIRECTION_BI_NOT_EMPTY            0x00000004 
 1318 #define VA_ENC_INTRA_REFRESH_NONE                       0x00000000 
 1320 #define VA_ENC_INTRA_REFRESH_ROLLING_COLUMN             0x00000001 
 1322 #define VA_ENC_INTRA_REFRESH_ROLLING_ROW                0x00000002 
 1324 #define VA_ENC_INTRA_REFRESH_ADAPTIVE                   0x00000010 
 1326 #define VA_ENC_INTRA_REFRESH_CYCLIC                     0x00000020 
 1328 #define VA_ENC_INTRA_REFRESH_P_FRAME                    0x00010000 
 1330 #define VA_ENC_INTRA_REFRESH_B_FRAME                    0x00020000 
 1332 #define VA_ENC_INTRA_REFRESH_MULTI_REF                  0x00040000 
 1337 typedef union _VAConfigAttribValEncROI {
 
 1365         uint32_t reserved                   : 22;
 
 1371 typedef union _VAConfigAttribValEncRateControlExt {
 
 1406         uint32_t reserved                            : 23;
 
 1412 typedef union _VAConfigAttribValMultipleFrame {
 
 1427 typedef union _VAConfigAttribValContextPriority {
 
 1439 typedef union _VAConfigAttribValEncPerBlockControl {
 
 1455 #define VA_PC_CIPHER_AES                    0x00000001 
 1459 #define VA_PC_BLOCK_SIZE_128                0x00000001 
 1461 #define VA_PC_BLOCK_SIZE_192                0x00000002 
 1463 #define VA_PC_BLOCK_SIZE_256                0x00000004 
 1467 #define VA_PC_CIPHER_MODE_ECB               0x00000001 
 1469 #define VA_PC_CIPHER_MODE_CBC               0x00000002 
 1471 #define VA_PC_CIPHER_MODE_CTR               0x00000004 
 1475 #define VA_PC_SAMPLE_TYPE_FULLSAMPLE        0x00000001 
 1477 #define VA_PC_SAMPLE_TYPE_SUBSAMPLE         0x00000002 
 1481 #define VA_PC_USAGE_DEFAULT                 0x00000000 
 1483 #define VA_PC_USAGE_WIDEVINE                0x00000001 
 1488 #define VA_PROCESSING_RATE_NONE                       0x00000000 
 1490 #define VA_PROCESSING_RATE_ENCODE                     0x00000001 
 1492 #define VA_PROCESSING_RATE_DECODE                     0x00000002 
 1498 #define VA_ATTRIB_NOT_SUPPORTED 0x80000000 
 1537     int *num_entrypoints        
 
 1572     VAConfigID *config_id 
 
 1580     VAConfigID config_id
 
 1593     VAConfigID config_id,
 
 1624 #define VA_INVALID_ID       0xffffffff 
 1625 #define VA_INVALID_SURFACE  VA_INVALID_ID 
 1639 typedef struct _VAGenericValue {
 
 1658 #define VA_SURFACE_ATTRIB_NOT_SUPPORTED 0x00000000 
 1660 #define VA_SURFACE_ATTRIB_GETTABLE      0x00000001 
 1662 #define VA_SURFACE_ATTRIB_SETTABLE      0x00000002 
 1667     VASurfaceAttribNone = 0,
 
 1719 typedef struct _VASurfaceAttrib {
 
 1736 #define VA_SURFACE_ATTRIB_MEM_TYPE_VA           0x00000001 
 1738 #define VA_SURFACE_ATTRIB_MEM_TYPE_V4L2         0x00000002 
 1740 #define VA_SURFACE_ATTRIB_MEM_TYPE_USER_PTR     0x00000004 
 1746 typedef union _VASurfaceAttribAlignmentStruct {
 
 1752         uint32_t reserved              : 24;
 
 1761 typedef struct _VASurfaceAttribExternalBuffers {
 
 1773     uint32_t pitches[4];
 
 1775     uint32_t offsets[4];
 
 1789 #define VA_SURFACE_EXTBUF_DESC_ENABLE_TILING    0x00000001 
 1791 #define VA_SURFACE_EXTBUF_DESC_CACHED       0x00000002 
 1793 #define VA_SURFACE_EXTBUF_DESC_UNCACHED     0x00000004 
 1795 #define VA_SURFACE_EXTBUF_DESC_WC       0x00000008 
 1797 #define VA_SURFACE_EXTBUF_DESC_PROTECTED        0x80000000 
 1802 #define VA_SURFACE_ATTRIB_USAGE_HINT_GENERIC    0x00000000 
 1804 #define VA_SURFACE_ATTRIB_USAGE_HINT_DECODER    0x00000001 
 1806 #define VA_SURFACE_ATTRIB_USAGE_HINT_ENCODER    0x00000002 
 1808 #define VA_SURFACE_ATTRIB_USAGE_HINT_VPP_READ   0x00000004 
 1810 #define VA_SURFACE_ATTRIB_USAGE_HINT_VPP_WRITE  0x00000008 
 1812 #define VA_SURFACE_ATTRIB_USAGE_HINT_DISPLAY    0x00000010 
 1815 #define VA_SURFACE_ATTRIB_USAGE_HINT_EXPORT     0x00000020 
 1851     unsigned int       *num_attribs
 
 1874     unsigned int        format,
 
 1876     unsigned int        height,
 
 1877     VASurfaceID        *surfaces,
 
 1878     unsigned int        num_surfaces,
 
 1880     unsigned int        num_attribs
 
 1893     VASurfaceID *surfaces,
 
 1897 #define VA_PROGRESSIVE 0x1 
 1912     VAConfigID config_id,
 
 1916     VASurfaceID *render_targets,
 
 1917     int num_render_targets,
 
 1951     VAMFContextID *mf_context    
 
 1989     VAMFContextID mf_context,
 
 2007     VAMFContextID mf_context,
 
 2022     VAPictureParameterBufferType    = 0,
 
 2023     VAIQMatrixBufferType        = 1,
 
 2024     VABitPlaneBufferType        = 2,
 
 2025     VASliceGroupMapBufferType       = 3,
 
 2026     VASliceParameterBufferType      = 4,
 
 2027     VASliceDataBufferType       = 5,
 
 2028     VAMacroblockParameterBufferType = 6,
 
 2029     VAResidualDataBufferType        = 7,
 
 2030     VADeblockingParameterBufferType = 8,
 
 2031     VAImageBufferType           = 9,
 
 2032     VAProtectedSliceDataBufferType  = 10,
 
 2033     VAQMatrixBufferType                 = 11,
 
 2034     VAHuffmanTableBufferType            = 12,
 
 2035     VAProbabilityBufferType             = 13,
 
 2038     VAEncCodedBufferType        = 21,
 
 2039     VAEncSequenceParameterBufferType    = 22,
 
 2040     VAEncPictureParameterBufferType = 23,
 
 2041     VAEncSliceParameterBufferType   = 24,
 
 2042     VAEncPackedHeaderParameterBufferType = 25,
 
 2043     VAEncPackedHeaderDataBufferType     = 26,
 
 2044     VAEncMiscParameterBufferType    = 27,
 
 2045     VAEncMacroblockParameterBufferType  = 28,
 
 2046     VAEncMacroblockMapBufferType        = 29,
 
 2081     VAEncFEIMBCodeBufferType            = 44,
 
 2082     VAEncFEIDistortionBufferType        = 45,
 
 2083     VAEncFEIMBControlBufferType         = 46,
 
 2084     VAEncFEIMVPredictorBufferType       = 47,
 
 2085     VAStatsStatisticsParameterBufferType = 48,
 
 2090     VAStatsMVBufferType                 = 51,
 
 2091     VAStatsMVPredictorBufferType        = 52,
 
 2194 typedef struct _VAContextParameterUpdateBuffer {
 
 2207     uint32_t reserved[VA_PADDING_MEDIUM];
 
 2222 #define VA_ENCRYPTION_TYPE_FULLSAMPLE_CTR       0x00000001   
 2223 #define VA_ENCRYPTION_TYPE_FULLSAMPLE_CBC       0x00000002   
 2224 #define VA_ENCRYPTION_TYPE_SUBSAMPLE_CTR        0x00000004   
 2225 #define VA_ENCRYPTION_TYPE_SUBSAMPLE_CBC        0x00000008   
 2228 typedef struct _VAEncryptionSegmentInfo {
 
 2242     uint8_t aes_cbc_iv_or_ctr[64];
 
 2244     uint32_t va_reserved[VA_PADDING_MEDIUM];
 
 2248 typedef struct _VAEncryptionParameters {
 
 2265     uint8_t wrapped_decrypt_blob[64];
 
 2268     uint8_t wrapped_encrypt_blob[64];
 
 2291     uint32_t va_reserved[VA_PADDING_MEDIUM];
 
 2297 typedef struct _VAProcessingRateParameterEnc {
 
 2300     uint8_t         reserved[3];
 
 2314 typedef struct _VAProcessingRateParameterDec {
 
 2317     uint8_t         reserved0[3];
 
 2321 typedef struct _VAProcessingRateParameter {
 
 2326 } VAProcessingRateParameter;
 
 2352     VAProcessingRateParameter *proc_buf,
 
 2353     unsigned int       *processing_rate
 
 2357     VAEncMiscParameterTypeFrameRate     = 0,
 
 2358     VAEncMiscParameterTypeRateControl   = 1,
 
 2359     VAEncMiscParameterTypeMaxSliceSize  = 2,
 
 2360     VAEncMiscParameterTypeAIR       = 3,
 
 2365     VAEncMiscParameterTypeQualityLevel  = 6,
 
 2423 typedef struct _VAEncPackedHeaderParameterBuffer {
 
 2452 typedef struct _VAEncMiscParameterBuffer {
 
 2458 typedef struct _VAEncMiscParameterTemporalLayerStructure {
 
 2469     uint32_t layer_id[32];
 
 2477 typedef struct _VAEncMiscParameterRateControl {
 
 2537             uint32_t enable_dynamic_scaling : 1;
 
 2594 typedef struct _VAEncMiscParameterFrameRate {
 
 2634 typedef struct _VAEncMiscParameterMaxSliceSize {
 
 2635     uint32_t max_slice_size;
 
 2641 typedef struct _VAEncMiscParameterAIR {
 
 2642     uint32_t air_num_mbs;
 
 2643     uint32_t air_threshold;
 
 2648 } VAEncMiscParameterAIR;
 
 2653 typedef struct _VAEncMiscParameterRIR {
 
 2664             uint32_t enable_rir_column : 1;
 
 2666             uint32_t enable_rir_row : 1;
 
 2667             uint32_t reserved : 30;
 
 2675     uint16_t intra_insertion_location;
 
 2680     uint16_t intra_insert_size;
 
 2685     uint8_t  qp_delta_for_inserted_intra;
 
 2688 } VAEncMiscParameterRIR;
 
 2698 typedef struct _VAEncMiscParameterHRD {
 
 2730 typedef struct _VAEncMiscParameterBufferMaxFrameSize {
 
 2750 typedef struct _VAEncMiscParameterBufferMultiPassFrameSize {
 
 2778 typedef struct _VAEncMiscParameterBufferQualityLevel {
 
 2794 typedef struct _VAEncMiscParameterQuantization {
 
 2799             uint32_t disable_trellis : 1;
 
 2801             uint32_t enable_trellis_I : 1;
 
 2803             uint32_t enable_trellis_P : 1;
 
 2805             uint32_t enable_trellis_B : 1;
 
 2806             uint32_t reserved : 28;
 
 2809     } quantization_flags;
 
 2810     uint32_t va_reserved;
 
 2822 typedef struct _VAEncMiscParameterSkipFrame {
 
 2849 typedef struct _VAEncROI {
 
 2875 typedef struct _VAEncMiscParameterBufferROI {
 
 2882     int8_t                max_delta_qp;
 
 2883     int8_t                min_delta_qp;
 
 2902             uint32_t  roi_value_is_qp_delta    : 1;
 
 2903             uint32_t  reserved                 : 31;
 
 2910 } VAEncMiscParameterBufferROI;
 
 2922 typedef struct _VAEncMiscParameterBufferDirtyRect {
 
 2924     uint32_t    num_roi_rectangle;
 
 2928 } VAEncMiscParameterBufferDirtyRect;
 
 2931 typedef struct _VAEncMiscParameterParallelRateControl {
 
 2943 typedef struct _VAEncMiscParameterEncQuality {
 
 2964             uint32_t ReservedBit                        : 1;
 
 2999         uint32_t encControls;
 
 3003     uint8_t FTQSkipThresholdLUT[52];
 
 3005     uint16_t NonFTQSkipThresholdLUT[52];
 
 3007     uint32_t reserved[VA_PADDING_HIGH];  
 
 3017 typedef struct _VAEncMiscParameterCustomRoundingControl {
 
 3043             uint32_t    reserved                        : 16;
 
 3046     }   rounding_offset_setting;
 
 3057 #define VA_SLICE_DATA_FLAG_ALL      0x00     
 3058 #define VA_SLICE_DATA_FLAG_BEGIN    0x01     
 3059 #define VA_SLICE_DATA_FLAG_MIDDLE   0x02     
 3060 #define VA_SLICE_DATA_FLAG_END      0x04     
 3063 typedef struct _VASliceParameterBufferBase {
 
 3064     uint32_t slice_data_size;   
 
 3065     uint32_t slice_data_offset; 
 
 3066     uint32_t slice_data_flag;   
 
 3067 } VASliceParameterBufferBase;
 
 3084 typedef struct _VAHuffmanTableBufferJPEGBaseline {
 
 3086     uint8_t       load_huffman_table[2];
 
 3092         uint8_t   num_dc_codes[16];
 
 3094         uint8_t   dc_values[12];
 
 3099         uint8_t   num_ac_codes[16];
 
 3101         uint8_t   ac_values[162];
 
 3120 typedef struct _VAPictureParameterBufferMPEG2 {
 
 3121     uint16_t horizontal_size;
 
 3122     uint16_t vertical_size;
 
 3123     VASurfaceID forward_reference_picture;
 
 3124     VASurfaceID backward_reference_picture;
 
 3126     int32_t picture_coding_type;
 
 3130             uint32_t intra_dc_precision     : 2;
 
 3131             uint32_t picture_structure      : 2;
 
 3132             uint32_t top_field_first        : 1;
 
 3133             uint32_t frame_pred_frame_dct       : 1;
 
 3134             uint32_t concealment_motion_vectors : 1;
 
 3135             uint32_t q_scale_type           : 1;
 
 3136             uint32_t intra_vlc_format       : 1;
 
 3137             uint32_t alternate_scan         : 1;
 
 3138             uint32_t repeat_first_field     : 1;
 
 3139             uint32_t progressive_frame      : 1;
 
 3140             uint32_t is_first_field         : 1; 
 
 3145     } picture_coding_extension;
 
 3149 } VAPictureParameterBufferMPEG2;
 
 3152 typedef struct _VAIQMatrixBufferMPEG2 {
 
 3162     uint8_t intra_quantiser_matrix[64];
 
 3164     uint8_t non_intra_quantiser_matrix[64];
 
 3166     uint8_t chroma_intra_quantiser_matrix[64];
 
 3168     uint8_t chroma_non_intra_quantiser_matrix[64];
 
 3175 typedef struct _VASliceParameterBufferMPEG2 {
 
 3176     uint32_t slice_data_size;
 
 3177     uint32_t slice_data_offset;
 
 3178     uint32_t slice_data_flag; 
 
 3179     uint32_t macroblock_offset;
 
 3180     uint32_t slice_horizontal_position;
 
 3181     uint32_t slice_vertical_position;
 
 3182     int32_t quantiser_scale_code;
 
 3183     int32_t intra_slice_flag;
 
 3190 typedef struct _VAMacroblockParameterBufferMPEG2 {
 
 3191     uint16_t macroblock_address;
 
 3197     uint8_t macroblock_type;  
 
 3200             uint32_t frame_motion_type      : 2;
 
 3201             uint32_t field_motion_type      : 2;
 
 3202             uint32_t dct_type           : 1;
 
 3206     uint8_t motion_vertical_field_select;
 
 3216     int16_t PMV[2][2][2]; 
 
 3217     uint16_t coded_block_pattern;
 
 3224     uint16_t num_skipped_macroblocks;
 
 3233 #define VA_MB_TYPE_MOTION_FORWARD   0x02 
 3234 #define VA_MB_TYPE_MOTION_BACKWARD  0x04 
 3235 #define VA_MB_TYPE_MOTION_PATTERN   0x08 
 3236 #define VA_MB_TYPE_MOTION_INTRA     0x10 
 3253 typedef struct _VAPictureParameterBufferMPEG4 {
 
 3255     uint16_t vop_height;
 
 3256     VASurfaceID forward_reference_picture;
 
 3257     VASurfaceID backward_reference_picture;
 
 3260             uint32_t short_video_header     : 1;
 
 3261             uint32_t chroma_format          : 2;
 
 3262             uint32_t interlaced         : 1;
 
 3263             uint32_t obmc_disable           : 1;
 
 3264             uint32_t sprite_enable          : 2;
 
 3265             uint32_t sprite_warping_accuracy    : 2;
 
 3266             uint32_t quant_type         : 1;
 
 3267             uint32_t quarter_sample         : 1;
 
 3268             uint32_t data_partitioned       : 1;
 
 3269             uint32_t reversible_vlc         : 1;
 
 3270             uint32_t resync_marker_disable      : 1;
 
 3274     uint8_t no_of_sprite_warping_points;
 
 3275     int16_t sprite_trajectory_du[3];
 
 3276     int16_t sprite_trajectory_dv[3];
 
 3277     uint8_t quant_precision;
 
 3280             uint32_t vop_coding_type        : 2;
 
 3281             uint32_t backward_reference_vop_coding_type : 2;
 
 3282             uint32_t vop_rounding_type      : 1;
 
 3283             uint32_t intra_dc_vlc_thr       : 3;
 
 3284             uint32_t top_field_first        : 1;
 
 3285             uint32_t alternate_vertical_scan_flag   : 1;
 
 3289     uint8_t vop_fcode_forward;
 
 3290     uint8_t vop_fcode_backward;
 
 3291     uint16_t vop_time_increment_resolution;
 
 3293     uint8_t num_gobs_in_vop;
 
 3294     uint8_t num_macroblocks_in_gob;
 
 3304 typedef struct _VAIQMatrixBufferMPEG4 {
 
 3310     uint8_t intra_quant_mat[64];
 
 3312     uint8_t non_intra_quant_mat[64];
 
 3319 typedef struct _VASliceParameterBufferMPEG4 {
 
 3320     uint32_t slice_data_size;
 
 3321     uint32_t slice_data_offset;
 
 3322     uint32_t slice_data_flag; 
 
 3323     uint32_t macroblock_offset;
 
 3324     uint32_t macroblock_number;
 
 3325     int32_t quant_scale;
 
 3338     VAMvMode1MvHalfPel                 = 1,
 
 3339     VAMvMode1MvHalfPelBilinear         = 2,
 
 3340     VAMvModeMixedMv                    = 3,
 
 3341     VAMvModeIntensityCompensation      = 4
 
 3357 typedef struct _VAPictureParameterBufferVC1 {
 
 3358     VASurfaceID forward_reference_picture;
 
 3359     VASurfaceID backward_reference_picture;
 
 3363     VASurfaceID inloop_decoded_picture;
 
 3368             uint32_t pulldown   : 1; 
 
 3369             uint32_t interlace  : 1; 
 
 3370             uint32_t tfcntrflag : 1; 
 
 3371             uint32_t finterpflag    : 1; 
 
 3373             uint32_t multires   : 1; 
 
 3374             uint32_t overlap    : 1; 
 
 3375             uint32_t syncmarker : 1; 
 
 3376             uint32_t rangered   : 1; 
 
 3377             uint32_t max_b_frames   : 3; 
 
 3378             uint32_t profile    : 2; 
 
 3383     uint16_t coded_width;       
 
 3384     uint16_t coded_height;  
 
 3387             uint32_t broken_link    : 1; 
 
 3388             uint32_t closed_entry   : 1; 
 
 3389             uint32_t panscan_flag   : 1; 
 
 3390             uint32_t loopfilter : 1; 
 
 3393     } entrypoint_fields;
 
 3394     uint8_t conditional_overlap_flag; 
 
 3395     uint8_t fast_uvmc_flag; 
 
 3398             uint32_t luma_flag  : 1; 
 
 3400             uint32_t chroma_flag    : 1; 
 
 3401             uint32_t chroma     : 3; 
 
 3404     } range_mapping_fields;
 
 3406     uint8_t b_picture_fraction; 
 
 3408     uint8_t mb_mode_table;  
 
 3409     uint8_t range_reduction_frame;
 
 3410     uint8_t rounding_control;   
 
 3411     uint8_t post_processing;    
 
 3412     uint8_t picture_resolution_index;   
 
 3418             uint32_t picture_type       : 3; 
 
 3419             uint32_t frame_coding_mode  : 3; 
 
 3420             uint32_t top_field_first    : 1; 
 
 3421             uint32_t is_first_field     : 1; 
 
 3422             uint32_t intensity_compensation : 1; 
 
 3428             uint32_t mv_type_mb : 1;    
 
 3429             uint32_t direct_mb  : 1;    
 
 3430             uint32_t skip_mb    : 1;    
 
 3431             uint32_t field_tx   : 1;    
 
 3432             uint32_t forward_mb : 1;    
 
 3433             uint32_t ac_pred    : 1;    
 
 3434             uint32_t overflags  : 1;    
 
 3440             uint32_t bp_mv_type_mb   : 1;    
 
 3441             uint32_t bp_direct_mb    : 1;    
 
 3442             uint32_t bp_skip_mb      : 1;    
 
 3443             uint32_t bp_field_tx     : 1;    
 
 3444             uint32_t bp_forward_mb   : 1;    
 
 3445             uint32_t bp_ac_pred      : 1;    
 
 3446             uint32_t bp_overflags    : 1;    
 
 3452             uint32_t reference_distance_flag : 1;
 
 3453             uint32_t reference_distance : 5;
 
 3454             uint32_t num_reference_pictures: 1;
 
 3455             uint32_t reference_field_pic_indicator  : 1;
 
 3461             uint32_t mv_mode        : 3; 
 
 3462             uint32_t mv_mode2       : 3; 
 
 3463             uint32_t mv_table       : 3; 
 
 3464             uint32_t two_mv_block_pattern_table: 2; 
 
 3465             uint32_t four_mv_switch     : 1; 
 
 3466             uint32_t four_mv_block_pattern_table : 2; 
 
 3467             uint32_t extended_mv_flag   : 1; 
 
 3468             uint32_t extended_mv_range  : 2; 
 
 3469             uint32_t extended_dmv_flag  : 1; 
 
 3470             uint32_t extended_dmv_range : 2; 
 
 3476             uint32_t dquant : 2;    
 
 3477             uint32_t quantizer     : 2;     
 
 3478             uint32_t half_qp    : 1;    
 
 3479             uint32_t pic_quantizer_scale : 5;
 
 3480             uint32_t pic_quantizer_type : 1;
 
 3481             uint32_t dq_frame   : 1;    
 
 3482             uint32_t dq_profile : 2;    
 
 3483             uint32_t dq_sb_edge : 2;    
 
 3484             uint32_t dq_db_edge     : 2;    
 
 3485             uint32_t dq_binary_level : 1;   
 
 3486             uint32_t alt_pic_quantizer : 5;
 
 3489     } pic_quantizer_fields;
 
 3492             uint32_t variable_sized_transform_flag  : 1;
 
 3493             uint32_t mb_level_transform_type_flag   : 1;
 
 3494             uint32_t frame_level_transform_type : 2;
 
 3495             uint32_t transform_ac_codingset_idx1    : 2;
 
 3496             uint32_t transform_ac_codingset_idx2    : 2;
 
 3497             uint32_t intra_transform_dc_table   : 1;
 
 3502     uint8_t luma_scale2;                  
 
 3503     uint8_t luma_shift2;                  
 
 3504     uint8_t intensity_compensation_field; 
 
 3507     uint32_t                va_reserved[VA_PADDING_MEDIUM - 1];
 
 3529 typedef struct _VASliceParameterBufferVC1 {
 
 3530     uint32_t slice_data_size;
 
 3531     uint32_t slice_data_offset;
 
 3532     uint32_t slice_data_flag; 
 
 3533     uint32_t macroblock_offset;
 
 3534     uint32_t slice_vertical_position;
 
 3549 typedef struct _VAPictureH264 {
 
 3550     VASurfaceID picture_id;
 
 3553     int32_t TopFieldOrderCnt;
 
 3554     int32_t BottomFieldOrderCnt;
 
 3560 #define VA_PICTURE_H264_INVALID         0x00000001 
 3561 #define VA_PICTURE_H264_TOP_FIELD       0x00000002 
 3562 #define VA_PICTURE_H264_BOTTOM_FIELD        0x00000004 
 3563 #define VA_PICTURE_H264_SHORT_TERM_REFERENCE    0x00000008 
 3564 #define VA_PICTURE_H264_LONG_TERM_REFERENCE 0x00000010 
 3571 typedef struct _VAPictureParameterBufferH264 {
 
 3572     VAPictureH264 CurrPic;
 
 3573     VAPictureH264 ReferenceFrames[16];  
 
 3574     uint16_t picture_width_in_mbs_minus1;
 
 3575     uint16_t picture_height_in_mbs_minus1;
 
 3576     uint8_t bit_depth_luma_minus8;
 
 3577     uint8_t bit_depth_chroma_minus8;
 
 3578     uint8_t num_ref_frames;
 
 3581             uint32_t chroma_format_idc          : 2;
 
 3582             uint32_t residual_colour_transform_flag     : 1; 
 
 3583             uint32_t gaps_in_frame_num_value_allowed_flag   : 1;
 
 3584             uint32_t frame_mbs_only_flag            : 1;
 
 3585             uint32_t mb_adaptive_frame_field_flag       : 1;
 
 3586             uint32_t direct_8x8_inference_flag      : 1;
 
 3587             uint32_t MinLumaBiPredSize8x8           : 1; 
 
 3588             uint32_t log2_max_frame_num_minus4      : 4;
 
 3589             uint32_t pic_order_cnt_type         : 2;
 
 3590             uint32_t log2_max_pic_order_cnt_lsb_minus4  : 4;
 
 3591             uint32_t delta_pic_order_always_zero_flag   : 1;
 
 3596     va_deprecated uint8_t num_slice_groups_minus1;
 
 3597     va_deprecated uint8_t slice_group_map_type;
 
 3598     va_deprecated uint16_t slice_group_change_rate_minus1;
 
 3599     int8_t pic_init_qp_minus26;
 
 3600     int8_t pic_init_qs_minus26;
 
 3601     int8_t chroma_qp_index_offset;
 
 3602     int8_t second_chroma_qp_index_offset;
 
 3605             uint32_t entropy_coding_mode_flag   : 1;
 
 3606             uint32_t weighted_pred_flag     : 1;
 
 3607             uint32_t weighted_bipred_idc        : 2;
 
 3608             uint32_t transform_8x8_mode_flag    : 1;
 
 3609             uint32_t field_pic_flag         : 1;
 
 3610             uint32_t constrained_intra_pred_flag    : 1;
 
 3611             uint32_t pic_order_present_flag         : 1; 
 
 3612             uint32_t deblocking_filter_control_present_flag : 1;
 
 3613             uint32_t redundant_pic_cnt_present_flag     : 1;
 
 3614             uint32_t reference_pic_flag         : 1; 
 
 3621     uint32_t                va_reserved[VA_PADDING_MEDIUM];
 
 3625 typedef struct _VAIQMatrixBufferH264 {
 
 3627     uint8_t ScalingList4x4[6][16];
 
 3629     uint8_t ScalingList8x8[2][64];
 
 3636 typedef struct _VASliceParameterBufferH264 {
 
 3637     uint32_t slice_data_size;
 
 3640     uint32_t slice_data_flag; 
 
 3652     uint16_t first_mb_in_slice;
 
 3654     uint8_t direct_spatial_mv_pred_flag;
 
 3669     uint8_t cabac_init_idc;
 
 3670     int8_t slice_qp_delta;
 
 3671     uint8_t disable_deblocking_filter_idc;
 
 3672     int8_t slice_alpha_c0_offset_div2;
 
 3673     int8_t slice_beta_offset_div2;
 
 3674     VAPictureH264 RefPicList0[32];  
 
 3675     VAPictureH264 RefPicList1[32];  
 
 3676     uint8_t luma_log2_weight_denom;
 
 3677     uint8_t chroma_log2_weight_denom;
 
 3678     uint8_t luma_weight_l0_flag;
 
 3679     int16_t luma_weight_l0[32];
 
 3680     int16_t luma_offset_l0[32];
 
 3681     uint8_t chroma_weight_l0_flag;
 
 3682     int16_t chroma_weight_l0[32][2];
 
 3683     int16_t chroma_offset_l0[32][2];
 
 3684     uint8_t luma_weight_l1_flag;
 
 3685     int16_t luma_weight_l1[32];
 
 3686     int16_t luma_offset_l1[32];
 
 3687     uint8_t chroma_weight_l1_flag;
 
 3688     int16_t chroma_weight_l1[32][2];
 
 3689     int16_t chroma_offset_l1[32][2];
 
 3699     VAEncPictureTypeIntra       = 0,
 
 3700     VAEncPictureTypePredictive      = 1,
 
 3701     VAEncPictureTypeBidirectional   = 2,
 
 3711 typedef struct _VAEncSliceParameterBuffer {
 
 3712     uint32_t start_row_number;  
 
 3713     uint32_t slice_height;  
 
 3716             uint32_t is_intra   : 1;
 
 3717             uint32_t disable_deblocking_filter_idc : 2;
 
 3718             uint32_t uses_long_term_ref     : 1;
 
 3719             uint32_t is_long_term_ref       : 1;
 
 3733 typedef struct _VAEncSequenceParameterBufferH263 {
 
 3734     uint32_t intra_period;
 
 3735     uint32_t bits_per_second;
 
 3736     uint32_t frame_rate;
 
 3737     uint32_t initial_qp;
 
 3742 } VAEncSequenceParameterBufferH263;
 
 3744 typedef struct _VAEncPictureParameterBufferH263 {
 
 3745     VASurfaceID reference_picture;
 
 3746     VASurfaceID reconstructed_picture;
 
 3748     uint16_t picture_width;
 
 3749     uint16_t picture_height;
 
 3750     VAEncPictureType picture_type;
 
 3754 } VAEncPictureParameterBufferH263;
 
 3760 typedef struct _VAEncSequenceParameterBufferMPEG4 {
 
 3761     uint8_t profile_and_level_indication;
 
 3762     uint32_t intra_period;
 
 3763     uint32_t video_object_layer_width;
 
 3764     uint32_t video_object_layer_height;
 
 3765     uint32_t vop_time_increment_resolution;
 
 3766     uint32_t fixed_vop_rate;
 
 3767     uint32_t fixed_vop_time_increment;
 
 3768     uint32_t bits_per_second;
 
 3769     uint32_t frame_rate;
 
 3770     uint32_t initial_qp;
 
 3775 } VAEncSequenceParameterBufferMPEG4;
 
 3777 typedef struct _VAEncPictureParameterBufferMPEG4 {
 
 3778     VASurfaceID reference_picture;
 
 3779     VASurfaceID reconstructed_picture;
 
 3781     uint16_t picture_width;
 
 3782     uint16_t picture_height;
 
 3783     uint32_t modulo_time_base; 
 
 3784     uint32_t vop_time_increment;
 
 3785     VAEncPictureType picture_type;
 
 3789 } VAEncPictureParameterBufferMPEG4;
 
 3815     unsigned int num_elements, 
 
 3836     unsigned int height,
 
 3837     unsigned int *unit_size,
 
 3838     unsigned int *pitch,
 
 3851     unsigned int num_elements 
 
 3869 #define VA_CODED_BUF_STATUS_PICTURE_AVE_QP_MASK         0xff 
 3870 #define VA_CODED_BUF_STATUS_LARGE_SLICE_MASK            0x100 
 3871 #define VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK         0x200 
 3872 #define VA_CODED_BUF_STATUS_BITRATE_OVERFLOW        0x400 
 3873 #define VA_CODED_BUF_STATUS_BITRATE_HIGH        0x800 
 3881 #define VA_CODED_BUF_STATUS_FRAME_SIZE_OVERFLOW         0x1000 
 3885 #define VA_CODED_BUF_STATUS_BAD_BITSTREAM               0x8000 
 3886 #define VA_CODED_BUF_STATUS_AIR_MB_OVER_THRESHOLD   0xff0000 
 3896 #define VA_CODED_BUF_STATUS_NUMBER_PASSES_MASK          0xf000000 
 3905 #define VA_CODED_BUF_STATUS_SINGLE_NALU                 0x10000000 
 3917 typedef  struct _VACodedBufferSegment  {
 
 3963 #define VA_MAPBUFFER_FLAG_DEFAULT 0 
 3965 #define VA_MAPBUFFER_FLAG_READ    1 
 3967 #define VA_MAPBUFFER_FLAG_WRITE   2 
 3969 VAStatus vaMapBuffer2(
 
 4110 #define VA_EXPORT_SURFACE_READ_ONLY        0x0001 
 4112 #define VA_EXPORT_SURFACE_WRITE_ONLY       0x0002 
 4114 #define VA_EXPORT_SURFACE_READ_WRITE       0x0003 
 4120 #define VA_EXPORT_SURFACE_SEPARATE_LAYERS  0x0004 
 4126 #define VA_EXPORT_SURFACE_COMPOSED_LAYERS  0x0008 
 4163                                VASurfaceID surface_id,
 
 4164                                uint32_t mem_type, uint32_t flags,
 
 4185     VASurfaceID render_target
 
 4232     VAMFContextID mf_context,
 
 4250     VASurfaceID render_target
 
 4254 #define VA_TIMEOUT_INFINITE 0xFFFFFFFFFFFFFFFF 
 4278     VASurfaceID surface,
 
 4283     VASurfaceRendering  = 1, 
 
 4284     VASurfaceDisplaying = 2, 
 
 4288     VASurfaceSkipped    = 8  
 
 4296     VASurfaceID render_target,
 
 4297     VASurfaceStatus *status 
 
 4301     VADecodeSliceMissing            = 0,
 
 4302     VADecodeMBError                 = 1,
 
 4304 } VADecodeErrorType;
 
 4310 typedef struct _VASurfaceDecodeMBErrors {
 
 4314     VADecodeErrorType decode_error_type;
 
 4336     VASurfaceID surface,
 
 4337     VAStatus error_status,
 
 4388 #define VA_FOURCC(ch0, ch1, ch2, ch3) \ 
 4389     ((unsigned long)(unsigned char) (ch0) | ((unsigned long)(unsigned char) (ch1) << 8) | \ 
 4390     ((unsigned long)(unsigned char) (ch2) << 16) | ((unsigned long)(unsigned char) (ch3) << 24 )) 
 4397 #define VA_FOURCC_NV12      0x3231564E 
 4401 #define VA_FOURCC_NV21      0x3132564E 
 4407 #define VA_FOURCC_AI44      0x34344149 
 4413 #define VA_FOURCC_RGBA      0x41424752 
 4418 #define VA_FOURCC_RGBX      0x58424752 
 4423 #define VA_FOURCC_BGRA      0x41524742 
 4428 #define VA_FOURCC_BGRX      0x58524742 
 4433 #define VA_FOURCC_ARGB      0x42475241 
 4438 #define VA_FOURCC_XRGB      0x42475258 
 4443 #define VA_FOURCC_ABGR          0x52474241 
 4448 #define VA_FOURCC_XBGR          0x52474258 
 4454 #define VA_FOURCC_UYVY          0x59565955 
 4459 #define VA_FOURCC_YUY2          0x32595559 
 4464 #define VA_FOURCC_AYUV          0x56555941 
 4469 #define VA_FOURCC_NV11          0x3131564e 
 4474 #define VA_FOURCC_YV12          0x32315659 
 4479 #define VA_FOURCC_P208          0x38303250 
 4484 #define VA_FOURCC_I420          0x30323449 
 4489 #define VA_FOURCC_YV24          0x34325659 
 4494 #define VA_FOURCC_YV32          0x32335659 
 4497 #define VA_FOURCC_Y800          0x30303859 
 4503 #define VA_FOURCC_IMC3          0x33434D49 
 4508 #define VA_FOURCC_411P          0x50313134 
 4514 #define VA_FOURCC_411R          0x52313134 
 4519 #define VA_FOURCC_422H          0x48323234 
 4524 #define VA_FOURCC_422V          0x56323234 
 4529 #define VA_FOURCC_444P          0x50343434 
 4535 #define VA_FOURCC_RGBP          0x50424752 
 4540 #define VA_FOURCC_BGRP          0x50524742 
 4546 #define VA_FOURCC_RGB565        0x36314752 
 4552 #define VA_FOURCC_BGR565        0x36314742 
 4559 #define VA_FOURCC_Y210          0x30313259 
 4565 #define VA_FOURCC_Y212          0x32313259 
 4571 #define VA_FOURCC_Y216          0x36313259 
 4577 #define VA_FOURCC_Y410          0x30313459 
 4583 #define VA_FOURCC_Y412          0x32313459 
 4589 #define VA_FOURCC_Y416          0x36313459 
 4595 #define VA_FOURCC_YV16          0x36315659 
 4601 #define VA_FOURCC_P010          0x30313050 
 4607 #define VA_FOURCC_P012          0x32313050 
 4613 #define VA_FOURCC_P016          0x36313050 
 4620 #define VA_FOURCC_I010          0x30313049 
 4626 #define VA_FOURCC_IYUV          0x56555949 
 4630 #define VA_FOURCC_A2R10G10B10   0x30335241  
 4634 #define VA_FOURCC_A2B10G10R10   0x30334241  
 4638 #define VA_FOURCC_X2R10G10B10   0x30335258  
 4642 #define VA_FOURCC_X2B10G10R10   0x30334258  
 4648 #define VA_FOURCC_Y8            0x20203859 
 4653 #define VA_FOURCC_Y16           0x20363159 
 4658 #define VA_FOURCC_VYUY          0x59555956 
 4663 #define VA_FOURCC_YVYU          0x55595659 
 4668 #define VA_FOURCC_ARGB64        0x34475241 
 4673 #define VA_FOURCC_ABGR64        0x34474241 
 4678 #define VA_FOURCC_XYUV          0x56555958 
 4683 #define VA_FOURCC_Q416          0x36313451 
 4686 #define VA_LSB_FIRST        1 
 4687 #define VA_MSB_FIRST        2 
 4689 typedef struct _VAImageFormat {
 
 4691     uint32_t    byte_order; 
 
 4692     uint32_t    bits_per_pixel;
 
 4696     uint32_t    green_mask;
 
 4698     uint32_t    alpha_mask;
 
 4706 typedef struct _VAImage {
 
 4708     VAImageFormat   format;
 
 4720     uint32_t    num_planes; 
 
 4725     uint32_t    pitches[3];
 
 4730     uint32_t    offsets[3];
 
 4733     int32_t num_palette_entries;   
 
 4738     int32_t entry_bytes;
 
 4743     int8_t component_order[4];
 
 4762     VAImageFormat *format_list, 
 
 4775     VAImageFormat *format,
 
 4789 VAStatus vaSetImagePalette(
 
 4797     unsigned char *palette
 
 4806     VASurfaceID surface,
 
 4810     unsigned int height,
 
 4822     VASurfaceID surface,
 
 4826     unsigned int src_width,
 
 4827     unsigned int src_height,
 
 4830     unsigned int dest_width,
 
 4831     unsigned int dest_height
 
 4867     VASurfaceID surface,
 
 4886 #define VA_SUBPICTURE_CHROMA_KEYING         0x0001 
 4887 #define VA_SUBPICTURE_GLOBAL_ALPHA          0x0002 
 4888 #define VA_SUBPICTURE_DESTINATION_IS_SCREEN_COORD   0x0004 
 4903     VAImageFormat *format_list, 
 
 4904     unsigned int *flags,    
 
 4905     unsigned int *num_formats   
 
 4947     unsigned int chromakey_min,
 
 4948     unsigned int chromakey_max,
 
 4949     unsigned int chromakey_mask
 
 4973     VASurfaceID *target_surfaces,
 
 4978     uint16_t src_height,
 
 4981     uint16_t dest_width,
 
 4982     uint16_t dest_height,
 
 4996     VASurfaceID *target_surfaces,
 
 5019     VADISPLAYATTRIB_BLE_OFF              = 0x00,
 
 5020     VADISPLAYATTRIB_BLE_LOW,
 
 5021     VADISPLAYATTRIB_BLE_MEDIUM,
 
 5022     VADISPLAYATTRIB_BLE_HIGH,
 
 5023     VADISPLAYATTRIB_BLE_NONE,
 
 5027 #define VA_ROTATION_NONE        0x00000000 
 5028 #define VA_ROTATION_90          0x00000001 
 5029 #define VA_ROTATION_180         0x00000002 
 5030 #define VA_ROTATION_270         0x00000003 
 5042 #define VA_MIRROR_NONE              0x00000000 
 5044 #define VA_MIRROR_HORIZONTAL        0x00000001 
 5046 #define VA_MIRROR_VERTICAL          0x00000002 
 5050 #define VA_OOL_DEBLOCKING_FALSE 0x00000000 
 5051 #define VA_OOL_DEBLOCKING_TRUE  0x00000001 
 5054 #define VA_RENDER_MODE_UNDEFINED           0 
 5055 #define VA_RENDER_MODE_LOCAL_OVERLAY       1 
 5056 #define VA_RENDER_MODE_LOCAL_GPU           2 
 5057 #define VA_RENDER_MODE_EXTERNAL_OVERLAY    4 
 5058 #define VA_RENDER_MODE_EXTERNAL_GPU        8 
 5061 #define VA_RENDER_DEVICE_UNDEFINED  0 
 5062 #define VA_RENDER_DEVICE_LOCAL      1 
 5063 #define VA_RENDER_DEVICE_EXTERNAL   2 
 5078 typedef union _VADisplayAttribValSubDevice {
 
 5108     VADisplayAttribBrightness       = 0,
 
 5109     VADisplayAttribContrast     = 1,
 
 5110     VADisplayAttribHue          = 2,
 
 5111     VADisplayAttribSaturation       = 3,
 
 5117     VADisplayAttribBackgroundColor      = 4,
 
 5129     VADisplayAttribDirectSurface       = 5,
 
 5130     VADisplayAttribRotation            = 6,
 
 5131     VADisplayAttribOutofLoopDeblock    = 7,
 
 5134     VADisplayAttribBLEBlackMode        = 8,
 
 5135     VADisplayAttribBLEWhiteMode        = 9,
 
 5136     VADisplayAttribBlueStretch         = 10,
 
 5137     VADisplayAttribSkinColorCorrection = 11,
 
 5142     VADisplayAttribCSCMatrix           = 12,
 
 5150     VADisplayAttribBlendColor          = 13,
 
 5155     VADisplayAttribOverlayAutoPaintColorKey   = 14,
 
 5160     VADisplayAttribOverlayColorKey  = 15,
 
 5166     VADisplayAttribRenderMode           = 16,
 
 5172     VADisplayAttribRenderDevice        = 17,
 
 5176     VADisplayAttribRenderRect          = 18,
 
 5180     VADisplayAttribSubDevice           = 19,
 
 5186     VADisplayAttribCopy                 = 20,
 
 5191     VADisplayPCIID                      = 21,
 
 5195 #define VA_DISPLAY_ATTRIB_NOT_SUPPORTED 0x0000 
 5196 #define VA_DISPLAY_ATTRIB_GETTABLE  0x0001 
 5197 #define VA_DISPLAY_ATTRIB_SETTABLE  0x0002 
 5199 typedef struct _VADisplayAttribute {
 
 5209 } VADisplayAttribute;
 
 5224     VADisplayAttribute *attr_list,  
 
 5236     VADisplayAttribute *attr_list,  
 
 5248     VADisplayAttribute *attr_list,
 
 5264 typedef struct _VAPictureHEVC {
 
 5282 #define VA_PICTURE_HEVC_INVALID                 0x00000001 
 5286 #define VA_PICTURE_HEVC_FIELD_PIC               0x00000002 
 5291 #define VA_PICTURE_HEVC_BOTTOM_FIELD            0x00000004 
 5293 #define VA_PICTURE_HEVC_LONG_TERM_REFERENCE     0x00000008 
 5308 #define VA_PICTURE_HEVC_RPS_ST_CURR_BEFORE      0x00000010 
 5313 #define VA_PICTURE_HEVC_RPS_ST_CURR_AFTER       0x00000020 
 5318 #define VA_PICTURE_HEVC_RPS_LT_CURR             0x00000040 
 5330 typedef struct _VAPictureVVC {
 
 5347 #define VA_PICTURE_VVC_INVALID                  0x00000001 
 5349 #define VA_PICTURE_VVC_LONG_TERM_REFERENCE      0x00000002 
 5355 #define VA_PICTURE_VVC_UNAVAILABLE_REFERENCE    0x00000004 
 5358     VACopyObjectSurface = 0,
 
 5359     VACopyObjectBuffer  = 1,
 
 5362 typedef struct _VACopyObject {
 
 5363     VACopyObjectType  obj_type;    
 
 5365         VASurfaceID surface_id;
 
 5369     uint32_t    va_reserved[VA_PADDING_MEDIUM];
 
 5372 typedef union _VACopyOption {
 
 5375         uint32_t va_copy_sync : 2;
 
 5377         uint32_t va_copy_mode : 4;
 
 5378         uint32_t reserved     : 26;
 
 5395 VAStatus 
vaCopy(
VADisplay dpy, VACopyObject * dst, VACopyObject * src, VACopyOption option);
 
 5402 #include <va/va_dec_vvc.h> 
 5410 #include <va/va_enc_av1.h> 
VAStatus vaTerminate(VADisplay dpy)
VAMvModeVC1
Definition: va.h:3336
VAEncMiscParameterType
Definition: va.h:2356
VADisplayAttribBLEMode
Definition: va.h:5018
VAStatus vaDestroySurfaces(VADisplay dpy, VASurfaceID *surfaces, int num_surfaces)
VAGenericID VASubpictureID
Definition: va.h:4878
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:1628
VAStatus vaDestroyContext(VADisplay dpy, VAContextID context)
VABufferType
Definition: va.h:2021
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:617
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:1636
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:1620
VASurfaceAttribType
Surface attribute types.
Definition: va.h:1666
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:550
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:2396
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:1557
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:2019
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:2392
@ VAEncMiscParameterTypeParallelBRC
Buffer type used for parallel BRC parameters.
Definition: va.h:2382
@ VAEncMiscParameterTypeRIR
Buffer type used for Rolling intra refresh.
Definition: va.h:2367
@ VAEncMiscParameterTypeCustomRoundingControl
Buffer type used for encoder rounding offset parameters.
Definition: va.h:2388
@ VAEncMiscParameterTypeHRD
Buffer type used for HRD parameters.
Definition: va.h:2364
@ VAEncMiscParameterTypeROI
Buffer type used for region-of-interest (ROI) parameters.
Definition: va.h:2374
@ VAEncMiscParameterTypeSubMbPartPel
Set MB partion mode mask and Half-pel/Quant-pel motion search.
Definition: va.h:2384
@ VAEncMiscParameterTypeEncQuality
set encode quality tuning
Definition: va.h:2386
@ VAEncMiscParameterTypeDirtyRect
Buffer type used for dirty region-of-interest (ROI) parameters.
Definition: va.h:2380
@ VAEncMiscParameterTypeQuantization
Buffer type used for quantization parameters, it's per-sequence parameter.
Definition: va.h:2369
@ VAEncMiscParameterTypeTemporalLayerStructure
Buffer type used for temporal layer structure.
Definition: va.h:2378
@ VAEncMiscParameterTypeMaxFrameSize
Buffer type used to express a maximum frame size (in bits).
Definition: va.h:2362
@ VAEncMiscParameterTypeMultiPassFrameSize
Buffer type used to express a maximum frame size (in bytes) settings for multiple pass.
Definition: va.h:2376
@ VAEncMiscParameterTypeSkipFrame
Buffer type used for sending skip frame parameters to the encoder's rate control, when the user has e...
Definition: va.h:2372
@ VAEncMiscParameterTypeFEIFrameControl
Buffer type used for FEI input frame level parameters.
Definition: va.h:2390
@ VAGenericValueTypeInteger
Definition: va.h:1629
@ VAGenericValueTypeFloat
Definition: va.h:1630
@ VAGenericValueTypePointer
Definition: va.h:1631
@ VAGenericValueTypeFunc
Definition: va.h:1632
@ VAProcPipelineParameterBufferType
Video processing pipeline parameter buffer.
Definition: va.h:2063
@ VASubsetsParameterBufferType
HEVC Decoding Subset Parameter buffer type.
Definition: va.h:2123
@ VAContextParameterUpdateBufferType
adjust context parameters dynamically
Definition: va.h:2129
@ VASubPicBufferType
VVC SubPic data buffer.
Definition: va.h:2172
@ VAEncQPBufferType
Encoding QP buffer.
Definition: va.h:2055
@ VAEncMacroblockDisableSkipMapBufferType
Definition: va.h:2098
@ VATileBufferType
VVC Tile Dimension data buffer.
Definition: va.h:2178
@ VAProtectedSessionExecuteBufferType
Protected session execution buffer type.
Definition: va.h:2136
@ VAEncFEICTBCmdBufferType
HEVC FEI CTB level cmd buffer it is CTB level information for future usage.
Definition: va.h:2103
@ VAProcFilterParameterBufferType
Video filter parameter buffer.
Definition: va.h:2076
@ VAStatsStatisticsBufferType
Statistics output for VAEntrypointStats progressive and top field of interlaced case.
Definition: va.h:2087
@ VASliceStructBufferType
VVC Slice Structure data buffer.
Definition: va.h:2184
@ VAAlfBufferType
VVC ALF data buffer.
Definition: va.h:2160
@ VALmcsBufferType
VVC LMCS data buffer.
Definition: va.h:2166
@ VAStatsStatisticsBottomFieldBufferType
Statistics output for VAEntrypointStats bottom field of interlaced case.
Definition: va.h:2089
@ VAEncFEICURecordBufferType
HEVC FEI CU level data buffer it's CTB level information for future usage.
Definition: va.h:2108
@ VAEncryptionParameterBufferType
Encryption parameters buffer for protected content session.
Definition: va.h:2142
@ VADecodeStreamoutBufferType
Definition: va.h:2111
@ VAEncDeltaQpPerBlockBufferType
Encoding delta QP per block buffer.
Definition: va.h:2153
@ VAEncFEIMVBufferType
FEI specific buffer types.
Definition: va.h:2080
@ VAConfigAttribProcessingRate
Processing rate reporting attribute. Read-only.
Definition: va.h:832
@ VAConfigAttribMaxPictureHeight
Maximum picture height. Read-only.
Definition: va.h:762
@ VAConfigAttribProtectedContentCipherMode
Cipher mode of the protected content session.
Definition: va.h:975
@ VAConfigAttribEncMacroblockInfo
Macroblock information. Read-only.
Definition: va.h:748
@ VAConfigAttribFrameSizeToleranceSupport
frame size tolerance support it indicates the tolerance of frame size
Definition: va.h:872
@ VAConfigAttribContextPriority
priority setting for the context. Read-Write attribute value is VAConfigAttribValContextPriority this...
Definition: va.h:943
@ VAConfigAttribProtectedContentUsage
Special usage attribute of the protected session.
Definition: va.h:989
@ VAConfigAttribEncQuantization
Encoding quantization attribute. Read-only.
Definition: va.h:786
@ VAConfigAttribProtectedContentCipherSampleType
Decryption sample type of the protected content session.
Definition: va.h:982
@ VAConfigAttribEncPerBlockControl
Settings per block attribute for Encoding. Read-only.
Definition: va.h:1041
@ VAConfigAttribEncMaxTileRows
Maximum number of tile rows. Read-only.
Definition: va.h:1048
@ VAConfigAttribTEETypeClient
TEE type client is a specific module supporting specific functions in TEE. Read-only.
Definition: va.h:954
@ VAConfigAttribMaxFrameSize
encode max frame size attribute. Read-only attribute value VAConfigAttribValMaxFrameSize represent ma...
Definition: va.h:922
@ VAConfigAttribDecJPEG
JPEG decoding attribute. Read-only.
Definition: va.h:646
@ VAConfigAttribEncMaxSlices
Maximum number of slices per frame. Read-only.
Definition: va.h:719
@ VAConfigAttribDecSliceMode
Slice Decoding mode. Read/write.
Definition: va.h:638
@ VAConfigAttribCustomRoundingControl
whether accept rouding setting from application. Read-only. This attribute is for encode quality,...
Definition: va.h:911
@ VAConfigAttribEncSkipFrame
Encoding skip frame attribute. Read-only.
Definition: va.h:802
@ VAConfigAttribEncHEVCFeatures
HEVC/H.265 encoding features. Read-only.
Definition: va.h:1000
@ VAConfigAttribEncAV1Ext2
AV1 encoding attribute extend2. Read-only.
Definition: va.h:1034
@ VAConfigAttribEncQualityRange
Encoding quality range attribute. Read-only.
Definition: va.h:779
@ VAConfigAttribEncDynamicScaling
Dynamic Scaling Attribute. Read-only.
Definition: va.h:867
@ VAConfigAttribEncTileSupport
Tile Support Attribute. Read-only.
Definition: va.h:905
@ VAConfigAttribEncROI
Encoding region-of-interest (ROI) attribute. Read-only.
Definition: va.h:813
@ VAConfigAttribFEIMVPredictors
Maximum number of FEI MV predictors. Read-only.
Definition: va.h:889
@ VAConfigAttribEncAV1
AV1 encoding attribute. Read-only.
Definition: va.h:1018
@ VAConfigAttribEncSliceStructure
Slice structure. Read-only.
Definition: va.h:736
@ VAConfigAttribStats
Statistics attribute. Read-only.
Definition: va.h:897
@ VAConfigAttribEncMaxRefFrames
Maximum number of reference frames. Read-only.
Definition: va.h:712
@ VAConfigAttribQPBlockSize
Encoding QP info block size attribute. Read-only. This attribute conveys the block sizes that underly...
Definition: va.h:917
@ VAConfigAttribEncRateControlExt
Encoding extended rate control attribute. Read-only.
Definition: va.h:821
@ VAConfigAttribEncHEVCBlockSizes
HEVC/H.265 encoding block sizes. Read-only.
Definition: va.h:1010
@ VAConfigAttribMaxPictureWidth
Maximum picture width. Read-only.
Definition: va.h:755
@ VAConfigAttribEncIntraRefresh
Encoding intra refresh attribute. Read-only.
Definition: va.h:794
@ VAConfigAttribEncMaxTileCols
Maximum number of tile cols. Read-only.
Definition: va.h:1055
@ VAConfigAttribDecProcessing
Decode processing support. Read/write.
Definition: va.h:679
@ VAConfigAttribPredictionDirection
inter frame prediction directrion attribute. Read-only. this attribute conveys the prediction directi...
Definition: va.h:934
@ VAConfigAttribTEEType
TEE could be any HW secure device. Read-only.
Definition: va.h:952
@ VAConfigAttribFEIFunctionType
Encode function type for FEI.
Definition: va.h:881
@ VAConfigAttribDecAV1Features
AV1 decoding features. Read-only.
Definition: va.h:950
@ VAConfigAttribEncParallelRateControl
Parallel Rate Control (hierachical B) attribute. Read-only.
Definition: va.h:858
@ VAConfigAttribEncJPEG
JPEG encoding attribute. Read-only.
Definition: va.h:770
@ VAConfigAttribEncInterlaced
Interlaced mode. Read/write.
Definition: va.h:701
@ VAConfigAttribProtectedContentCipherBlockSize
Cipher block size of the protected content session.
Definition: va.h:968
@ VAConfigAttribMultipleFrame
combined submission of multiple frames from different streams, it is optimization for different HW im...
Definition: va.h:938
@ VAConfigAttribEncAV1Ext1
AV1 encoding attribute extend1. Read-only.
Definition: va.h:1026
@ VAConfigAttribEncPackedHeaders
Packed headers mode. Read/write.
Definition: va.h:692
@ VAConfigAttribEncDirtyRect
Encoding dirty rectangle. Read-only.
Definition: va.h:846
@ VAConfigAttribProtectedContentCipherAlgorithm
Cipher algorithm of the protected content session.
Definition: va.h:961
@ VASurfaceAttribMaxWidth
Maximal width in pixels (int, read-only).
Definition: va.h:1681
@ VASurfaceAttribUsageHint
Surface usage hint, gives the driver a hint of intended usage to optimize allocation (e....
Definition: va.h:1697
@ VASurfaceAttribAlignmentSize
width and height log2 aligment in pixels (int, read-only)
Definition: va.h:1713
@ VASurfaceAttribMemoryType
Surface memory type expressed in bit fields (int, read/write).
Definition: va.h:1687
@ VASurfaceAttribMaxHeight
Maximal height in pixels (int, read-only).
Definition: va.h:1685
@ VASurfaceAttribDRMFormatModifiers
List of possible DRM format modifiers (pointer, write).
Definition: va.h:1704
@ VASurfaceAttribMinWidth
Minimal width in pixels (int, read-only).
Definition: va.h:1679
@ VASurfaceAttribExternalBufferDescriptor
External buffer descriptor (pointer, write).
Definition: va.h:1694
@ VASurfaceAttribPixelFormat
Pixel format as a FOURCC (int, read/write).
Definition: va.h:1677
@ VASurfaceAttribCount
Number of surface attributes.
Definition: va.h:1715
@ VASurfaceAttribMinHeight
Minimal height in pixels (int, read-only).
Definition: va.h:1683
@ VAEntrypointFEI
VAEntrypointFEI.
Definition: va.h:584
@ VAEntrypointProtectedTEEComm
VAEntrypointProtectedTEEComm.
Definition: va.h:607
@ VAEntrypointVideoProc
Definition: va.h:567
@ VAEntrypointStats
VAEntrypointStats.
Definition: va.h:601
@ VAEntrypointProtectedContent
VAEntrypointProtectedContent.
Definition: va.h:613
@ VAEncPackedHeaderPicture
Packed picture header.
Definition: va.h:2400
@ VAEncPackedHeaderRawData
Packed raw header.
Definition: va.h:2411
@ VAEncPackedHeaderSequence
Packed sequence header.
Definition: va.h:2398
@ VAEncPackedHeaderSlice
Packed slice header.
Definition: va.h:2402
@ 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:4001
uint32_t mem_type
Buffer memory type (See VASurfaceAttribMemoryType).
Definition: va.h:4014
uint32_t type
Buffer type (See VABufferType).
Definition: va.h:4005
size_t mem_size
Size of the underlying buffer.
Definition: va.h:4016
uintptr_t handle
Buffer handle.
Definition: va.h:4003
Coded buffer segment.
Definition: va.h:3917
uint32_t bit_offset
Bit offset into the data buffer where the video data starts.
Definition: va.h:3923
uint32_t status
Status set by the driver. See VA_CODED_BUF_STATUS_*.
Definition: va.h:3925
void * next
Pointer to the next VACodedBufferSegment element, or NULL if there is none.
Definition: va.h:3934
uint32_t size
Size of the data buffer in this segment (in bytes).
Definition: va.h:3921
void * buf
Pointer to the start of the data buffer.
Definition: va.h:3929
uint32_t reserved
Reserved for future use.
Definition: va.h:3927
update the context parameter this structure is used to update context parameters, such as priority of...
Definition: va.h:2194
uint32_t context_priority_update
indicate whether context priority changed
Definition: va.h:2198
VAConfigAttribValContextPriority context_priority
task/context priority
Definition: va.h:2205
uint32_t reserved
Reserved bits for future use, must be zero.
Definition: va.h:2200
Defines a maximum frame size (in bits).
Definition: va.h:2730
uint32_t max_frame_size
Maximum size of a frame (in bits).
Definition: va.h:2735
Maximum frame size (in bytes) settings for multiple pass.
Definition: va.h:2750
uint8_t * delta_qp
delta QP list for every pass
Definition: va.h:2761
uint32_t reserved
Reserved bytes for future use, must be zero.
Definition: va.h:2757
uint8_t num_passes
number of passes, every pass has different QP, currently AVC encoder can support up to 4 passes
Definition: va.h:2759
uint32_t max_frame_size
Maximum size of a frame (in byte)
Definition: va.h:2755
Encoding quality level.
Definition: va.h:2778
uint32_t quality_level
Encoding quality level setting. When set to 0, default quality level is used.
Definition: va.h:2782
Custom Encoder Rounding Offset Control. Application may use this structure to set customized rounding...
Definition: va.h:3017
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:3024
uint32_t rounding_offset_intra
Intra rounding offset Ignored if enable_custom_rouding_intra equals 0.
Definition: va.h:3029
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:3035
uint32_t rounding_offset_inter
Inter rounding offset Ignored if enable_custom_rouding_inter equals 0.
Definition: va.h:3040
uint32_t PanicModeDisable
Definition: va.h:2991
uint32_t UltraHMEDisable
Definition: va.h:2987
uint32_t HMEDisable
Definition: va.h:2983
uint32_t FTQSkipThresholdLUTInput
Definition: va.h:2960
uint32_t HMEMVCostScalingFactor
Definition: va.h:2981
uint32_t SuperHMEDisable
Definition: va.h:2985
uint32_t FTQOverride
Definition: va.h:2955
uint32_t ForceRepartitionCheck
Definition: va.h:2996
uint32_t directBiasAdjustmentEnable
Definition: va.h:2967
uint32_t NonFTQSkipThresholdLUTInput
Definition: va.h:2963
uint32_t useRawPicForRef
Definition: va.h:2949
uint32_t FTQEnable
Definition: va.h:2957
uint32_t skipCheckDisable
Definition: va.h:2952
uint32_t globalMotionBiasAdjustmentEnable
Definition: va.h:2974
uint32_t reserved
Definition: va.h:2620
uint32_t temporal_id
Definition: va.h:2618
uint32_t framerate
Definition: va.h:2614
uint32_t buffer_size
Definition: va.h:2715
uint32_t initial_buffer_fullness
Definition: va.h:2709
Attribute value for VAConfigAttribEncParallelRateControl.
Definition: va.h:2931
uint32_t num_layers
Definition: va.h:2933
uint32_t * num_b_in_gop
Definition: va.h:2938
Quantization settings for encoding.
Definition: va.h:2794
Rate control parameters.
Definition: va.h:2477
uint32_t bits_per_second
Definition: va.h:2479
uint32_t basic_unit_size
Definition: va.h:2507
uint32_t reserved
Definition: va.h:2554
uint32_t frame_tolerance_mode
Definition: va.h:2552
uint32_t mb_rate_control
Definition: va.h:2527
uint32_t temporal_id
Definition: va.h:2529
uint32_t disable_bit_stuffing
Definition: va.h:2519
uint32_t cfs_I_frames
Definition: va.h:2531
uint32_t ICQ_quality_factor
Definition: va.h:2563
uint32_t max_qp
Definition: va.h:2569
uint32_t window_size
Definition: va.h:2491
uint32_t enable_parallel_brc
Definition: va.h:2536
uint32_t disable_frame_skip
Definition: va.h:2517
uint32_t reset
Definition: va.h:2515
uint32_t target_frame_size
Definition: va.h:2583
uint32_t initial_qp
Definition: va.h:2496
uint32_t min_qp
Definition: va.h:2502
uint32_t target_percentage
Definition: va.h:2485
uint32_t quality_factor
Definition: va.h:2574
Encoding skip frame.
Definition: va.h:2822
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:2834
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:2829
uint8_t num_skip_frames
The number of frames skipped prior to the current frame. Valid when skip_frame_flag = 1.
Definition: va.h:2831
Temporal layer Structure.
Definition: va.h:2458
uint32_t periodicity
The length of the array defining frame layer membership. Should be 1-32.
Definition: va.h:2462
uint32_t number_of_layers
The number of temporal layers.
Definition: va.h:2460
Encoding region-of-interest (ROI).
Definition: va.h:2849
int8_t roi_value
ROI value.
Definition: va.h:2872
VARectangle roi_rectangle
Defines the ROI boundary in pixels, the driver will map it to appropriate codec coding units....
Definition: va.h:2853
Encode Slice Parameter Buffer.
Definition: va.h:3711
Encryption parameters buffer for VAEncryptionParameterBufferType.
Definition: va.h:2248
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:2273
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:2289
uint32_t num_segments
The number of sengments.
Definition: va.h:2254
uint32_t size_of_length
CENC counter length.
Definition: va.h:2262
VAEncryptionSegmentInfo * segment_info
Pointer of segments.
Definition: va.h:2256
uint32_t status_report_index
The status report index reserved for CENC fullsample workload. The related structures and definitions...
Definition: va.h:2260
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:2282
uint32_t encryption_type
Encryption type, refer to VA_ENCRYPTION_TYPE_FULLSAMPLE_CTR, VA_ENCRYPTION_TYPE_FULLSAMPLE_CBC,...
Definition: va.h:2252
structure for encrypted segment info.
Definition: va.h:2228
uint32_t segment_length
The length of the segments in bytes.
Definition: va.h:2233
uint32_t partial_aes_block_size
The length in bytes of the remainder of an incomplete block from a previous segment.
Definition: va.h:2236
uint32_t init_byte_length
The length in bytes of the initial clear data.
Definition: va.h:2238
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:2231
Generic value.
Definition: va.h:1639
float f
32-bit float.
Definition: va.h:1647
VAGenericFunc fn
Pointer to function.
Definition: va.h:1651
int32_t i
32-bit signed integer.
Definition: va.h:1645
void * p
Generic pointer.
Definition: va.h:1649
VAGenericValueType type
Value type. See VAGenericValueType.
Definition: va.h:1641
Huffman table for JPEG decoding.
Definition: va.h:3084
int32_t load_intra_quantiser_matrix
Same as the MPEG-2 bitstream syntax element.
Definition: va.h:3154
int32_t load_chroma_intra_quantiser_matrix
Same as the MPEG-2 bitstream syntax element.
Definition: va.h:3158
int32_t load_chroma_non_intra_quantiser_matrix
Same as the MPEG-2 bitstream syntax element.
Definition: va.h:3160
int32_t load_non_intra_quantiser_matrix
Same as the MPEG-2 bitstream syntax element.
Definition: va.h:3156
int32_t load_intra_quant_mat
Definition: va.h:3306
int32_t load_non_intra_quant_mat
Definition: va.h:3308
Generic motion vector data structure.
Definition: va.h:414
Description of picture properties of those in DPB surfaces.
Definition: va.h:5264
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:5273
VASurfaceID picture_id
reconstructed picture buffer surface index invalid when taking value VA_INVALID_SURFACE.
Definition: va.h:5268
Description of picture properties of those in DPB surfaces.
Definition: va.h:5330
int32_t pic_order_cnt
picture order count.
Definition: va.h:5337
VASurfaceID picture_id
reconstructed picture buffer surface index invalid when taking value VA_INVALID_SURFACE.
Definition: va.h:5334
uint8_t level_idc
Profile level.
Definition: va.h:2316
uint32_t intra_period
Period between I frames.
Definition: va.h:2306
uint8_t level_idc
Profile level.
Definition: va.h:2299
uint32_t ip_period
Period between I/P frames.
Definition: va.h:2308
uint32_t quality_level
quality level. When set to 0, default quality level is used.
Definition: va.h:2304
Structure to describe rectangle.
Definition: va.h:406
uint8_t num_ref_idx_l0_active_minus1
Definition: va.h:3661
uint8_t num_ref_idx_l1_active_minus1
Definition: va.h:3668
uint32_t slice_data_offset
Byte offset to the NAL Header Unit for this slice.
Definition: va.h:3639
uint16_t slice_data_bit_offset
Bit offset from NAL Header Unit to the begining of slice_data().
Definition: va.h:3651
VASurfaceAttribExternalBuffers structure for the VASurfaceAttribExternalBufferDescriptor attribute.
Definition: va.h:1761
uint32_t num_planes
number of planes for planar layout
Definition: va.h:1771
uint32_t data_size
total size of the buffer in bytes.
Definition: va.h:1769
uint32_t height
height in pixels.
Definition: va.h:1767
uint32_t width
width in pixels.
Definition: va.h:1765
uint32_t pixel_format
pixel format in fourcc.
Definition: va.h:1763
uint32_t flags
flags. See "Surface external buffer descriptor flags".
Definition: va.h:1781
uint32_t num_buffers
number of elements in the "buffers" array
Definition: va.h:1779
uintptr_t * buffers
buffer handles or user pointers
Definition: va.h:1777
void * private_data
reserved for passing private data
Definition: va.h:1783
Surface attribute.
Definition: va.h:1719
VAGenericValue value
Value. See "Surface attribute types" for the expected types.
Definition: va.h:1725
VASurfaceAttribType type
Type.
Definition: va.h:1721
uint32_t flags
Flags. See "Surface attribute flags".
Definition: va.h:1723
uint32_t reserved
reserved bits for future, must be zero
Definition: va.h:1433
uint32_t priority
the priority , for the Query operation (read) it represents highest priority for the set operation (w...
Definition: va.h:1431
Attribute value for VAConfigAttribEncJPEG.
Definition: va.h:1274
uint32_t non_interleaved_mode
set to 1 for non-interleaved.
Definition: va.h:1281
uint32_t differential_mode
set to 1 for differential.
Definition: va.h:1283
uint32_t progressive_dct_mode
set to 1 for progressive dct.
Definition: va.h:1279
uint32_t arithmatic_coding_mode
set to 1 for arithmatic coding.
Definition: va.h:1277
uint32_t reserved
reserved bit for future, must be zero
Definition: va.h:1448
uint32_t delta_qp_size_in_bytes
size of delta qp per block in bytes
Definition: va.h:1446
uint32_t log2_delta_qp_block_size
supported size of delta qp block
Definition: va.h:1444
uint32_t delta_qp_support
whether to support dela qp per block
Definition: va.h:1442
Attribute value for VAConfigAttribEncROI.
Definition: va.h:1337
uint32_t roi_rc_priority_support
A flag indicates whether ROI priority is supported.
Definition: va.h:1352
uint32_t roi_rc_qp_delta_support
A flag indicates whether ROI delta QP is supported.
Definition: va.h:1364
uint32_t num_roi_regions
The number of ROI regions supported, 0 if ROI is not supported.
Definition: va.h:1340
Attribute value for VAConfigAttribEncRateControlExt.
Definition: va.h:1371
uint32_t temporal_layer_bitrate_control_flag
Definition: va.h:1405
uint32_t max_num_temporal_layers_minus1
The maximum number of temporal layers minus 1.
Definition: va.h:1380
Attribute value for VAConfigAttribMaxFrameSize.
Definition: va.h:1257
uint32_t max_frame_size
support max frame size if max_frame_size == 1, VAEncMiscParameterTypeMaxFrameSize/VAEncMiscParameterB...
Definition: va.h:1264
uint32_t reserved
reserved bits for future, must be zero
Definition: va.h:1268
uint32_t multiple_pass
multiple_pass support
Definition: va.h:1266
Attribute value for VAConfigAttribMultipleFrame.
Definition: va.h:1412
uint32_t reserved
reserved bit for future, must be zero
Definition: va.h:1421
uint32_t max_num_concurrent_frames
max num of concurrent frames from different stream
Definition: va.h:1415
uint32_t mixed_quality_level
indicate whether all stream must support same quality level if mixed_quality_level == 0,...
Definition: va.h:1419
sub device info Sub-device is the concept basing on the "device" behind "vaDisplay"....
Definition: va.h:5078
uint32_t sub_device_count
sub devices count, read - only
Definition: va.h:5083
uint32_t reserved
reserved bits for future, must be zero
Definition: va.h:5085
uint32_t sub_device_mask
bit mask to indicate which sub_device is available, read only
Definition: va.h:5101
uint32_t current_sub_device
current sub device index, read - write
Definition: va.h:5081
VASurfaceAttribAlignmentStruct structure for the VASurfaceAttribAlignmentSize attribute.
Definition: va.h:1746
uint32_t log2_height_alignment
log2 height aligment
Definition: va.h:1751
uint32_t log2_width_alignment
log2 width aligment
Definition: va.h:1749
VAStatus vaGetDisplayAttributes(VADisplay dpy, VADisplayAttribute *attr_list, int num_attributes)
VADisplayAttribType
Definition: va.h:5107
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.