1*495ae853SAndroid Build Coastguard Worker /****************************************************************************** 2*495ae853SAndroid Build Coastguard Worker * 3*495ae853SAndroid Build Coastguard Worker * Copyright (C) 2021 The Android Open Source Project 4*495ae853SAndroid Build Coastguard Worker * 5*495ae853SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 6*495ae853SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 7*495ae853SAndroid Build Coastguard Worker * You may obtain a copy of the License at: 8*495ae853SAndroid Build Coastguard Worker * 9*495ae853SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 10*495ae853SAndroid Build Coastguard Worker * 11*495ae853SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 12*495ae853SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 13*495ae853SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*495ae853SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 15*495ae853SAndroid Build Coastguard Worker * limitations under the License. 16*495ae853SAndroid Build Coastguard Worker * 17*495ae853SAndroid Build Coastguard Worker ***************************************************************************** 18*495ae853SAndroid Build Coastguard Worker * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19*495ae853SAndroid Build Coastguard Worker */ 20*495ae853SAndroid Build Coastguard Worker 21*495ae853SAndroid Build Coastguard Worker #ifndef _IMVC_STRUCTS_H_ 22*495ae853SAndroid Build Coastguard Worker #define _IMVC_STRUCTS_H_ 23*495ae853SAndroid Build Coastguard Worker 24*495ae853SAndroid Build Coastguard Worker #include "ih264_typedefs.h" 25*495ae853SAndroid Build Coastguard Worker #include "imvc_defs.h" 26*495ae853SAndroid Build Coastguard Worker 27*495ae853SAndroid Build Coastguard Worker typedef struct nalu_mvc_ext_t 28*495ae853SAndroid Build Coastguard Worker { 29*495ae853SAndroid Build Coastguard Worker UWORD8 u1_non_idr_flag; 30*495ae853SAndroid Build Coastguard Worker 31*495ae853SAndroid Build Coastguard Worker UWORD8 u1_priority_id; 32*495ae853SAndroid Build Coastguard Worker 33*495ae853SAndroid Build Coastguard Worker UWORD16 u2_view_id; 34*495ae853SAndroid Build Coastguard Worker 35*495ae853SAndroid Build Coastguard Worker UWORD8 u1_temporal_id; 36*495ae853SAndroid Build Coastguard Worker 37*495ae853SAndroid Build Coastguard Worker UWORD8 u1_anchor_pic_flag; 38*495ae853SAndroid Build Coastguard Worker 39*495ae853SAndroid Build Coastguard Worker UWORD8 u1_inter_view_flag; 40*495ae853SAndroid Build Coastguard Worker 41*495ae853SAndroid Build Coastguard Worker } nalu_mvc_ext_t; 42*495ae853SAndroid Build Coastguard Worker 43*495ae853SAndroid Build Coastguard Worker typedef struct mvc_ivp_ref_data_t 44*495ae853SAndroid Build Coastguard Worker { 45*495ae853SAndroid Build Coastguard Worker UWORD8 u1_num_refs; 46*495ae853SAndroid Build Coastguard Worker 47*495ae853SAndroid Build Coastguard Worker UWORD16 au2_ref_view_ids[MAX_NUM_IVP_REFS]; 48*495ae853SAndroid Build Coastguard Worker 49*495ae853SAndroid Build Coastguard Worker } mvc_ivp_ref_data_t; 50*495ae853SAndroid Build Coastguard Worker 51*495ae853SAndroid Build Coastguard Worker typedef struct mvc_op_data_t 52*495ae853SAndroid Build Coastguard Worker { 53*495ae853SAndroid Build Coastguard Worker UWORD8 u1_temporal_id; 54*495ae853SAndroid Build Coastguard Worker 55*495ae853SAndroid Build Coastguard Worker UWORD16 u2_num_ops; 56*495ae853SAndroid Build Coastguard Worker 57*495ae853SAndroid Build Coastguard Worker UWORD16 u2_num_target_views; 58*495ae853SAndroid Build Coastguard Worker 59*495ae853SAndroid Build Coastguard Worker UWORD16 au2_target_view_ids[MAX_NUM_VIEWS]; 60*495ae853SAndroid Build Coastguard Worker 61*495ae853SAndroid Build Coastguard Worker /* Counter for num target views and views each target is dependent on */ 62*495ae853SAndroid Build Coastguard Worker UWORD16 u2_num_views; 63*495ae853SAndroid Build Coastguard Worker 64*495ae853SAndroid Build Coastguard Worker } mvc_op_data_t; 65*495ae853SAndroid Build Coastguard Worker 66*495ae853SAndroid Build Coastguard Worker typedef struct mvc_level_info_t 67*495ae853SAndroid Build Coastguard Worker { 68*495ae853SAndroid Build Coastguard Worker UWORD32 u4_level_idc; 69*495ae853SAndroid Build Coastguard Worker 70*495ae853SAndroid Build Coastguard Worker mvc_op_data_t as_mvc_op_data[MAX_NUM_OPERATING_POINTS]; 71*495ae853SAndroid Build Coastguard Worker 72*495ae853SAndroid Build Coastguard Worker } mvc_level_info_t; 73*495ae853SAndroid Build Coastguard Worker 74*495ae853SAndroid Build Coastguard Worker typedef struct sps_mvc_ext_t 75*495ae853SAndroid Build Coastguard Worker { 76*495ae853SAndroid Build Coastguard Worker UWORD16 u2_num_views; 77*495ae853SAndroid Build Coastguard Worker 78*495ae853SAndroid Build Coastguard Worker UWORD16 au2_view_ids[MAX_NUM_VIEWS]; 79*495ae853SAndroid Build Coastguard Worker 80*495ae853SAndroid Build Coastguard Worker /* 0 => L0; 1 => L1 */ 81*495ae853SAndroid Build Coastguard Worker mvc_ivp_ref_data_t as_anchor_ref_data[2][MAX_NUM_VIEWS]; 82*495ae853SAndroid Build Coastguard Worker 83*495ae853SAndroid Build Coastguard Worker /* 0 => L0; 1 => L1 */ 84*495ae853SAndroid Build Coastguard Worker mvc_ivp_ref_data_t as_non_anchor_ref_data[2][MAX_NUM_VIEWS]; 85*495ae853SAndroid Build Coastguard Worker 86*495ae853SAndroid Build Coastguard Worker UWORD8 u1_num_level_values_signalled; 87*495ae853SAndroid Build Coastguard Worker 88*495ae853SAndroid Build Coastguard Worker mvc_level_info_t as_mvc_level_info[MAX_NUM_LEVEL_VALUES_SIGNALLED]; 89*495ae853SAndroid Build Coastguard Worker 90*495ae853SAndroid Build Coastguard Worker } sps_mvc_ext_t; 91*495ae853SAndroid Build Coastguard Worker 92*495ae853SAndroid Build Coastguard Worker typedef struct mvc_vui_ext_t 93*495ae853SAndroid Build Coastguard Worker { 94*495ae853SAndroid Build Coastguard Worker UWORD16 u2_vui_mvc_num_ops; 95*495ae853SAndroid Build Coastguard Worker 96*495ae853SAndroid Build Coastguard Worker UWORD8 u1_vui_mvc_temporal_id[MAX_NUM_OPERATING_POINTS]; 97*495ae853SAndroid Build Coastguard Worker 98*495ae853SAndroid Build Coastguard Worker UWORD16 u2_vui_mvc_num_target_output_views[MAX_NUM_OPERATING_POINTS]; 99*495ae853SAndroid Build Coastguard Worker 100*495ae853SAndroid Build Coastguard Worker UWORD16 u2_vui_mvc_view_id[MAX_NUM_OPERATING_POINTS][MAX_NUM_VIEWS]; 101*495ae853SAndroid Build Coastguard Worker 102*495ae853SAndroid Build Coastguard Worker UWORD8 u1_vui_mvc_timing_info_present_flag[MAX_NUM_OPERATING_POINTS]; 103*495ae853SAndroid Build Coastguard Worker 104*495ae853SAndroid Build Coastguard Worker UWORD32 u4_vui_mvc_num_units_in_tick[MAX_NUM_OPERATING_POINTS]; 105*495ae853SAndroid Build Coastguard Worker 106*495ae853SAndroid Build Coastguard Worker UWORD32 u4_vui_mvc_time_scale[MAX_NUM_OPERATING_POINTS]; 107*495ae853SAndroid Build Coastguard Worker 108*495ae853SAndroid Build Coastguard Worker UWORD8 u1_vui_mvc_fixed_frame_rate_flag[MAX_NUM_OPERATING_POINTS]; 109*495ae853SAndroid Build Coastguard Worker 110*495ae853SAndroid Build Coastguard Worker UWORD8 u1_vui_mvc_nal_hrd_parameters_present_flag[MAX_NUM_OPERATING_POINTS]; 111*495ae853SAndroid Build Coastguard Worker 112*495ae853SAndroid Build Coastguard Worker UWORD8 u1_vui_mvc_vcl_hrd_parameters_present_flag[MAX_NUM_OPERATING_POINTS]; 113*495ae853SAndroid Build Coastguard Worker 114*495ae853SAndroid Build Coastguard Worker UWORD8 u1_vui_mvc_low_delay_hrd_flag[MAX_NUM_OPERATING_POINTS]; 115*495ae853SAndroid Build Coastguard Worker 116*495ae853SAndroid Build Coastguard Worker UWORD8 u1_vui_mvc_pic_struct_present_flag[MAX_NUM_OPERATING_POINTS]; 117*495ae853SAndroid Build Coastguard Worker 118*495ae853SAndroid Build Coastguard Worker } mvc_vui_ext_t; 119*495ae853SAndroid Build Coastguard Worker 120*495ae853SAndroid Build Coastguard Worker typedef struct buffer_container_t 121*495ae853SAndroid Build Coastguard Worker { 122*495ae853SAndroid Build Coastguard Worker void *pv_data; 123*495ae853SAndroid Build Coastguard Worker 124*495ae853SAndroid Build Coastguard Worker WORD32 i4_data_stride; 125*495ae853SAndroid Build Coastguard Worker 126*495ae853SAndroid Build Coastguard Worker } buffer_container_t; 127*495ae853SAndroid Build Coastguard Worker 128*495ae853SAndroid Build Coastguard Worker typedef struct yuv_buf_props_t 129*495ae853SAndroid Build Coastguard Worker { 130*495ae853SAndroid Build Coastguard Worker buffer_container_t as_component_bufs[NUM_COMPONENTS]; 131*495ae853SAndroid Build Coastguard Worker 132*495ae853SAndroid Build Coastguard Worker UWORD8 u1_bit_depth; 133*495ae853SAndroid Build Coastguard Worker 134*495ae853SAndroid Build Coastguard Worker UWORD16 u2_width; 135*495ae853SAndroid Build Coastguard Worker 136*495ae853SAndroid Build Coastguard Worker UWORD16 u2_height; 137*495ae853SAndroid Build Coastguard Worker 138*495ae853SAndroid Build Coastguard Worker } yuv_buf_props_t; 139*495ae853SAndroid Build Coastguard Worker 140*495ae853SAndroid Build Coastguard Worker typedef struct iv_mvc_yuv_buf_t 141*495ae853SAndroid Build Coastguard Worker { 142*495ae853SAndroid Build Coastguard Worker yuv_buf_props_t as_view_buf_props[MAX_NUM_VIEWS]; 143*495ae853SAndroid Build Coastguard Worker 144*495ae853SAndroid Build Coastguard Worker } iv_mvc_yuv_buf_t; 145*495ae853SAndroid Build Coastguard Worker 146*495ae853SAndroid Build Coastguard Worker typedef struct coordinates_t 147*495ae853SAndroid Build Coastguard Worker { 148*495ae853SAndroid Build Coastguard Worker WORD32 i4_abscissa; 149*495ae853SAndroid Build Coastguard Worker 150*495ae853SAndroid Build Coastguard Worker WORD32 i4_ordinate; 151*495ae853SAndroid Build Coastguard Worker } coordinates_t; 152*495ae853SAndroid Build Coastguard Worker 153*495ae853SAndroid Build Coastguard Worker typedef struct offsets_t 154*495ae853SAndroid Build Coastguard Worker { 155*495ae853SAndroid Build Coastguard Worker UWORD16 u2_top_offset; 156*495ae853SAndroid Build Coastguard Worker 157*495ae853SAndroid Build Coastguard Worker UWORD16 u2_bottom_offset; 158*495ae853SAndroid Build Coastguard Worker 159*495ae853SAndroid Build Coastguard Worker UWORD16 u2_left_offset; 160*495ae853SAndroid Build Coastguard Worker 161*495ae853SAndroid Build Coastguard Worker UWORD16 u2_right_offset; 162*495ae853SAndroid Build Coastguard Worker } offsets_t; 163*495ae853SAndroid Build Coastguard Worker 164*495ae853SAndroid Build Coastguard Worker #endif 165