xref: /aosp_15_r20/external/libxaac/decoder/ixheaacd_env_extr_part.h (revision 15dc779a375ca8b5125643b829a8aa4b70d7f451)
1*15dc779aSAndroid Build Coastguard Worker /******************************************************************************
2*15dc779aSAndroid Build Coastguard Worker  *                                                                            *
3*15dc779aSAndroid Build Coastguard Worker  * Copyright (C) 2018 The Android Open Source Project
4*15dc779aSAndroid Build Coastguard Worker  *
5*15dc779aSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
6*15dc779aSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
7*15dc779aSAndroid Build Coastguard Worker  * You may obtain a copy of the License at:
8*15dc779aSAndroid Build Coastguard Worker  *
9*15dc779aSAndroid Build Coastguard Worker  * http://www.apache.org/licenses/LICENSE-2.0
10*15dc779aSAndroid Build Coastguard Worker  *
11*15dc779aSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
12*15dc779aSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
13*15dc779aSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*15dc779aSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
15*15dc779aSAndroid Build Coastguard Worker  * limitations under the License.
16*15dc779aSAndroid Build Coastguard Worker  *
17*15dc779aSAndroid Build Coastguard Worker  *****************************************************************************
18*15dc779aSAndroid Build Coastguard Worker  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*15dc779aSAndroid Build Coastguard Worker */
20*15dc779aSAndroid Build Coastguard Worker #ifndef IXHEAACD_ENV_EXTR_PART_H
21*15dc779aSAndroid Build Coastguard Worker #define IXHEAACD_ENV_EXTR_PART_H
22*15dc779aSAndroid Build Coastguard Worker 
23*15dc779aSAndroid Build Coastguard Worker #define SBR_NOT_INITIALIZED 0
24*15dc779aSAndroid Build Coastguard Worker #define UPSAMPLING 1
25*15dc779aSAndroid Build Coastguard Worker #define SBR_ACTIVE 2
26*15dc779aSAndroid Build Coastguard Worker 
27*15dc779aSAndroid Build Coastguard Worker #define SBR_MONO 1
28*15dc779aSAndroid Build Coastguard Worker #define SBR_STEREO 2
29*15dc779aSAndroid Build Coastguard Worker #define PS_STEREO 3
30*15dc779aSAndroid Build Coastguard Worker 
31*15dc779aSAndroid Build Coastguard Worker #define SBR_RESET 1
32*15dc779aSAndroid Build Coastguard Worker 
33*15dc779aSAndroid Build Coastguard Worker typedef struct {
34*15dc779aSAndroid Build Coastguard Worker   WORD16 num_sf_bands[2];
35*15dc779aSAndroid Build Coastguard Worker   WORD16 num_nf_bands;
36*15dc779aSAndroid Build Coastguard Worker   WORD16 num_mf_bands;
37*15dc779aSAndroid Build Coastguard Worker   WORD16 sub_band_start;
38*15dc779aSAndroid Build Coastguard Worker   WORD16 sub_band_end;
39*15dc779aSAndroid Build Coastguard Worker   WORD16 freq_band_tbl_lim[MAX_NUM_LIMITERS + 1];
40*15dc779aSAndroid Build Coastguard Worker   WORD16 num_lf_bands;
41*15dc779aSAndroid Build Coastguard Worker   WORD16 num_if_bands;
42*15dc779aSAndroid Build Coastguard Worker   WORD16 *freq_band_table[2];
43*15dc779aSAndroid Build Coastguard Worker   WORD16 freq_band_tbl_lo[MAX_FREQ_COEFFS / 2 + 1];
44*15dc779aSAndroid Build Coastguard Worker   WORD16 freq_band_tbl_hi[MAX_FREQ_COEFFS + 1];
45*15dc779aSAndroid Build Coastguard Worker   WORD16 freq_band_tbl_noise[MAX_NOISE_COEFFS + 1];
46*15dc779aSAndroid Build Coastguard Worker   WORD16 f_master_tbl[MAX_FREQ_COEFFS + 1];
47*15dc779aSAndroid Build Coastguard Worker 
48*15dc779aSAndroid Build Coastguard Worker   WORD16 qmf_sb_prev;
49*15dc779aSAndroid Build Coastguard Worker } ia_freq_band_data_struct;
50*15dc779aSAndroid Build Coastguard Worker 
51*15dc779aSAndroid Build Coastguard Worker typedef struct {
52*15dc779aSAndroid Build Coastguard Worker   WORD32 sync_state;
53*15dc779aSAndroid Build Coastguard Worker   FLAG err_flag;
54*15dc779aSAndroid Build Coastguard Worker   FLAG err_flag_prev;
55*15dc779aSAndroid Build Coastguard Worker   WORD16 num_time_slots;
56*15dc779aSAndroid Build Coastguard Worker   WORD16 time_step;
57*15dc779aSAndroid Build Coastguard Worker   WORD16 core_frame_size;
58*15dc779aSAndroid Build Coastguard Worker   WORD32 out_sampling_freq;
59*15dc779aSAndroid Build Coastguard Worker 
60*15dc779aSAndroid Build Coastguard Worker   WORD32 channel_mode;
61*15dc779aSAndroid Build Coastguard Worker   WORD16 amp_res;
62*15dc779aSAndroid Build Coastguard Worker 
63*15dc779aSAndroid Build Coastguard Worker   WORD16 start_freq;
64*15dc779aSAndroid Build Coastguard Worker   WORD16 stop_freq;
65*15dc779aSAndroid Build Coastguard Worker   WORD16 xover_band;
66*15dc779aSAndroid Build Coastguard Worker   WORD16 freq_scale;
67*15dc779aSAndroid Build Coastguard Worker   WORD16 alter_scale;
68*15dc779aSAndroid Build Coastguard Worker   WORD16 noise_bands;
69*15dc779aSAndroid Build Coastguard Worker 
70*15dc779aSAndroid Build Coastguard Worker   WORD16 limiter_bands;
71*15dc779aSAndroid Build Coastguard Worker   WORD16 limiter_gains;
72*15dc779aSAndroid Build Coastguard Worker   WORD16 interpol_freq;
73*15dc779aSAndroid Build Coastguard Worker   WORD16 smoothing_mode;
74*15dc779aSAndroid Build Coastguard Worker   ia_freq_band_data_struct *pstr_freq_band_data;
75*15dc779aSAndroid Build Coastguard Worker 
76*15dc779aSAndroid Build Coastguard Worker   WORD16 header_extra_1;
77*15dc779aSAndroid Build Coastguard Worker   WORD16 header_extra_2;
78*15dc779aSAndroid Build Coastguard Worker   WORD16 pre_proc_flag;
79*15dc779aSAndroid Build Coastguard Worker 
80*15dc779aSAndroid Build Coastguard Worker   WORD32 status;
81*15dc779aSAndroid Build Coastguard Worker 
82*15dc779aSAndroid Build Coastguard Worker   WORD32 sbr_ratio_idx;
83*15dc779aSAndroid Build Coastguard Worker   WORD32 upsamp_fac;
84*15dc779aSAndroid Build Coastguard Worker   WORD32 is_usf_4;
85*15dc779aSAndroid Build Coastguard Worker   WORD32 output_framesize;
86*15dc779aSAndroid Build Coastguard Worker   WORD32 usac_independency_flag;
87*15dc779aSAndroid Build Coastguard Worker   FLAG pvc_flag;
88*15dc779aSAndroid Build Coastguard Worker   FLAG hbe_flag;
89*15dc779aSAndroid Build Coastguard Worker 
90*15dc779aSAndroid Build Coastguard Worker   WORD32 esbr_start_up;
91*15dc779aSAndroid Build Coastguard Worker   WORD32 esbr_start_up_pvc;
92*15dc779aSAndroid Build Coastguard Worker   WORD32 usac_flag;
93*15dc779aSAndroid Build Coastguard Worker   UWORD8 pvc_mode;
94*15dc779aSAndroid Build Coastguard Worker 
95*15dc779aSAndroid Build Coastguard Worker   FLAG enh_sbr;
96*15dc779aSAndroid Build Coastguard Worker   FLAG esbr_hq;
97*15dc779aSAndroid Build Coastguard Worker   FLAG enh_sbr_ps;
98*15dc779aSAndroid Build Coastguard Worker   FLAG eld_sbr;
99*15dc779aSAndroid Build Coastguard Worker 
100*15dc779aSAndroid Build Coastguard Worker } ia_sbr_header_data_struct;
101*15dc779aSAndroid Build Coastguard Worker 
102*15dc779aSAndroid Build Coastguard Worker typedef struct {
103*15dc779aSAndroid Build Coastguard Worker   WORD16 frame_class;
104*15dc779aSAndroid Build Coastguard Worker   WORD16 num_env;
105*15dc779aSAndroid Build Coastguard Worker   WORD16 transient_env;
106*15dc779aSAndroid Build Coastguard Worker   WORD16 num_noise_env;
107*15dc779aSAndroid Build Coastguard Worker   WORD16 border_vec[MAX_ENVELOPES + 1];
108*15dc779aSAndroid Build Coastguard Worker   WORD16 freq_res[MAX_ENVELOPES];
109*15dc779aSAndroid Build Coastguard Worker   WORD16 noise_border_vec[MAX_NOISE_ENVELOPES + 1];
110*15dc779aSAndroid Build Coastguard Worker } ia_frame_info_struct;
111*15dc779aSAndroid Build Coastguard Worker 
112*15dc779aSAndroid Build Coastguard Worker #endif
113