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 #include <string.h>
21*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_sbr_common.h"
22*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_type_def.h"
23*15dc779aSAndroid Build Coastguard Worker
24*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_constants.h"
25*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_basic_ops32.h"
26*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_basic_ops16.h"
27*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_basic_ops40.h"
28*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_basic_ops.h"
29*15dc779aSAndroid Build Coastguard Worker
30*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_basic_op.h"
31*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_intrinsics.h"
32*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_bitbuffer.h"
33*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_sbrdecsettings.h"
34*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_sbr_scale.h"
35*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_lpp_tran.h"
36*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_env_extr_part.h"
37*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_sbr_rom.h"
38*15dc779aSAndroid Build Coastguard Worker
39*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_hybrid.h"
40*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_ps_dec.h"
41*15dc779aSAndroid Build Coastguard Worker
42*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_env_extr.h"
43*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_ps_bitdec.h"
44*15dc779aSAndroid Build Coastguard Worker
45*15dc779aSAndroid Build Coastguard Worker const WORD16 ixheaacd_num_bands[3] = {10, 20, 34};
46*15dc779aSAndroid Build Coastguard Worker
ixheaacd_clamp(WORD32 i,WORD16 min,WORD16 max)47*15dc779aSAndroid Build Coastguard Worker static WORD32 ixheaacd_clamp(WORD32 i, WORD16 min, WORD16 max) {
48*15dc779aSAndroid Build Coastguard Worker WORD32 result = i;
49*15dc779aSAndroid Build Coastguard Worker
50*15dc779aSAndroid Build Coastguard Worker if (i < min) {
51*15dc779aSAndroid Build Coastguard Worker result = min;
52*15dc779aSAndroid Build Coastguard Worker } else {
53*15dc779aSAndroid Build Coastguard Worker if (i > max) {
54*15dc779aSAndroid Build Coastguard Worker result = max;
55*15dc779aSAndroid Build Coastguard Worker }
56*15dc779aSAndroid Build Coastguard Worker }
57*15dc779aSAndroid Build Coastguard Worker
58*15dc779aSAndroid Build Coastguard Worker return result;
59*15dc779aSAndroid Build Coastguard Worker }
60*15dc779aSAndroid Build Coastguard Worker
ixheaacd_divideby2(WORD op)61*15dc779aSAndroid Build Coastguard Worker WORD16 ixheaacd_divideby2(WORD op) {
62*15dc779aSAndroid Build Coastguard Worker FLAG sign = (op < 0);
63*15dc779aSAndroid Build Coastguard Worker
64*15dc779aSAndroid Build Coastguard Worker if (sign) {
65*15dc779aSAndroid Build Coastguard Worker op = -(op);
66*15dc779aSAndroid Build Coastguard Worker }
67*15dc779aSAndroid Build Coastguard Worker
68*15dc779aSAndroid Build Coastguard Worker op = (op >> 1);
69*15dc779aSAndroid Build Coastguard Worker
70*15dc779aSAndroid Build Coastguard Worker if (sign) {
71*15dc779aSAndroid Build Coastguard Worker op = -op;
72*15dc779aSAndroid Build Coastguard Worker }
73*15dc779aSAndroid Build Coastguard Worker
74*15dc779aSAndroid Build Coastguard Worker return (WORD16)op;
75*15dc779aSAndroid Build Coastguard Worker }
76*15dc779aSAndroid Build Coastguard Worker
ixheaacd_divideby3(WORD op)77*15dc779aSAndroid Build Coastguard Worker WORD16 ixheaacd_divideby3(WORD op) {
78*15dc779aSAndroid Build Coastguard Worker WORD16 temp, ret;
79*15dc779aSAndroid Build Coastguard Worker FLAG sign = (op < 0);
80*15dc779aSAndroid Build Coastguard Worker
81*15dc779aSAndroid Build Coastguard Worker if (sign) {
82*15dc779aSAndroid Build Coastguard Worker op = -(op);
83*15dc779aSAndroid Build Coastguard Worker }
84*15dc779aSAndroid Build Coastguard Worker
85*15dc779aSAndroid Build Coastguard Worker temp = (WORD16)(op << 2);
86*15dc779aSAndroid Build Coastguard Worker
87*15dc779aSAndroid Build Coastguard Worker temp = ixheaac_mult16_shl(temp, 0x2aab);
88*15dc779aSAndroid Build Coastguard Worker
89*15dc779aSAndroid Build Coastguard Worker ret = (temp >> 2);
90*15dc779aSAndroid Build Coastguard Worker
91*15dc779aSAndroid Build Coastguard Worker if (sign) {
92*15dc779aSAndroid Build Coastguard Worker ret = -(ret);
93*15dc779aSAndroid Build Coastguard Worker }
94*15dc779aSAndroid Build Coastguard Worker
95*15dc779aSAndroid Build Coastguard Worker return (WORD16)ret;
96*15dc779aSAndroid Build Coastguard Worker }
97*15dc779aSAndroid Build Coastguard Worker
ixheaacd_decode_ps_data(ia_ps_dec_struct * ptr_ps_dec,WORD32 frame_size)98*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_decode_ps_data(ia_ps_dec_struct *ptr_ps_dec, WORD32 frame_size) {
99*15dc779aSAndroid Build Coastguard Worker WORD e, i, temp;
100*15dc779aSAndroid Build Coastguard Worker WORD16 iid_mode = (WORD16)((ptr_ps_dec->iid_mode) ? 1 : 2);
101*15dc779aSAndroid Build Coastguard Worker WORD16 icc_mode = (WORD16)((ptr_ps_dec->icc_mode) ? 1 : 2);
102*15dc779aSAndroid Build Coastguard Worker WORD16 num_iid_levels =
103*15dc779aSAndroid Build Coastguard Worker (WORD16)(ptr_ps_dec->iid_quant ? NUM_IID_LEVELS_FINE : NUM_IID_LEVELS);
104*15dc779aSAndroid Build Coastguard Worker WORD32 max_num_columns;
105*15dc779aSAndroid Build Coastguard Worker
106*15dc779aSAndroid Build Coastguard Worker if (frame_size == 960)
107*15dc779aSAndroid Build Coastguard Worker max_num_columns = MAX_NUM_COLUMNS_960;
108*15dc779aSAndroid Build Coastguard Worker else
109*15dc779aSAndroid Build Coastguard Worker max_num_columns = MAX_NUM_COLUMNS;
110*15dc779aSAndroid Build Coastguard Worker
111*15dc779aSAndroid Build Coastguard Worker if (!ptr_ps_dec->ps_data_present) {
112*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->num_env = 0;
113*15dc779aSAndroid Build Coastguard Worker }
114*15dc779aSAndroid Build Coastguard Worker
115*15dc779aSAndroid Build Coastguard Worker for (e = 0; e < ptr_ps_dec->num_env; e++) {
116*15dc779aSAndroid Build Coastguard Worker WORD16 *p_iid_par_prev;
117*15dc779aSAndroid Build Coastguard Worker WORD16 *p_icc_par_prev;
118*15dc779aSAndroid Build Coastguard Worker
119*15dc779aSAndroid Build Coastguard Worker if (e == 0) {
120*15dc779aSAndroid Build Coastguard Worker p_iid_par_prev = ptr_ps_dec->iid_par_prev;
121*15dc779aSAndroid Build Coastguard Worker p_icc_par_prev = ptr_ps_dec->icc_par_prev;
122*15dc779aSAndroid Build Coastguard Worker } else {
123*15dc779aSAndroid Build Coastguard Worker p_iid_par_prev = ptr_ps_dec->iid_par_table[e - 1];
124*15dc779aSAndroid Build Coastguard Worker p_icc_par_prev = ptr_ps_dec->icc_par_table[e - 1];
125*15dc779aSAndroid Build Coastguard Worker }
126*15dc779aSAndroid Build Coastguard Worker
127*15dc779aSAndroid Build Coastguard Worker if (ptr_ps_dec->enable_iid) {
128*15dc779aSAndroid Build Coastguard Worker if (ptr_ps_dec->iid_dt[e]) {
129*15dc779aSAndroid Build Coastguard Worker for (i = 0; i < ixheaacd_num_bands[ptr_ps_dec->iid_mode]; i++) {
130*15dc779aSAndroid Build Coastguard Worker temp =
131*15dc779aSAndroid Build Coastguard Worker ixheaac_add16(*p_iid_par_prev, ptr_ps_dec->iid_par_table[e][i]);
132*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->iid_par_table[e][i] = ixheaacd_clamp(
133*15dc779aSAndroid Build Coastguard Worker temp, ixheaac_negate16(num_iid_levels), num_iid_levels);
134*15dc779aSAndroid Build Coastguard Worker p_iid_par_prev += iid_mode;
135*15dc779aSAndroid Build Coastguard Worker }
136*15dc779aSAndroid Build Coastguard Worker } else {
137*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->iid_par_table[e][0] =
138*15dc779aSAndroid Build Coastguard Worker ixheaacd_clamp(ptr_ps_dec->iid_par_table[e][0],
139*15dc779aSAndroid Build Coastguard Worker ixheaac_negate16(num_iid_levels), num_iid_levels);
140*15dc779aSAndroid Build Coastguard Worker for (i = 1; i < ixheaacd_num_bands[ptr_ps_dec->iid_mode]; i++) {
141*15dc779aSAndroid Build Coastguard Worker temp = ixheaac_add16(ptr_ps_dec->iid_par_table[e][i - 1],
142*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->iid_par_table[e][i]);
143*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->iid_par_table[e][i] = ixheaacd_clamp(
144*15dc779aSAndroid Build Coastguard Worker temp, ixheaac_negate16(num_iid_levels), num_iid_levels);
145*15dc779aSAndroid Build Coastguard Worker }
146*15dc779aSAndroid Build Coastguard Worker }
147*15dc779aSAndroid Build Coastguard Worker } else {
148*15dc779aSAndroid Build Coastguard Worker memset(ptr_ps_dec->iid_par_table[e], 0,
149*15dc779aSAndroid Build Coastguard Worker sizeof(WORD16) * ixheaacd_num_bands[ptr_ps_dec->iid_mode]);
150*15dc779aSAndroid Build Coastguard Worker }
151*15dc779aSAndroid Build Coastguard Worker
152*15dc779aSAndroid Build Coastguard Worker if (iid_mode == 2) {
153*15dc779aSAndroid Build Coastguard Worker for (i = (ixheaacd_num_bands[ptr_ps_dec->iid_mode] * iid_mode - 1);
154*15dc779aSAndroid Build Coastguard Worker i != 0; i--) {
155*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->iid_par_table[e][i] =
156*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->iid_par_table[e][ixheaac_shr32(i, 1)];
157*15dc779aSAndroid Build Coastguard Worker }
158*15dc779aSAndroid Build Coastguard Worker }
159*15dc779aSAndroid Build Coastguard Worker
160*15dc779aSAndroid Build Coastguard Worker if (ptr_ps_dec->enable_icc) {
161*15dc779aSAndroid Build Coastguard Worker if (ptr_ps_dec->icc_dt[e]) {
162*15dc779aSAndroid Build Coastguard Worker for (i = 0; i < ixheaacd_num_bands[ptr_ps_dec->icc_mode]; i++) {
163*15dc779aSAndroid Build Coastguard Worker temp =
164*15dc779aSAndroid Build Coastguard Worker ixheaac_add16(*p_icc_par_prev, ptr_ps_dec->icc_par_table[e][i]);
165*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->icc_par_table[e][i] =
166*15dc779aSAndroid Build Coastguard Worker ixheaacd_clamp(temp, 0, (WORD16)(NUM_ICC_LEVELS - 1));
167*15dc779aSAndroid Build Coastguard Worker p_icc_par_prev += icc_mode;
168*15dc779aSAndroid Build Coastguard Worker }
169*15dc779aSAndroid Build Coastguard Worker } else {
170*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->icc_par_table[e][0] = ixheaacd_clamp(
171*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->icc_par_table[e][0], 0, (WORD16)(NUM_ICC_LEVELS - 1));
172*15dc779aSAndroid Build Coastguard Worker for (i = 1; i < ixheaacd_num_bands[ptr_ps_dec->icc_mode]; i++) {
173*15dc779aSAndroid Build Coastguard Worker temp = ixheaac_add16(ptr_ps_dec->icc_par_table[e][i - 1],
174*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->icc_par_table[e][i]);
175*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->icc_par_table[e][i] =
176*15dc779aSAndroid Build Coastguard Worker ixheaacd_clamp(temp, 0, (WORD16)(NUM_ICC_LEVELS - 1));
177*15dc779aSAndroid Build Coastguard Worker }
178*15dc779aSAndroid Build Coastguard Worker }
179*15dc779aSAndroid Build Coastguard Worker } else {
180*15dc779aSAndroid Build Coastguard Worker memset(ptr_ps_dec->icc_par_table[e], 0,
181*15dc779aSAndroid Build Coastguard Worker sizeof(WORD16) * ixheaacd_num_bands[ptr_ps_dec->icc_mode]);
182*15dc779aSAndroid Build Coastguard Worker }
183*15dc779aSAndroid Build Coastguard Worker
184*15dc779aSAndroid Build Coastguard Worker if (icc_mode == 2) {
185*15dc779aSAndroid Build Coastguard Worker for (i = (ixheaacd_num_bands[ptr_ps_dec->icc_mode] * icc_mode - 1);
186*15dc779aSAndroid Build Coastguard Worker i != 0; i--) {
187*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->icc_par_table[e][i] =
188*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->icc_par_table[e][ixheaac_shr32(i, 1)];
189*15dc779aSAndroid Build Coastguard Worker }
190*15dc779aSAndroid Build Coastguard Worker }
191*15dc779aSAndroid Build Coastguard Worker }
192*15dc779aSAndroid Build Coastguard Worker
193*15dc779aSAndroid Build Coastguard Worker if (ptr_ps_dec->num_env == 0) {
194*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->num_env = 1;
195*15dc779aSAndroid Build Coastguard Worker
196*15dc779aSAndroid Build Coastguard Worker if (ptr_ps_dec->enable_iid) {
197*15dc779aSAndroid Build Coastguard Worker memcpy(ptr_ps_dec->iid_par_table[0], ptr_ps_dec->iid_par_prev,
198*15dc779aSAndroid Build Coastguard Worker sizeof(WORD16) * NUM_BANDS_FINE);
199*15dc779aSAndroid Build Coastguard Worker } else {
200*15dc779aSAndroid Build Coastguard Worker memset(ptr_ps_dec->iid_par_table[0], 0, sizeof(WORD16) * NUM_BANDS_FINE);
201*15dc779aSAndroid Build Coastguard Worker }
202*15dc779aSAndroid Build Coastguard Worker
203*15dc779aSAndroid Build Coastguard Worker if (ptr_ps_dec->enable_icc) {
204*15dc779aSAndroid Build Coastguard Worker memcpy(ptr_ps_dec->icc_par_table[0], ptr_ps_dec->icc_par_prev,
205*15dc779aSAndroid Build Coastguard Worker sizeof(WORD16) * NUM_BANDS_FINE);
206*15dc779aSAndroid Build Coastguard Worker } else {
207*15dc779aSAndroid Build Coastguard Worker memset(ptr_ps_dec->icc_par_table[0], 0, sizeof(WORD16) * NUM_BANDS_FINE);
208*15dc779aSAndroid Build Coastguard Worker }
209*15dc779aSAndroid Build Coastguard Worker }
210*15dc779aSAndroid Build Coastguard Worker
211*15dc779aSAndroid Build Coastguard Worker memcpy(ptr_ps_dec->iid_par_prev,
212*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->iid_par_table[ptr_ps_dec->num_env - 1],
213*15dc779aSAndroid Build Coastguard Worker sizeof(WORD16) * NUM_BANDS_FINE);
214*15dc779aSAndroid Build Coastguard Worker
215*15dc779aSAndroid Build Coastguard Worker memcpy(ptr_ps_dec->icc_par_prev,
216*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->icc_par_table[ptr_ps_dec->num_env - 1],
217*15dc779aSAndroid Build Coastguard Worker sizeof(WORD16) * NUM_BANDS_FINE);
218*15dc779aSAndroid Build Coastguard Worker
219*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->ps_data_present = 0;
220*15dc779aSAndroid Build Coastguard Worker
221*15dc779aSAndroid Build Coastguard Worker if (ptr_ps_dec->frame_class == 0) {
222*15dc779aSAndroid Build Coastguard Worker WORD env_count;
223*15dc779aSAndroid Build Coastguard Worker WORD16 shift = 0;
224*15dc779aSAndroid Build Coastguard Worker
225*15dc779aSAndroid Build Coastguard Worker switch (ptr_ps_dec->num_env) {
226*15dc779aSAndroid Build Coastguard Worker case 1:
227*15dc779aSAndroid Build Coastguard Worker shift = 0;
228*15dc779aSAndroid Build Coastguard Worker break;
229*15dc779aSAndroid Build Coastguard Worker case 2:
230*15dc779aSAndroid Build Coastguard Worker shift = 1;
231*15dc779aSAndroid Build Coastguard Worker break;
232*15dc779aSAndroid Build Coastguard Worker case 4:
233*15dc779aSAndroid Build Coastguard Worker shift = 2;
234*15dc779aSAndroid Build Coastguard Worker break;
235*15dc779aSAndroid Build Coastguard Worker }
236*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->border_position[0] = 0;
237*15dc779aSAndroid Build Coastguard Worker env_count = 0;
238*15dc779aSAndroid Build Coastguard Worker
239*15dc779aSAndroid Build Coastguard Worker for (e = 1; e < ptr_ps_dec->num_env; e++) {
240*15dc779aSAndroid Build Coastguard Worker env_count = add_d(env_count, max_num_columns);
241*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->border_position[e] = (WORD16)(env_count >> shift);
242*15dc779aSAndroid Build Coastguard Worker }
243*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->border_position[ptr_ps_dec->num_env] = max_num_columns;
244*15dc779aSAndroid Build Coastguard Worker } else {
245*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->border_position[0] = 0;
246*15dc779aSAndroid Build Coastguard Worker
247*15dc779aSAndroid Build Coastguard Worker if (ptr_ps_dec->border_position[ptr_ps_dec->num_env] < max_num_columns) {
248*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->num_env++;
249*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->border_position[ptr_ps_dec->num_env] = max_num_columns;
250*15dc779aSAndroid Build Coastguard Worker
251*15dc779aSAndroid Build Coastguard Worker memcpy(ptr_ps_dec->iid_par_table[ptr_ps_dec->num_env - 1],
252*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->iid_par_table[ptr_ps_dec->num_env - 2],
253*15dc779aSAndroid Build Coastguard Worker sizeof(WORD16) * NUM_BANDS_FINE);
254*15dc779aSAndroid Build Coastguard Worker
255*15dc779aSAndroid Build Coastguard Worker memcpy(ptr_ps_dec->icc_par_table[ptr_ps_dec->num_env - 1],
256*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->icc_par_table[ptr_ps_dec->num_env - 2],
257*15dc779aSAndroid Build Coastguard Worker sizeof(WORD16) * NUM_BANDS_FINE);
258*15dc779aSAndroid Build Coastguard Worker }
259*15dc779aSAndroid Build Coastguard Worker
260*15dc779aSAndroid Build Coastguard Worker for (e = 1; e < ptr_ps_dec->num_env; e++) {
261*15dc779aSAndroid Build Coastguard Worker WORD threshold;
262*15dc779aSAndroid Build Coastguard Worker threshold = sub_d(max_num_columns, sub_d(ptr_ps_dec->num_env, e));
263*15dc779aSAndroid Build Coastguard Worker
264*15dc779aSAndroid Build Coastguard Worker if (ptr_ps_dec->border_position[e] > threshold) {
265*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->border_position[e] = threshold;
266*15dc779aSAndroid Build Coastguard Worker } else {
267*15dc779aSAndroid Build Coastguard Worker threshold = add_d(ptr_ps_dec->border_position[e - 1], 1);
268*15dc779aSAndroid Build Coastguard Worker
269*15dc779aSAndroid Build Coastguard Worker if (ptr_ps_dec->border_position[e] < threshold) {
270*15dc779aSAndroid Build Coastguard Worker ptr_ps_dec->border_position[e] = threshold;
271*15dc779aSAndroid Build Coastguard Worker }
272*15dc779aSAndroid Build Coastguard Worker }
273*15dc779aSAndroid Build Coastguard Worker }
274*15dc779aSAndroid Build Coastguard Worker }
275*15dc779aSAndroid Build Coastguard Worker
276*15dc779aSAndroid Build Coastguard Worker for (e = 0; e < ptr_ps_dec->num_env; e++) {
277*15dc779aSAndroid Build Coastguard Worker if (ptr_ps_dec->iid_mode == 2)
278*15dc779aSAndroid Build Coastguard Worker ixheaacd_map_34_params_to_20(ptr_ps_dec->iid_par_table[e]);
279*15dc779aSAndroid Build Coastguard Worker
280*15dc779aSAndroid Build Coastguard Worker if (ptr_ps_dec->icc_mode == 2)
281*15dc779aSAndroid Build Coastguard Worker ixheaacd_map_34_params_to_20(ptr_ps_dec->icc_par_table[e]);
282*15dc779aSAndroid Build Coastguard Worker }
283*15dc779aSAndroid Build Coastguard Worker }