1*54e60f84SAndroid Build Coastguard Worker /* 2*54e60f84SAndroid Build Coastguard Worker * Copyright (c) 2014 Intel Corporation. All Rights Reserved. 3*54e60f84SAndroid Build Coastguard Worker * 4*54e60f84SAndroid Build Coastguard Worker * Permission is hereby granted, free of charge, to any person obtaining a 5*54e60f84SAndroid Build Coastguard Worker * copy of this software and associated documentation files (the 6*54e60f84SAndroid Build Coastguard Worker * "Software"), to deal in the Software without restriction, including 7*54e60f84SAndroid Build Coastguard Worker * without limitation the rights to use, copy, modify, merge, publish, 8*54e60f84SAndroid Build Coastguard Worker * distribute, sub license, and/or sell copies of the Software, and to 9*54e60f84SAndroid Build Coastguard Worker * permit persons to whom the Software is furnished to do so, subject to 10*54e60f84SAndroid Build Coastguard Worker * the following conditions: 11*54e60f84SAndroid Build Coastguard Worker * 12*54e60f84SAndroid Build Coastguard Worker * The above copyright notice and this permission notice (including the 13*54e60f84SAndroid Build Coastguard Worker * next paragraph) shall be included in all copies or substantial portions 14*54e60f84SAndroid Build Coastguard Worker * of the Software. 15*54e60f84SAndroid Build Coastguard Worker * 16*54e60f84SAndroid Build Coastguard Worker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 17*54e60f84SAndroid Build Coastguard Worker * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18*54e60f84SAndroid Build Coastguard Worker * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 19*54e60f84SAndroid Build Coastguard Worker * IN NO EVENT SHALL INTEL AND/OR ITS SUPPLIERS BE LIABLE FOR 20*54e60f84SAndroid Build Coastguard Worker * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21*54e60f84SAndroid Build Coastguard Worker * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22*54e60f84SAndroid Build Coastguard Worker * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23*54e60f84SAndroid Build Coastguard Worker */ 24*54e60f84SAndroid Build Coastguard Worker 25*54e60f84SAndroid Build Coastguard Worker /** 26*54e60f84SAndroid Build Coastguard Worker * \file va_dec_vp9.h 27*54e60f84SAndroid Build Coastguard Worker * \brief The VP9 decoding API 28*54e60f84SAndroid Build Coastguard Worker * 29*54e60f84SAndroid Build Coastguard Worker * This file contains the \ref api_dec_vp9 "VP9 decoding API". 30*54e60f84SAndroid Build Coastguard Worker */ 31*54e60f84SAndroid Build Coastguard Worker 32*54e60f84SAndroid Build Coastguard Worker #ifndef VA_DEC_VP9_H 33*54e60f84SAndroid Build Coastguard Worker #define VA_DEC_VP9_H 34*54e60f84SAndroid Build Coastguard Worker 35*54e60f84SAndroid Build Coastguard Worker #ifdef __cplusplus 36*54e60f84SAndroid Build Coastguard Worker extern "C" { 37*54e60f84SAndroid Build Coastguard Worker #endif 38*54e60f84SAndroid Build Coastguard Worker 39*54e60f84SAndroid Build Coastguard Worker /** 40*54e60f84SAndroid Build Coastguard Worker * \defgroup api_dec_vp9 VP9 decoding API 41*54e60f84SAndroid Build Coastguard Worker * 42*54e60f84SAndroid Build Coastguard Worker * This VP9 decoding API supports 8-bit 420 format only. 43*54e60f84SAndroid Build Coastguard Worker * 44*54e60f84SAndroid Build Coastguard Worker * @{ 45*54e60f84SAndroid Build Coastguard Worker */ 46*54e60f84SAndroid Build Coastguard Worker 47*54e60f84SAndroid Build Coastguard Worker 48*54e60f84SAndroid Build Coastguard Worker 49*54e60f84SAndroid Build Coastguard Worker 50*54e60f84SAndroid Build Coastguard Worker /** 51*54e60f84SAndroid Build Coastguard Worker * \brief VP9 Decoding Picture Parameter Buffer Structure 52*54e60f84SAndroid Build Coastguard Worker * 53*54e60f84SAndroid Build Coastguard Worker * This structure conveys picture level parameters. 54*54e60f84SAndroid Build Coastguard Worker * App should send a surface with this data structure down to VAAPI once 55*54e60f84SAndroid Build Coastguard Worker * per frame. 56*54e60f84SAndroid Build Coastguard Worker * 57*54e60f84SAndroid Build Coastguard Worker */ 58*54e60f84SAndroid Build Coastguard Worker typedef struct _VADecPictureParameterBufferVP9 { 59*54e60f84SAndroid Build Coastguard Worker /** \brief picture width 60*54e60f84SAndroid Build Coastguard Worker * Picture original resolution. The value may not be multiple of 8. 61*54e60f84SAndroid Build Coastguard Worker */ 62*54e60f84SAndroid Build Coastguard Worker uint16_t frame_width; 63*54e60f84SAndroid Build Coastguard Worker /** \brief picture height 64*54e60f84SAndroid Build Coastguard Worker * Picture original resolution. The value may not be multiple of 8. 65*54e60f84SAndroid Build Coastguard Worker */ 66*54e60f84SAndroid Build Coastguard Worker uint16_t frame_height; 67*54e60f84SAndroid Build Coastguard Worker 68*54e60f84SAndroid Build Coastguard Worker /** \brief Surface indices of reference frames in DPB. 69*54e60f84SAndroid Build Coastguard Worker * 70*54e60f84SAndroid Build Coastguard Worker * Each entry of the list specifies the surface index of the picture 71*54e60f84SAndroid Build Coastguard Worker * that is referred by current picture or will be referred by any future 72*54e60f84SAndroid Build Coastguard Worker * picture. 73*54e60f84SAndroid Build Coastguard Worker * Application who calls this API should update this list based on the 74*54e60f84SAndroid Build Coastguard Worker * refreshing information from VP9 bitstream. 75*54e60f84SAndroid Build Coastguard Worker */ 76*54e60f84SAndroid Build Coastguard Worker VASurfaceID reference_frames[8]; 77*54e60f84SAndroid Build Coastguard Worker 78*54e60f84SAndroid Build Coastguard Worker union { 79*54e60f84SAndroid Build Coastguard Worker struct { 80*54e60f84SAndroid Build Coastguard Worker /** \brief flags for current picture 81*54e60f84SAndroid Build Coastguard Worker * same syntax and semantic as those in VP9 code 82*54e60f84SAndroid Build Coastguard Worker */ 83*54e60f84SAndroid Build Coastguard Worker uint32_t subsampling_x : 1; 84*54e60f84SAndroid Build Coastguard Worker uint32_t subsampling_y : 1; 85*54e60f84SAndroid Build Coastguard Worker uint32_t frame_type : 1; 86*54e60f84SAndroid Build Coastguard Worker uint32_t show_frame : 1; 87*54e60f84SAndroid Build Coastguard Worker uint32_t error_resilient_mode : 1; 88*54e60f84SAndroid Build Coastguard Worker uint32_t intra_only : 1; 89*54e60f84SAndroid Build Coastguard Worker uint32_t allow_high_precision_mv : 1; 90*54e60f84SAndroid Build Coastguard Worker uint32_t mcomp_filter_type : 3; 91*54e60f84SAndroid Build Coastguard Worker uint32_t frame_parallel_decoding_mode : 1; 92*54e60f84SAndroid Build Coastguard Worker uint32_t reset_frame_context : 2; 93*54e60f84SAndroid Build Coastguard Worker uint32_t refresh_frame_context : 1; 94*54e60f84SAndroid Build Coastguard Worker uint32_t frame_context_idx : 2; 95*54e60f84SAndroid Build Coastguard Worker uint32_t segmentation_enabled : 1; 96*54e60f84SAndroid Build Coastguard Worker 97*54e60f84SAndroid Build Coastguard Worker /** \brief corresponds to variable temporal_update in VP9 code. 98*54e60f84SAndroid Build Coastguard Worker */ 99*54e60f84SAndroid Build Coastguard Worker uint32_t segmentation_temporal_update : 1; 100*54e60f84SAndroid Build Coastguard Worker /** \brief corresponds to variable update_mb_segmentation_map 101*54e60f84SAndroid Build Coastguard Worker * in VP9 code. 102*54e60f84SAndroid Build Coastguard Worker */ 103*54e60f84SAndroid Build Coastguard Worker uint32_t segmentation_update_map : 1; 104*54e60f84SAndroid Build Coastguard Worker 105*54e60f84SAndroid Build Coastguard Worker /** \brief Index of reference_frames[] and points to the 106*54e60f84SAndroid Build Coastguard Worker * LAST reference frame. 107*54e60f84SAndroid Build Coastguard Worker * It corresponds to active_ref_idx[0] in VP9 code. 108*54e60f84SAndroid Build Coastguard Worker */ 109*54e60f84SAndroid Build Coastguard Worker uint32_t last_ref_frame : 3; 110*54e60f84SAndroid Build Coastguard Worker /** \brief Sign Bias of the LAST reference frame. 111*54e60f84SAndroid Build Coastguard Worker * It corresponds to ref_frame_sign_bias[LAST_FRAME] in VP9 code. 112*54e60f84SAndroid Build Coastguard Worker */ 113*54e60f84SAndroid Build Coastguard Worker uint32_t last_ref_frame_sign_bias : 1; 114*54e60f84SAndroid Build Coastguard Worker /** \brief Index of reference_frames[] and points to the 115*54e60f84SAndroid Build Coastguard Worker * GOLDERN reference frame. 116*54e60f84SAndroid Build Coastguard Worker * It corresponds to active_ref_idx[1] in VP9 code. 117*54e60f84SAndroid Build Coastguard Worker */ 118*54e60f84SAndroid Build Coastguard Worker uint32_t golden_ref_frame : 3; 119*54e60f84SAndroid Build Coastguard Worker /** \brief Sign Bias of the GOLDERN reference frame. 120*54e60f84SAndroid Build Coastguard Worker * Corresponds to ref_frame_sign_bias[GOLDERN_FRAME] in VP9 code. 121*54e60f84SAndroid Build Coastguard Worker */ 122*54e60f84SAndroid Build Coastguard Worker uint32_t golden_ref_frame_sign_bias : 1; 123*54e60f84SAndroid Build Coastguard Worker /** \brief Index of reference_frames[] and points to the 124*54e60f84SAndroid Build Coastguard Worker * ALTERNATE reference frame. 125*54e60f84SAndroid Build Coastguard Worker * Corresponds to active_ref_idx[2] in VP9 code. 126*54e60f84SAndroid Build Coastguard Worker */ 127*54e60f84SAndroid Build Coastguard Worker uint32_t alt_ref_frame : 3; 128*54e60f84SAndroid Build Coastguard Worker /** \brief Sign Bias of the ALTERNATE reference frame. 129*54e60f84SAndroid Build Coastguard Worker * Corresponds to ref_frame_sign_bias[ALTREF_FRAME] in VP9 code. 130*54e60f84SAndroid Build Coastguard Worker */ 131*54e60f84SAndroid Build Coastguard Worker uint32_t alt_ref_frame_sign_bias : 1; 132*54e60f84SAndroid Build Coastguard Worker /** \brief Lossless Mode 133*54e60f84SAndroid Build Coastguard Worker * LosslessFlag = base_qindex == 0 && 134*54e60f84SAndroid Build Coastguard Worker * y_dc_delta_q == 0 && 135*54e60f84SAndroid Build Coastguard Worker * uv_dc_delta_q == 0 && 136*54e60f84SAndroid Build Coastguard Worker * uv_ac_delta_q == 0; 137*54e60f84SAndroid Build Coastguard Worker * Where base_qindex, y_dc_delta_q, uv_dc_delta_q and uv_ac_delta_q 138*54e60f84SAndroid Build Coastguard Worker * are all variables in VP9 code. 139*54e60f84SAndroid Build Coastguard Worker */ 140*54e60f84SAndroid Build Coastguard Worker uint32_t lossless_flag : 1; 141*54e60f84SAndroid Build Coastguard Worker } bits; 142*54e60f84SAndroid Build Coastguard Worker uint32_t value; 143*54e60f84SAndroid Build Coastguard Worker } pic_fields; 144*54e60f84SAndroid Build Coastguard Worker 145*54e60f84SAndroid Build Coastguard Worker /* following parameters have same syntax with those in VP9 code */ 146*54e60f84SAndroid Build Coastguard Worker uint8_t filter_level; 147*54e60f84SAndroid Build Coastguard Worker uint8_t sharpness_level; 148*54e60f84SAndroid Build Coastguard Worker 149*54e60f84SAndroid Build Coastguard Worker /** \brief number of tile rows specified by (1 << log2_tile_rows). 150*54e60f84SAndroid Build Coastguard Worker * It corresponds the variable with same name in VP9 code. 151*54e60f84SAndroid Build Coastguard Worker */ 152*54e60f84SAndroid Build Coastguard Worker uint8_t log2_tile_rows; 153*54e60f84SAndroid Build Coastguard Worker /** \brief number of tile columns specified by (1 << log2_tile_columns). 154*54e60f84SAndroid Build Coastguard Worker * It corresponds the variable with same name in VP9 code. 155*54e60f84SAndroid Build Coastguard Worker */ 156*54e60f84SAndroid Build Coastguard Worker uint8_t log2_tile_columns; 157*54e60f84SAndroid Build Coastguard Worker /** \brief Number of bytes taken up by the uncompressed frame header, 158*54e60f84SAndroid Build Coastguard Worker * which corresponds to byte length of function 159*54e60f84SAndroid Build Coastguard Worker * read_uncompressed_header() in VP9 code. 160*54e60f84SAndroid Build Coastguard Worker * Specifically, it is the byte count from bit stream buffer start to 161*54e60f84SAndroid Build Coastguard Worker * the last byte of uncompressed frame header. 162*54e60f84SAndroid Build Coastguard Worker * If there are other meta data in the buffer before uncompressed header, 163*54e60f84SAndroid Build Coastguard Worker * its size should be also included here. 164*54e60f84SAndroid Build Coastguard Worker */ 165*54e60f84SAndroid Build Coastguard Worker uint8_t frame_header_length_in_bytes; 166*54e60f84SAndroid Build Coastguard Worker 167*54e60f84SAndroid Build Coastguard Worker /** \brief The byte count of compressed header the bitstream buffer, 168*54e60f84SAndroid Build Coastguard Worker * which corresponds to syntax first_partition_size in code. 169*54e60f84SAndroid Build Coastguard Worker */ 170*54e60f84SAndroid Build Coastguard Worker uint16_t first_partition_size; 171*54e60f84SAndroid Build Coastguard Worker 172*54e60f84SAndroid Build Coastguard Worker /** These values are segment probabilities with same names in VP9 173*54e60f84SAndroid Build Coastguard Worker * function setup_segmentation(). They should be parsed directly from 174*54e60f84SAndroid Build Coastguard Worker * bitstream by application. 175*54e60f84SAndroid Build Coastguard Worker */ 176*54e60f84SAndroid Build Coastguard Worker uint8_t mb_segment_tree_probs[7]; 177*54e60f84SAndroid Build Coastguard Worker uint8_t segment_pred_probs[3]; 178*54e60f84SAndroid Build Coastguard Worker 179*54e60f84SAndroid Build Coastguard Worker /** \brief VP9 Profile definition 180*54e60f84SAndroid Build Coastguard Worker * value range [0..3]. 181*54e60f84SAndroid Build Coastguard Worker */ 182*54e60f84SAndroid Build Coastguard Worker uint8_t profile; 183*54e60f84SAndroid Build Coastguard Worker 184*54e60f84SAndroid Build Coastguard Worker /** \brief VP9 bit depth per sample 185*54e60f84SAndroid Build Coastguard Worker * same for both luma and chroma samples. 186*54e60f84SAndroid Build Coastguard Worker */ 187*54e60f84SAndroid Build Coastguard Worker uint8_t bit_depth; 188*54e60f84SAndroid Build Coastguard Worker 189*54e60f84SAndroid Build Coastguard Worker /** \brief Reserved bytes for future use, must be zero */ 190*54e60f84SAndroid Build Coastguard Worker uint32_t va_reserved[VA_PADDING_MEDIUM]; 191*54e60f84SAndroid Build Coastguard Worker 192*54e60f84SAndroid Build Coastguard Worker } VADecPictureParameterBufferVP9; 193*54e60f84SAndroid Build Coastguard Worker 194*54e60f84SAndroid Build Coastguard Worker 195*54e60f84SAndroid Build Coastguard Worker 196*54e60f84SAndroid Build Coastguard Worker /** 197*54e60f84SAndroid Build Coastguard Worker * \brief VP9 Segmentation Parameter Data Structure 198*54e60f84SAndroid Build Coastguard Worker * 199*54e60f84SAndroid Build Coastguard Worker * This structure conveys per segment parameters. 200*54e60f84SAndroid Build Coastguard Worker * 8 of this data structure will be included in VASegmentationParameterBufferVP9 201*54e60f84SAndroid Build Coastguard Worker * and sent to API in a single buffer. 202*54e60f84SAndroid Build Coastguard Worker * 203*54e60f84SAndroid Build Coastguard Worker */ 204*54e60f84SAndroid Build Coastguard Worker typedef struct _VASegmentParameterVP9 { 205*54e60f84SAndroid Build Coastguard Worker union { 206*54e60f84SAndroid Build Coastguard Worker struct { 207*54e60f84SAndroid Build Coastguard Worker /** \brief Indicates if per segment reference frame indicator 208*54e60f84SAndroid Build Coastguard Worker * is enabled. 209*54e60f84SAndroid Build Coastguard Worker * Corresponding to variable feature_enabled when 210*54e60f84SAndroid Build Coastguard Worker * j == SEG_LVL_REF_FRAME in function setup_segmentation() VP9 code. 211*54e60f84SAndroid Build Coastguard Worker */ 212*54e60f84SAndroid Build Coastguard Worker uint16_t segment_reference_enabled : 1; 213*54e60f84SAndroid Build Coastguard Worker /** \brief Specifies per segment reference indication. 214*54e60f84SAndroid Build Coastguard Worker * 0: reserved 215*54e60f84SAndroid Build Coastguard Worker * 1: Last ref 216*54e60f84SAndroid Build Coastguard Worker * 2: golden 217*54e60f84SAndroid Build Coastguard Worker * 3: altref 218*54e60f84SAndroid Build Coastguard Worker * Value can be derived from variable data when 219*54e60f84SAndroid Build Coastguard Worker * j == SEG_LVL_REF_FRAME in function setup_segmentation() VP9 code. 220*54e60f84SAndroid Build Coastguard Worker */ 221*54e60f84SAndroid Build Coastguard Worker uint16_t segment_reference : 2; 222*54e60f84SAndroid Build Coastguard Worker /** \brief Indicates if per segment skip feature is enabled. 223*54e60f84SAndroid Build Coastguard Worker * Corresponding to variable feature_enabled when 224*54e60f84SAndroid Build Coastguard Worker * j == SEG_LVL_SKIP in function setup_segmentation() VP9 code. 225*54e60f84SAndroid Build Coastguard Worker */ 226*54e60f84SAndroid Build Coastguard Worker uint16_t segment_reference_skipped : 1; 227*54e60f84SAndroid Build Coastguard Worker } fields; 228*54e60f84SAndroid Build Coastguard Worker uint16_t value; 229*54e60f84SAndroid Build Coastguard Worker } segment_flags; 230*54e60f84SAndroid Build Coastguard Worker 231*54e60f84SAndroid Build Coastguard Worker /** \brief Specifies the filter level information per segment. 232*54e60f84SAndroid Build Coastguard Worker * The value corresponds to variable lfi->lvl[seg][ref][mode] in VP9 code, 233*54e60f84SAndroid Build Coastguard Worker * where m is [ref], and n is [mode] in FilterLevel[m][n]. 234*54e60f84SAndroid Build Coastguard Worker */ 235*54e60f84SAndroid Build Coastguard Worker uint8_t filter_level[4][2]; 236*54e60f84SAndroid Build Coastguard Worker /** \brief Specifies per segment Luma AC quantization scale. 237*54e60f84SAndroid Build Coastguard Worker * Corresponding to y_dequant[qindex][1] in vp9_mb_init_quantizer() 238*54e60f84SAndroid Build Coastguard Worker * function of VP9 code. 239*54e60f84SAndroid Build Coastguard Worker */ 240*54e60f84SAndroid Build Coastguard Worker int16_t luma_ac_quant_scale; 241*54e60f84SAndroid Build Coastguard Worker /** \brief Specifies per segment Luma DC quantization scale. 242*54e60f84SAndroid Build Coastguard Worker * Corresponding to y_dequant[qindex][0] in vp9_mb_init_quantizer() 243*54e60f84SAndroid Build Coastguard Worker * function of VP9 code. 244*54e60f84SAndroid Build Coastguard Worker */ 245*54e60f84SAndroid Build Coastguard Worker int16_t luma_dc_quant_scale; 246*54e60f84SAndroid Build Coastguard Worker /** \brief Specifies per segment Chroma AC quantization scale. 247*54e60f84SAndroid Build Coastguard Worker * Corresponding to uv_dequant[qindex][1] in vp9_mb_init_quantizer() 248*54e60f84SAndroid Build Coastguard Worker * function of VP9 code. 249*54e60f84SAndroid Build Coastguard Worker */ 250*54e60f84SAndroid Build Coastguard Worker int16_t chroma_ac_quant_scale; 251*54e60f84SAndroid Build Coastguard Worker /** \brief Specifies per segment Chroma DC quantization scale. 252*54e60f84SAndroid Build Coastguard Worker * Corresponding to uv_dequant[qindex][0] in vp9_mb_init_quantizer() 253*54e60f84SAndroid Build Coastguard Worker * function of VP9 code. 254*54e60f84SAndroid Build Coastguard Worker */ 255*54e60f84SAndroid Build Coastguard Worker int16_t chroma_dc_quant_scale; 256*54e60f84SAndroid Build Coastguard Worker 257*54e60f84SAndroid Build Coastguard Worker /** \brief Reserved bytes for future use, must be zero */ 258*54e60f84SAndroid Build Coastguard Worker uint32_t va_reserved[VA_PADDING_LOW]; 259*54e60f84SAndroid Build Coastguard Worker 260*54e60f84SAndroid Build Coastguard Worker } VASegmentParameterVP9; 261*54e60f84SAndroid Build Coastguard Worker 262*54e60f84SAndroid Build Coastguard Worker 263*54e60f84SAndroid Build Coastguard Worker 264*54e60f84SAndroid Build Coastguard Worker /** 265*54e60f84SAndroid Build Coastguard Worker * \brief VP9 Slice Parameter Buffer Structure 266*54e60f84SAndroid Build Coastguard Worker * 267*54e60f84SAndroid Build Coastguard Worker * This structure conveys parameters related to segmentation data and should be 268*54e60f84SAndroid Build Coastguard Worker * sent once per frame. 269*54e60f84SAndroid Build Coastguard Worker * 270*54e60f84SAndroid Build Coastguard Worker * When segmentation is disabled, only SegParam[0] has valid values, 271*54e60f84SAndroid Build Coastguard Worker * all other entries should be populated with 0. 272*54e60f84SAndroid Build Coastguard Worker * Otherwise, all eight entries should be valid. 273*54e60f84SAndroid Build Coastguard Worker * 274*54e60f84SAndroid Build Coastguard Worker * Slice data buffer of VASliceDataBufferType is used 275*54e60f84SAndroid Build Coastguard Worker * to send the bitstream which should include whole or part of partition 0 276*54e60f84SAndroid Build Coastguard Worker * (at least compressed header) to the end of frame. 277*54e60f84SAndroid Build Coastguard Worker * 278*54e60f84SAndroid Build Coastguard Worker */ 279*54e60f84SAndroid Build Coastguard Worker typedef struct _VASliceParameterBufferVP9 { 280*54e60f84SAndroid Build Coastguard Worker /** \brief The byte count of current frame in the bitstream buffer, 281*54e60f84SAndroid Build Coastguard Worker * starting from first byte of the buffer. 282*54e60f84SAndroid Build Coastguard Worker * It uses the name slice_data_size to be consitent with other codec, 283*54e60f84SAndroid Build Coastguard Worker * but actually means frame_data_size. 284*54e60f84SAndroid Build Coastguard Worker */ 285*54e60f84SAndroid Build Coastguard Worker uint32_t slice_data_size; 286*54e60f84SAndroid Build Coastguard Worker /** 287*54e60f84SAndroid Build Coastguard Worker * offset to the first byte of partition data (control partition) 288*54e60f84SAndroid Build Coastguard Worker */ 289*54e60f84SAndroid Build Coastguard Worker uint32_t slice_data_offset; 290*54e60f84SAndroid Build Coastguard Worker /** 291*54e60f84SAndroid Build Coastguard Worker * see VA_SLICE_DATA_FLAG_XXX definitions 292*54e60f84SAndroid Build Coastguard Worker */ 293*54e60f84SAndroid Build Coastguard Worker uint32_t slice_data_flag; 294*54e60f84SAndroid Build Coastguard Worker 295*54e60f84SAndroid Build Coastguard Worker /** 296*54e60f84SAndroid Build Coastguard Worker * \brief per segment information 297*54e60f84SAndroid Build Coastguard Worker */ 298*54e60f84SAndroid Build Coastguard Worker VASegmentParameterVP9 seg_param[8]; 299*54e60f84SAndroid Build Coastguard Worker 300*54e60f84SAndroid Build Coastguard Worker /** \brief Reserved bytes for future use, must be zero */ 301*54e60f84SAndroid Build Coastguard Worker uint32_t va_reserved[VA_PADDING_LOW]; 302*54e60f84SAndroid Build Coastguard Worker 303*54e60f84SAndroid Build Coastguard Worker } VASliceParameterBufferVP9; 304*54e60f84SAndroid Build Coastguard Worker 305*54e60f84SAndroid Build Coastguard Worker 306*54e60f84SAndroid Build Coastguard Worker /**@}*/ 307*54e60f84SAndroid Build Coastguard Worker 308*54e60f84SAndroid Build Coastguard Worker #ifdef __cplusplus 309*54e60f84SAndroid Build Coastguard Worker } 310*54e60f84SAndroid Build Coastguard Worker #endif 311*54e60f84SAndroid Build Coastguard Worker 312*54e60f84SAndroid Build Coastguard Worker #endif /* VA_DEC_VP9_H */ 313