Coverage Report

Created: 2026-06-10 06:29

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libxaac/decoder/ixheaacd_mps_mdct_2_qmf.c
Line
Count
Source
1
/******************************************************************************
2
 *
3
 * Copyright (C) 2023 The Android Open Source Project
4
 *
5
 * Licensed under the Apache License, Version 2.0 (the "License");
6
 * you may not use this file except in compliance with the License.
7
 * You may obtain a copy of the License at:
8
 *
9
 * http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 *
17
 *****************************************************************************
18
 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19
*/
20
#include <string.h>
21
#include "ixheaac_type_def.h"
22
#include "ixheaacd_mps_struct_def.h"
23
#include "ixheaacd_error_codes.h"
24
#include "ixheaacd_mps_res_rom.h"
25
#include "ixheaacd_mps_aac_struct.h"
26
#include "ixheaac_constants.h"
27
#include "ixheaac_basic_ops32.h"
28
#include "ixheaac_basic_ops40.h"
29
#include "ixheaacd_bitbuffer.h"
30
#include "ixheaacd_cnst.h"
31
#include "ixheaacd_common_rom.h"
32
#include "ixheaacd_sbrdecsettings.h"
33
#include "ixheaacd_sbr_scale.h"
34
#include "ixheaacd_env_extr_part.h"
35
#include "ixheaacd_sbr_rom.h"
36
#include "ixheaacd_hybrid.h"
37
#include "ixheaacd_ps_dec.h"
38
#include "ixheaac_error_standards.h"
39
#include "ixheaacd_mps_polyphase.h"
40
#include "ixheaacd_config.h"
41
#include "ixheaacd_qmf_dec.h"
42
#include "ixheaacd_mps_dec.h"
43
#include "ixheaacd_mps_mdct_2_qmf.h"
44
#include "ixheaacd_mps_macro_def.h"
45
#include "ixheaacd_mps_basic_op.h"
46
47
3.23k
IA_ERRORCODE ixheaacd_mdct2qmf_tables_init(ia_heaac_mps_state_struct *pstr_mps_state) {
48
3.23k
  WORD32 time_slots;
49
50
3.23k
  time_slots = pstr_mps_state->upd_qmf;
51
52
3.23k
  if (32 == time_slots) {
53
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[0] =
54
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_00;
55
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[1] =
56
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_01;
57
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[2] =
58
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_02;
59
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[3] =
60
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_03;
61
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[4] =
62
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_04;
63
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[5] =
64
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_05;
65
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[6] =
66
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_06;
67
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[7] =
68
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_07;
69
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[8] =
70
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_08;
71
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[9] =
72
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_09;
73
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[10] =
74
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_10;
75
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[11] =
76
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_11;
77
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[12] =
78
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_12;
79
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[13] =
80
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_13;
81
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[14] =
82
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_14;
83
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[15] =
84
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_15;
85
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[16] =
86
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_15;
87
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[17] =
88
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_14;
89
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[18] =
90
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_13;
91
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[19] =
92
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_12;
93
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[20] =
94
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_11;
95
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[21] =
96
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_10;
97
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[22] =
98
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_09;
99
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[23] =
100
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_08;
101
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[24] =
102
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_07;
103
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[25] =
104
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_06;
105
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[26] =
106
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_05;
107
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[27] =
108
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_04;
109
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[28] =
110
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_03;
111
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[29] =
112
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_02;
113
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[30] =
114
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_01;
115
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[31] =
116
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_00;
117
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[32] =
118
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_16;
119
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[33] =
120
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_17;
121
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[34] =
122
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_18;
123
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[35] =
124
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_19;
125
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[36] =
126
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_20;
127
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[37] =
128
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_21;
129
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[38] =
130
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_22;
131
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[39] =
132
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_23;
133
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[40] =
134
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_24;
135
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[41] =
136
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_25;
137
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[42] =
138
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_26;
139
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[43] =
140
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_27;
141
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[44] =
142
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_28;
143
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[45] =
144
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_29;
145
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[46] =
146
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_30;
147
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[47] =
148
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_31;
149
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[48] =
150
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_31;
151
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[49] =
152
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_30;
153
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[50] =
154
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_29;
155
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[51] =
156
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_28;
157
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[52] =
158
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_27;
159
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[53] =
160
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_26;
161
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[54] =
162
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_25;
163
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[55] =
164
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_24;
165
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[56] =
166
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_23;
167
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[57] =
168
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_22;
169
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[58] =
170
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_21;
171
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[59] =
172
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_20;
173
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[60] =
174
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_19;
175
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[61] =
176
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_18;
177
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[62] =
178
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_17;
179
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[63] =
180
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_32_16;
181
182
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[0] =
183
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_4_00;
184
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[1] =
185
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_4_01;
186
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[2] =
187
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_4_01;
188
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[3] =
189
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_4_00;
190
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[4] =
191
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_4_02;
192
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[5] =
193
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_4_03;
194
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[6] =
195
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_4_03;
196
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[7] =
197
1.58k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_4_02;
198
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[8] = NULL;
199
1.58k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[9] = NULL;
200
1.65k
  } else {
201
1.65k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[0] =
202
1.65k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_2_00;
203
1.65k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[1] =
204
1.65k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_2_00;
205
1.65k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[2] =
206
1.65k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_2_01;
207
1.65k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[3] =
208
1.65k
        pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_2_01;
209
1.65k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[4] = NULL;
210
1.65k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[5] = NULL;
211
1.65k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[6] = NULL;
212
1.65k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[7] = NULL;
213
1.65k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[8] = NULL;
214
1.65k
    pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[9] = NULL;
215
216
1.65k
    if (30 == time_slots) {
217
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[0] =
218
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_00;
219
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[1] =
220
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_01;
221
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[2] =
222
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_02;
223
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[3] =
224
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_03;
225
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[4] =
226
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_04;
227
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[5] =
228
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_05;
229
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[6] =
230
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_06;
231
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[7] =
232
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_07;
233
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[8] =
234
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_08;
235
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[9] =
236
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_09;
237
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[10] =
238
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_10;
239
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[11] =
240
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_11;
241
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[12] =
242
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_12;
243
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[13] =
244
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_13;
245
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[14] =
246
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_14;
247
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[15] =
248
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_14;
249
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[16] =
250
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_13;
251
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[17] =
252
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_12;
253
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[18] =
254
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_11;
255
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[19] =
256
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_10;
257
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[20] =
258
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_09;
259
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[21] =
260
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_08;
261
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[22] =
262
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_07;
263
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[23] =
264
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_06;
265
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[24] =
266
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_05;
267
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[25] =
268
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_04;
269
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[26] =
270
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_03;
271
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[27] =
272
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_02;
273
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[28] =
274
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_01;
275
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[29] =
276
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_00;
277
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[30] =
278
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_15;
279
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[31] =
280
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_16;
281
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[32] =
282
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_17;
283
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[33] =
284
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_18;
285
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[34] =
286
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_19;
287
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[35] =
288
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_20;
289
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[36] =
290
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_21;
291
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[37] =
292
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_22;
293
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[38] =
294
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_23;
295
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[39] =
296
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_24;
297
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[40] =
298
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_25;
299
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[41] =
300
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_26;
301
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[42] =
302
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_27;
303
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[43] =
304
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_28;
305
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[44] =
306
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_29;
307
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[45] =
308
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_29;
309
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[46] =
310
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_28;
311
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[47] =
312
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_27;
313
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[48] =
314
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_26;
315
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[49] =
316
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_25;
317
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[50] =
318
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_24;
319
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[51] =
320
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_23;
321
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[52] =
322
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_22;
323
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[53] =
324
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_21;
325
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[54] =
326
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_20;
327
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[55] =
328
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_19;
329
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[56] =
330
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_18;
331
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[57] =
332
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_17;
333
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[58] =
334
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_16;
335
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[59] =
336
27
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_30_15;
337
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[60] = NULL;
338
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[61] = NULL;
339
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[62] = NULL;
340
27
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[63] = NULL;
341
1.62k
    } else if (24 == time_slots) {
342
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[0] =
343
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_00;
344
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[1] =
345
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_01;
346
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[2] =
347
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_02;
348
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[3] =
349
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_03;
350
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[4] =
351
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_04;
352
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[5] =
353
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_05;
354
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[6] =
355
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_06;
356
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[7] =
357
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_07;
358
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[8] =
359
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_08;
360
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[9] =
361
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_09;
362
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[10] =
363
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_10;
364
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[11] =
365
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_11;
366
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[12] =
367
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_11;
368
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[13] =
369
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_10;
370
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[14] =
371
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_09;
372
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[15] =
373
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_08;
374
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[16] =
375
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_07;
376
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[17] =
377
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_06;
378
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[18] =
379
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_05;
380
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[19] =
381
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_04;
382
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[20] =
383
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_03;
384
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[21] =
385
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_02;
386
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[22] =
387
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_01;
388
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[23] =
389
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_00;
390
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[24] =
391
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_12;
392
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[25] =
393
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_13;
394
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[26] =
395
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_14;
396
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[27] =
397
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_15;
398
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[28] =
399
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_16;
400
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[29] =
401
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_17;
402
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[30] =
403
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_18;
404
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[31] =
405
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_19;
406
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[32] =
407
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_20;
408
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[33] =
409
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_21;
410
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[34] =
411
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_22;
412
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[35] =
413
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_23;
414
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[36] =
415
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_23;
416
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[37] =
417
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_22;
418
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[38] =
419
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_21;
420
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[39] =
421
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_20;
422
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[40] =
423
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_19;
424
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[41] =
425
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_18;
426
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[42] =
427
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_17;
428
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[43] =
429
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_16;
430
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[44] =
431
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_15;
432
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[45] =
433
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_14;
434
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[46] =
435
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_13;
436
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[47] =
437
501
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_24_12;
438
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[48] = NULL;
439
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[49] = NULL;
440
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[50] = NULL;
441
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[51] = NULL;
442
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[52] = NULL;
443
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[53] = NULL;
444
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[54] = NULL;
445
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[55] = NULL;
446
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[56] = NULL;
447
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[57] = NULL;
448
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[58] = NULL;
449
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[59] = NULL;
450
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[60] = NULL;
451
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[61] = NULL;
452
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[62] = NULL;
453
501
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[63] = NULL;
454
1.12k
    } else if (18 == time_slots) {
455
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[0] =
456
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_00;
457
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[1] =
458
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_01;
459
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[2] =
460
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_02;
461
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[3] =
462
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_03;
463
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[4] =
464
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_04;
465
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[5] =
466
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_05;
467
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[6] =
468
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_06;
469
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[7] =
470
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_07;
471
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[8] =
472
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_08;
473
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[9] =
474
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_08;
475
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[10] =
476
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_07;
477
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[11] =
478
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_06;
479
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[12] =
480
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_05;
481
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[13] =
482
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_04;
483
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[14] =
484
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_03;
485
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[15] =
486
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_02;
487
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[16] =
488
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_01;
489
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[17] =
490
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_00;
491
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[18] =
492
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_09;
493
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[19] =
494
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_10;
495
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[20] =
496
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_11;
497
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[21] =
498
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_12;
499
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[22] =
500
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_13;
501
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[23] =
502
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_14;
503
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[24] =
504
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_15;
505
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[25] =
506
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_16;
507
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[26] =
508
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_17;
509
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[27] =
510
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_17;
511
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[28] =
512
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_16;
513
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[29] =
514
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_15;
515
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[30] =
516
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_14;
517
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[31] =
518
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_13;
519
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[32] =
520
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_12;
521
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[33] =
522
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_11;
523
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[34] =
524
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_10;
525
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[35] =
526
30
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_18_09;
527
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[36] = NULL;
528
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[37] = NULL;
529
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[38] = NULL;
530
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[39] = NULL;
531
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[40] = NULL;
532
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[41] = NULL;
533
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[42] = NULL;
534
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[43] = NULL;
535
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[44] = NULL;
536
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[45] = NULL;
537
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[46] = NULL;
538
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[47] = NULL;
539
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[48] = NULL;
540
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[49] = NULL;
541
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[50] = NULL;
542
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[51] = NULL;
543
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[52] = NULL;
544
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[53] = NULL;
545
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[54] = NULL;
546
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[55] = NULL;
547
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[56] = NULL;
548
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[57] = NULL;
549
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[58] = NULL;
550
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[59] = NULL;
551
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[60] = NULL;
552
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[61] = NULL;
553
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[62] = NULL;
554
30
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[63] = NULL;
555
1.09k
    } else if (16 == time_slots) {
556
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[0] =
557
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_00;
558
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[1] =
559
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_01;
560
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[2] =
561
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_02;
562
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[3] =
563
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_03;
564
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[4] =
565
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_04;
566
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[5] =
567
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_05;
568
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[6] =
569
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_06;
570
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[7] =
571
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_07;
572
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[8] =
573
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_07;
574
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[9] =
575
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_06;
576
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[10] =
577
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_05;
578
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[11] =
579
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_04;
580
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[12] =
581
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_03;
582
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[13] =
583
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_02;
584
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[14] =
585
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_01;
586
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[15] =
587
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_00;
588
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[16] =
589
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_08;
590
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[17] =
591
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_09;
592
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[18] =
593
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_10;
594
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[19] =
595
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_11;
596
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[20] =
597
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_12;
598
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[21] =
599
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_13;
600
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[22] =
601
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_14;
602
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[23] =
603
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_15;
604
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[24] =
605
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_15;
606
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[25] =
607
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_14;
608
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[26] =
609
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_13;
610
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[27] =
611
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_12;
612
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[28] =
613
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_11;
614
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[29] =
615
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_10;
616
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[30] =
617
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_09;
618
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[31] =
619
1.08k
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_16_08;
620
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[32] = NULL;
621
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[33] = NULL;
622
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[34] = NULL;
623
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[35] = NULL;
624
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[36] = NULL;
625
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[37] = NULL;
626
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[38] = NULL;
627
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[39] = NULL;
628
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[40] = NULL;
629
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[41] = NULL;
630
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[42] = NULL;
631
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[43] = NULL;
632
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[44] = NULL;
633
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[45] = NULL;
634
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[46] = NULL;
635
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[47] = NULL;
636
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[48] = NULL;
637
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[49] = NULL;
638
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[50] = NULL;
639
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[51] = NULL;
640
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[52] = NULL;
641
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[53] = NULL;
642
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[54] = NULL;
643
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[55] = NULL;
644
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[56] = NULL;
645
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[57] = NULL;
646
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[58] = NULL;
647
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[59] = NULL;
648
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[60] = NULL;
649
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[61] = NULL;
650
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[62] = NULL;
651
1.08k
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[63] = NULL;
652
1.08k
    } else if (15 == time_slots) {
653
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[0] =
654
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_00;
655
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[1] =
656
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_01;
657
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[2] =
658
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_02;
659
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[3] =
660
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_03;
661
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[4] =
662
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_04;
663
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[5] =
664
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_05;
665
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[6] =
666
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_06;
667
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[7] =
668
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_06;
669
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[8] =
670
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_05;
671
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[9] =
672
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_04;
673
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[10] =
674
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_03;
675
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[11] =
676
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_02;
677
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[12] =
678
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_01;
679
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[13] =
680
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_00;
681
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[14] =
682
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_07;
683
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[15] =
684
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_08;
685
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[16] =
686
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_09;
687
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[17] =
688
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_10;
689
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[18] =
690
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_11;
691
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[19] =
692
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_12;
693
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[20] =
694
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_13;
695
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[21] =
696
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_14;
697
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[22] =
698
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_14;
699
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[23] =
700
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_13;
701
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[24] =
702
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_12;
703
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[25] =
704
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_11;
705
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[26] =
706
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_10;
707
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[27] =
708
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_09;
709
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[28] =
710
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_08;
711
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[29] =
712
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_long_15_07;
713
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[30] = NULL;
714
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[31] = NULL;
715
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[32] = NULL;
716
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[33] = NULL;
717
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[34] = NULL;
718
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[35] = NULL;
719
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[36] = NULL;
720
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[37] = NULL;
721
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[38] = NULL;
722
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[39] = NULL;
723
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[40] = NULL;
724
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[41] = NULL;
725
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[42] = NULL;
726
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[43] = NULL;
727
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[44] = NULL;
728
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[45] = NULL;
729
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[46] = NULL;
730
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[47] = NULL;
731
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[48] = NULL;
732
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[49] = NULL;
733
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[50] = NULL;
734
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[51] = NULL;
735
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[52] = NULL;
736
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[53] = NULL;
737
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[54] = NULL;
738
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[55] = NULL;
739
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[56] = NULL;
740
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[57] = NULL;
741
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[58] = NULL;
742
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[59] = NULL;
743
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[60] = NULL;
744
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[61] = NULL;
745
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[62] = NULL;
746
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_long[63] = NULL;
747
748
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[4] =
749
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_3_00;
750
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[5] =
751
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_3_00;
752
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[6] =
753
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_3_01;
754
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[7] =
755
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_3_02;
756
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[8] =
757
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_3_02;
758
11
      pstr_mps_state->ia_mps_dec_mdct2qmfcos_table.cos_table_short[9] =
759
11
          pstr_mps_state->ia_mps_dec_mps_table.mdct2qmfcos_table_ptr->cos_table_short_3_01;
760
11
    } else {
761
0
      if (pstr_mps_state->residual_coding) return IA_XHEAAC_MPS_DEC_EXE_FATAL_INVALID_TIMESLOTS;
762
0
    }
763
1.65k
  }
764
765
3.23k
  return IA_NO_ERROR;
766
3.23k
}
767
768
3.23k
IA_ERRORCODE ixheaacd_mdct2qmf_create(ia_heaac_mps_state_struct *pstr_mps_state) {
769
3.23k
  IA_ERRORCODE error_code = IA_NO_ERROR;
770
771
3.23k
  WORD32 *qmf_residual_real = pstr_mps_state->array_struct->qmf_residual_real_pre;
772
3.23k
  WORD32 *qmf_residual_imag = pstr_mps_state->array_struct->qmf_residual_imag_pre;
773
774
3.23k
  memset(qmf_residual_real, 0, RES_CHXQMFXTSX4);
775
3.23k
  memset(qmf_residual_imag, 0, RES_CHXQMFXTSX4);
776
777
3.23k
  error_code = ixheaacd_mdct2qmf_tables_init(pstr_mps_state);
778
779
3.23k
  return error_code;
780
3.23k
}
781
782
2.02k
static VOID ixheaacd_local_zero(WORD32 const l, WORD32 *const b) {
783
2.02k
  WORD32 i;
784
785
345k
  for (i = 0; i < l; i++) {
786
343k
    b[i] = 0;
787
343k
  }
788
2.02k
}
789
790
ATTR_NO_SANITIZE_INTEGER
791
static VOID ixheaacd_local_fold_out(WORD32 *const s, WORD32 const lv, WORD32 *const w,
792
                                    WORD32 const l_w, WORD32 *const v_main,
793
2.23k
                                    WORD32 *const v_slave) {
794
2.23k
  WORD32 n;
795
2.23k
  WORD32 i;
796
2.23k
  WORD32 j;
797
2.23k
  WORD32 k;
798
799
2.23k
  WORD32 temp_1;
800
801
2.23k
  WORD32 *w1;
802
2.23k
  WORD32 *w2;
803
2.23k
  WORD32 *w3;
804
2.23k
  WORD32 *w4;
805
2.23k
  WORD32 *ptr1, *ptr2, *ptr3;
806
807
2.23k
  WORD32 m = l_w >> 1;
808
2.23k
  WORD32 l = lv / m;
809
2.23k
  WORD32 m2w = m >> 1;
810
2.23k
  WORD32 m2a = m - m2w;
811
812
37.9k
  for (i = m; i < lv; i += l_w) {
813
594k
    for (n = i + l_w; i < n; i++) {
814
559k
      s[i] = -s[i];
815
559k
    }
816
35.6k
  }
817
818
2.23k
  w1 = &w[-m2a];
819
2.23k
  w2 = &w[m2w];
820
2.23k
  w3 = &w[m2w];
821
2.23k
  w4 = &w[m + m2w];
822
823
142k
  for (n = 0, j = 0, k = m; n < l - 1; n++) {
824
690k
    for (i = 0; i < m2a; i++, j++, k++) {
825
550k
      v_main[k] = ixheaacd_mps_mult32_shr_30(w2[i], s[k]);
826
550k
      v_slave[j] = ixheaacd_mps_mult32_shr_30(w4[i], s[k]);
827
550k
    }
828
829
690k
    for (; i < m; i++, j++, k++) {
830
550k
      v_main[j] = ixheaacd_mps_mult32_shr_30(w3[i], s[j]);
831
550k
      v_slave[k] = ixheaacd_mps_mult32_shr_30(w1[i], s[j]);
832
550k
    }
833
140k
  }
834
835
2.23k
  ptr1 = v_main;
836
2.23k
  ptr2 = v_slave + m - 1;
837
2.23k
  ptr3 = s;
838
10.9k
  for (i = 0; i < m2a; i++) {
839
8.73k
    temp_1 = *ptr3++;
840
8.73k
    *ptr1++ = ixheaacd_mps_mult32_shr_30(*w2++, temp_1);
841
8.73k
    *ptr2-- = ixheaacd_mps_mult32_shr_30(*w4++, temp_1);
842
8.73k
  }
843
844
2.23k
  j = l * m - m2w;
845
2.23k
  k = l * m - m2a - 1;
846
2.23k
  ptr3 = s + l * m - m;
847
2.23k
  ptr1 = v_main + j;
848
2.23k
  ptr2 = v_slave + k;
849
850
2.23k
  w1 += m2a;
851
10.9k
  for (; i < m; i++, j++) {
852
8.73k
    temp_1 = *ptr3++;
853
8.73k
    *ptr1++ = ixheaacd_mps_mult32_shr_30(*w2++, temp_1);
854
8.73k
    *ptr2-- = ixheaacd_mps_mult32_shr_30(*w1++, temp_1);
855
8.73k
  }
856
2.23k
}
857
858
static VOID ixheaacd_local_imdet(
859
    WORD32 *x1, WORD32 *x2, WORD32 *const scale1, WORD32 const val, WORD32 *z_real,
860
    WORD32 *z_imag, const ia_mps_dec_mdct2qmf_cos_table_struct *ia_mps_dec_mdct2qmfcos_tab,
861
2.23k
    WORD32 is_long, VOID *scratch) {
862
2.23k
  WORD32 lw = val << 1;
863
2.23k
  WORD32 offset = val - (val >> 1);
864
865
2.23k
  WORD32 temp_1, temp3, temp_2;
866
2.23k
  WORD32 *z_real_2, *z_imag_2;
867
2.23k
  WORD32 *px1, *px2, *px3, *px4;
868
2.23k
  const WORD16 *cp, *sp;
869
2.23k
  WORD32 *scale;
870
2.23k
  WORD32 cnt = val + (val >> 1);
871
872
2.23k
  WORD32 k;
873
2.23k
  WORD32 n, j;
874
875
2.23k
  WORD32 l;
876
877
2.23k
  WORD32 *p_sum = scratch;
878
2.23k
  WORD32 *p_diff =
879
2.23k
      (WORD32 *)scratch + IXHEAAC_GET_SIZE_ALIGNED_TYPE(SUM_SIZE, sizeof(*p_diff), BYTE_ALIGN_8);
880
881
2.23k
  z_real_2 = z_real + lw;
882
2.23k
  z_imag_2 = z_imag + lw;
883
884
73.5k
  for (l = 0; l < LOOP_COUNTER; l++) {
885
71.3k
    WORD32 *sum = p_sum;
886
71.3k
    WORD32 *diff = p_diff;
887
888
71.3k
    px1 = x1;
889
71.3k
    px2 = x2 + val - 1;
890
71.3k
    px3 = x2 + val;
891
71.3k
    px4 = x1 + 2 * val - 1;
892
893
630k
    for (n = 0; n < val; n++) {
894
559k
      *sum++ = ixheaac_add32_sat(*px1, *px2);
895
559k
      *sum++ = ixheaac_add32_sat(*px3, *px4);
896
559k
      *diff++ = ixheaac_sub32_sat(*px1++, *px2--);
897
559k
      *diff++ = ixheaac_sub32_sat(*px3++, *px4--);
898
559k
    }
899
900
71.3k
    scale = scale1;
901
910k
    for (k = 0; k < cnt; k++) {
902
838k
      if (1 == is_long) {
903
611k
        cp = ia_mps_dec_mdct2qmfcos_tab->cos_table_long[k];
904
611k
        sp = cp + val;
905
611k
      } else {
906
226k
        cp = ia_mps_dec_mdct2qmfcos_tab->cos_table_short[k + is_long];
907
226k
        sp = cp + val;
908
226k
      }
909
910
838k
      sum = p_sum;
911
838k
      diff = p_diff;
912
913
838k
      temp_1 = *cp++;
914
838k
      temp_2 = ixheaacd_mps_mult32_shr_15(temp_1, *sum);
915
838k
      sum++;
916
838k
      *z_real = temp_2;
917
918
838k
      temp_2 = ixheaacd_mps_mult32_shr_15(temp_1, *sum);
919
838k
      sum++;
920
838k
      *z_real_2 = temp_2;
921
922
838k
      temp_1 = *--sp;
923
838k
      temp_2 = ixheaacd_mps_mult32_shr_15(temp_1, *diff);
924
838k
      diff++;
925
838k
      *z_imag = temp_2;
926
927
838k
      temp_2 = ixheaacd_mps_mult32_shr_15(temp_1, *diff);
928
838k
      diff++;
929
838k
      *z_imag_2 = temp_2;
930
15.8M
      for (n = 1; n < val; n++) {
931
15.0M
        temp_1 = *cp++;
932
15.0M
        temp_2 = ixheaacd_mps_mult32_shr_15(temp_1, *sum);
933
15.0M
        sum++;
934
15.0M
        *z_real = ixheaac_add32_sat(*z_real, temp_2);
935
936
15.0M
        temp_2 = ixheaacd_mps_mult32_shr_15(temp_1, *sum);
937
15.0M
        sum++;
938
15.0M
        *z_real_2 = ixheaac_add32_sat(*z_real_2, temp_2);
939
940
15.0M
        temp_1 = *--sp;
941
15.0M
        temp_2 = ixheaacd_mps_mult32_shr_15(temp_1, *diff);
942
15.0M
        diff++;
943
15.0M
        *z_imag = ixheaac_add32_sat(*z_imag, temp_2);
944
945
15.0M
        temp_2 = ixheaacd_mps_mult32_shr_15(temp_1, *diff);
946
15.0M
        diff++;
947
15.0M
        *z_imag_2 = ixheaac_add32_sat(*z_imag_2, temp_2);
948
15.0M
      }
949
838k
      z_real++;
950
838k
      z_imag++;
951
838k
      z_real_2++;
952
838k
      z_imag_2++;
953
838k
    }
954
71.3k
    z_real -= cnt;
955
71.3k
    z_real_2 -= cnt;
956
71.3k
    z_imag -= cnt;
957
71.3k
    z_imag_2 -= cnt;
958
959
910k
    for (j = 0; j < (cnt); j++) {
960
838k
      *z_real = ixheaacd_mps_mult32_shr_15(*z_real, *scale);
961
838k
      z_real++;
962
838k
      *z_imag = ixheaacd_mps_mult32_shr_15(*z_imag, *scale);
963
838k
      z_imag++;
964
838k
      *z_real_2 = ixheaacd_mps_mult32_shr_15(*z_real_2, *scale);
965
838k
      z_real_2++;
966
838k
      *z_imag_2 = ixheaacd_mps_mult32_shr_15(*z_imag_2, *scale);
967
838k
      scale++;
968
838k
      z_imag_2++;
969
838k
    }
970
971
350k
    for (; k < lw; k++) {
972
279k
      if (1 == is_long) {
973
203k
        cp = ia_mps_dec_mdct2qmfcos_tab->cos_table_long[k];
974
203k
        sp = cp + val;
975
203k
      } else {
976
75.5k
        cp = ia_mps_dec_mdct2qmfcos_tab->cos_table_short[k + is_long];
977
75.5k
        sp = cp + val;
978
75.5k
      }
979
980
279k
      sum = p_sum;
981
279k
      diff = p_diff;
982
983
279k
      temp_1 = *cp++;
984
985
279k
      temp3 = ixheaacd_mps_mult32_shr_15(temp_1, *sum);
986
279k
      sum++;
987
279k
      *z_real = temp3;
988
989
279k
      temp3 = ixheaacd_mps_mult32_shr_15(temp_1, *sum);
990
279k
      sum++;
991
279k
      *z_real_2 = temp3;
992
993
279k
      temp_1 = *--sp;
994
279k
      temp3 = ixheaacd_mps_mult32_shr_15(temp_1, *diff);
995
279k
      diff++;
996
279k
      *z_imag = temp3;
997
998
279k
      temp3 = ixheaacd_mps_mult32_shr_15(temp_1, *diff);
999
279k
      diff++;
1000
279k
      *z_imag_2 = temp3;
1001
1002
5.29M
      for (n = 1; n < val; n++) {
1003
5.01M
        temp_1 = *cp++;
1004
5.01M
        temp3 = ixheaacd_mps_mult32_shr_15(temp_1, *sum);
1005
5.01M
        sum++;
1006
5.01M
        *z_real = ixheaac_add32_sat(*z_real, temp3);
1007
1008
5.01M
        temp3 = ixheaacd_mps_mult32_shr_15(temp_1, *sum);
1009
5.01M
        sum++;
1010
5.01M
        *z_real_2 = ixheaac_add32_sat(*z_real_2, temp3);
1011
1012
5.01M
        temp_1 = *--sp;
1013
5.01M
        temp3 = ixheaacd_mps_mult32_shr_15(temp_1, *diff);
1014
5.01M
        diff++;
1015
5.01M
        *z_imag = ixheaac_add32_sat(*z_imag, temp3);
1016
1017
5.01M
        temp3 = ixheaacd_mps_mult32_shr_15(temp_1, *diff);
1018
5.01M
        diff++;
1019
5.01M
        *z_imag_2 = ixheaac_add32_sat(*z_imag_2, temp3);
1020
5.01M
      }
1021
1022
279k
      z_real++;
1023
279k
      z_imag++;
1024
279k
      z_real_2++;
1025
279k
      z_imag_2++;
1026
279k
    }
1027
71.3k
    z_real -= offset;
1028
71.3k
    z_real_2 -= offset;
1029
71.3k
    z_imag -= offset;
1030
71.3k
    z_imag_2 -= offset;
1031
1032
350k
    for (j = 0; j < (offset); j++) {
1033
279k
      temp_1 = (*scale++) * -1;
1034
279k
      *z_real = ixheaacd_mps_mult32_shr_15(*z_real, temp_1);
1035
279k
      z_real++;
1036
279k
      *z_imag = ixheaacd_mps_mult32_shr_15(*z_imag, temp_1);
1037
279k
      z_imag++;
1038
279k
      *z_real_2 = ixheaacd_mps_mult32_shr_15(*z_real_2, temp_1);
1039
279k
      z_real_2++;
1040
279k
      *z_imag_2 = ixheaacd_mps_mult32_shr_15(*z_imag_2, temp_1);
1041
279k
      z_imag_2++;
1042
279k
    }
1043
1044
71.3k
    x1 += lw;
1045
71.3k
    x2 += lw;
1046
1047
71.3k
    z_real += lw;
1048
71.3k
    z_imag += lw;
1049
71.3k
    z_imag_2 += lw;
1050
71.3k
    z_real_2 += lw;
1051
71.3k
  }
1052
2.23k
}
1053
1054
static VOID ixheaacd_local_hybcmdct2qmf(
1055
    WORD32 *const v_main, WORD32 *const v_slave, WORD32 *const w, WORD32 const lw, WORD32 *z_real,
1056
    WORD32 *z_imag, const ia_mps_dec_mdct2qmf_cos_table_struct *ia_mps_dec_mdct2qmfcos_tab,
1057
2.23k
    VOID *scratch, WORD32 is_long) {
1058
2.23k
  WORD32 i, start = 0;
1059
2.23k
  WORD32 m = lw >> 1;
1060
1061
2.23k
  switch (lw) {
1062
1.00k
    case TSX2_4:
1063
1.00k
    case TSX2_6:
1064
1.00k
    case TSX2_30:
1065
1.05k
    case TSX2_36:
1066
1.07k
    case TSX2_60:
1067
1.07k
      start = 1;
1068
1.07k
      break;
1069
1070
680
    case TSX2_8:
1071
831
    case TSX2_32:
1072
1.03k
    case TSX2_48:
1073
1.15k
    case TSX2_64:
1074
1.15k
      start = 0;
1075
1.15k
      break;
1076
1077
0
    default:
1078
0
      break;
1079
2.23k
  }
1080
1081
2.23k
  ixheaacd_local_imdet(v_slave, v_main, w, m, z_real, z_imag, ia_mps_dec_mdct2qmfcos_tab, is_long,
1082
2.23k
                       scratch);
1083
1084
1.12M
  for (i = start; i < (m << 7); i += 2) {
1085
1.11M
    z_imag[i] = -(z_imag[i]);
1086
1.11M
  }
1087
1088
2.23k
  return;
1089
2.23k
}
1090
1091
0
static VOID ixheaacd_local_p_zero_ts15(WORD32 *const b, WORD32 *src, WORD32 l) {
1092
0
  WORD32 i;
1093
1094
0
  for (i = 0; i < 15; i++) {
1095
0
    b[i] = *src++;
1096
0
  }
1097
0
  if (l != 15) {
1098
0
    src--;
1099
0
    for (; i < l; i++) {
1100
0
      b[i] = *--src;
1101
0
    }
1102
0
  }
1103
0
}
1104
1105
30
static VOID ixheaacd_local_p_nonzero(WORD32 *const b, WORD32 *src, WORD32 l) {
1106
30
  WORD32 i;
1107
1108
620
  for (i = 0; i < l; i++) {
1109
590
    b[i] = *src--;
1110
590
  }
1111
30
}
1112
1113
518
static VOID ixheaacd_local_p_zero(WORD32 *const b, WORD32 *src, WORD32 l, WORD32 upd_qmf) {
1114
518
  WORD32 i;
1115
1116
12.6k
  for (i = 0; i < upd_qmf; i++) {
1117
12.1k
    b[i] = *src++;
1118
12.1k
  }
1119
518
  if (l != upd_qmf) {
1120
10.2k
    for (; i < l; i++) {
1121
9.83k
      b[i] = *--src;
1122
9.83k
    }
1123
415
  }
1124
518
}
1125
1126
static VOID ixheaacd_local_sin(WORD32 const t, WORD32 const p, WORD32 const l, WORD32 *const b,
1127
885
                               ia_mps_dec_mdct2qmf_table_struct *mdct2qmf_tab) {
1128
885
  WORD32 *sin_ptr;
1129
1130
885
  switch (t) {
1131
238
    case TS_2:
1132
238
      switch (p) {
1133
146
        case ZERO:
1134
146
          b[0] = 12540;
1135
146
          b[1] = 30274;
1136
146
          if (l == TSX2_4) {
1137
119
            b[2] = b[1];
1138
119
            b[3] = b[0];
1139
119
          }
1140
146
          break;
1141
92
        case TS_2:
1142
92
          b[0] = 30274;
1143
92
          b[1] = 12540;
1144
92
          break;
1145
0
        default:
1146
0
          break;
1147
238
      }
1148
238
      break;
1149
238
    case TS_4:
1150
99
      switch (p) {
1151
88
        case ZERO:
1152
88
          sin_ptr = mdct2qmf_tab->local_sin_4;
1153
88
          b[0] = *sin_ptr++;
1154
88
          b[1] = *sin_ptr++;
1155
88
          b[2] = *sin_ptr++;
1156
88
          b[3] = *sin_ptr;
1157
88
          if (l == TSX2_8) {
1158
85
            b[4] = *sin_ptr--;
1159
85
            b[5] = *sin_ptr--;
1160
85
            b[6] = *sin_ptr--;
1161
85
            b[7] = *sin_ptr;
1162
85
          }
1163
88
          break;
1164
11
        case TS_4:
1165
11
          sin_ptr = &(mdct2qmf_tab->local_sin_4[TS_MINUS_ONE_4]);
1166
11
          b[0] = *sin_ptr--;
1167
11
          b[1] = *sin_ptr--;
1168
11
          b[2] = *sin_ptr--;
1169
11
          b[3] = *sin_ptr;
1170
11
          break;
1171
0
        default:
1172
0
          break;
1173
99
      }
1174
99
      break;
1175
99
    case UPD_QMF_15:
1176
0
      switch (p) {
1177
0
        case ZERO:
1178
0
          sin_ptr = &(mdct2qmf_tab->local_sin_15[1]);
1179
0
          ixheaacd_local_p_zero_ts15(b, sin_ptr, l);
1180
0
          break;
1181
0
        case UPD_QMF_15:
1182
0
          sin_ptr = &(mdct2qmf_tab->local_sin_15[TS_MINUS_ONE_15]);
1183
0
          ixheaacd_local_p_nonzero(b, sin_ptr, l);
1184
0
          break;
1185
0
        default:
1186
0
          break;
1187
0
      }
1188
0
      break;
1189
151
    case UPD_QMF_16:
1190
151
      switch (p) {
1191
134
        case ZERO:
1192
134
          sin_ptr = mdct2qmf_tab->local_sin_16;
1193
134
          ixheaacd_local_p_zero(b, sin_ptr, l, UPD_QMF_16);
1194
134
          break;
1195
17
        case UPD_QMF_16:
1196
17
          sin_ptr = &(mdct2qmf_tab->local_sin_16[TS_MINUS_ONE_16]);
1197
17
          ixheaacd_local_p_nonzero(b, sin_ptr, l);
1198
17
          break;
1199
0
        default:
1200
0
          break;
1201
151
      }
1202
151
      break;
1203
151
    case UPD_QMF_18:
1204
50
      switch (p) {
1205
47
        case ZERO:
1206
47
          sin_ptr = mdct2qmf_tab->local_sin_18;
1207
47
          ixheaacd_local_p_zero(b, sin_ptr, l, UPD_QMF_18);
1208
47
          break;
1209
3
        case UPD_QMF_18:
1210
3
          sin_ptr = &(mdct2qmf_tab->local_sin_18[TS_MINUS_ONE_18]);
1211
3
          ixheaacd_local_p_nonzero(b, sin_ptr, l);
1212
3
          break;
1213
0
        default:
1214
0
          break;
1215
50
      }
1216
50
      break;
1217
203
    case UPD_QMF_24:
1218
203
      switch (p) {
1219
196
        case ZERO:
1220
196
          sin_ptr = mdct2qmf_tab->local_sin_24;
1221
196
          ixheaacd_local_p_zero(b, sin_ptr, l, UPD_QMF_24);
1222
196
          break;
1223
7
        case UPD_QMF_24:
1224
7
          sin_ptr = &(mdct2qmf_tab->local_sin_24[TS_MINUS_ONE_24]);
1225
7
          ixheaacd_local_p_nonzero(b, sin_ptr, l);
1226
7
          break;
1227
0
        default:
1228
0
          break;
1229
203
      }
1230
203
      break;
1231
203
    case UPD_QMF_30:
1232
24
      switch (p) {
1233
24
        case ZERO:
1234
24
          sin_ptr = mdct2qmf_tab->local_sin_30;
1235
24
          ixheaacd_local_p_zero(b, sin_ptr, l, UPD_QMF_30);
1236
24
          break;
1237
0
        case UPD_QMF_30:
1238
0
          sin_ptr = &(mdct2qmf_tab->local_sin_30[TS_MINUS_ONE_30]);
1239
0
          ixheaacd_local_p_nonzero(b, sin_ptr, l);
1240
0
          break;
1241
0
        default:
1242
0
          break;
1243
24
      }
1244
24
      break;
1245
120
    case UPD_QMF_32:
1246
120
      switch (p) {
1247
117
        case ZERO:
1248
117
          sin_ptr = mdct2qmf_tab->local_sin_32;
1249
117
          ixheaacd_local_p_zero(b, sin_ptr, l, UPD_QMF_32);
1250
117
          break;
1251
3
        case UPD_QMF_32:
1252
3
          sin_ptr = &(mdct2qmf_tab->local_sin_32[TS_MINUS_ONE_32]);
1253
3
          ixheaacd_local_p_nonzero(b, sin_ptr, l);
1254
1255
3
          break;
1256
0
        default:
1257
0
          break;
1258
120
      }
1259
120
      break;
1260
120
    default:
1261
0
      break;
1262
885
  }
1263
885
  return;
1264
885
}
1265
1266
133
static VOID ixheaacd_local_one(WORD32 const l, WORD32 *const b) {
1267
133
  WORD32 i;
1268
1269
1.44k
  for (i = 0; i < l; i++) {
1270
1.31k
    b[i] = ONE_IN_Q15;
1271
1.31k
  }
1272
133
}
1273
1274
752
static VOID ixheaacd_local_freq_win(WORD32 const l, WORD32 *const b, const WORD32 **wf) {
1275
752
  WORD32 i;
1276
752
  WORD32 odd_length = (l & ONE_BIT_MASK);
1277
752
  WORD32 temp_1;
1278
752
  WORD32 *b_start, *b_end;
1279
752
  b_start = b;
1280
752
  b_end = b + 2 * l - 1 - odd_length;
1281
1282
14.0k
  for (i = 0; i < l - odd_length; i++) {
1283
13.3k
    temp_1 = wf[l - 1][i];
1284
13.3k
    *b_start++ = temp_1;
1285
13.3k
    *b_end-- = temp_1;
1286
13.3k
  }
1287
1288
752
  if (odd_length == 1) {
1289
0
    *b_start = wf[l - 1][l - 1];
1290
0
    *(b_start + l) = 0;
1291
0
  }
1292
752
}
1293
1294
static VOID ixheaacd_local_mdct_win(WORD32 upd_qmf, WORD32 const window_type, WORD32 *const wf,
1295
                                    WORD32 const **wf_tab, WORD32 *const wt,
1296
752
                                    ia_mps_dec_mdct2qmf_table_struct *mdct2qmf_tab) {
1297
752
  WORD32 length = 0;
1298
752
  WORD32 length_right = 0;
1299
752
  WORD32 length_left = 0;
1300
752
  WORD32 length_const1 = 0;
1301
752
  WORD32 length_const2 = 0;
1302
1303
752
  switch (window_type) {
1304
415
    case ONLY_LONG_SEQUENCE:
1305
415
      length = upd_qmf;
1306
415
      ixheaacd_local_sin(upd_qmf, 0, (length << 1), &wt[0], mdct2qmf_tab);
1307
415
      break;
1308
103
    case LONG_START_SEQUENCE:
1309
103
      switch (upd_qmf) {
1310
0
        case UPD_QMF_15:
1311
0
          length_const1 = 6;
1312
0
          length_const2 = 7;
1313
0
          length_right = 2;
1314
0
          break;
1315
26
        case UPD_QMF_16:
1316
37
        case UPD_QMF_32:
1317
37
          length_const1 = 7 * (upd_qmf >> 4);
1318
37
          length_const2 = length_const1;
1319
37
          length_right = upd_qmf >> 3;
1320
37
          break;
1321
7
        case UPD_QMF_18:
1322
7
          length_const1 = 8;
1323
7
          length_const2 = length_const1;
1324
7
          length_right = 2;
1325
7
          break;
1326
56
        case UPD_QMF_24:
1327
56
          length_const1 = 11;
1328
56
          length_const2 = length_const1;
1329
56
          length_right = 2;
1330
56
          break;
1331
3
        case UPD_QMF_30:
1332
3
          length_const1 = 14;
1333
3
          length_const2 = length_const1;
1334
3
          length_right = 2;
1335
3
          break;
1336
0
        default:
1337
0
          length_const1 = 6;
1338
0
          length_const2 = 7;
1339
0
          length_right = 2;
1340
0
          break;
1341
103
      }
1342
1343
103
      ixheaacd_local_sin(upd_qmf, 0, upd_qmf, &wt[0], mdct2qmf_tab);
1344
103
      ixheaacd_local_one(length_const1, &wt[upd_qmf]);
1345
103
      ixheaacd_local_sin(length_right, length_right, length_right, &wt[upd_qmf + length_const1],
1346
103
                         mdct2qmf_tab);
1347
1348
103
      ixheaacd_local_zero(length_const2, &wt[upd_qmf + length_const1 + length_right]);
1349
103
      length = upd_qmf;
1350
103
      break;
1351
204
    case EIGHT_SHORT_SEQUENCE:
1352
204
      switch (upd_qmf) {
1353
102
        case UPD_QMF_16:
1354
187
        case UPD_QMF_32:
1355
187
          length = upd_qmf >> 3;
1356
187
          break;
1357
0
        case UPD_QMF_15:
1358
6
        case UPD_QMF_18:
1359
6
        case UPD_QMF_30:
1360
17
        case UPD_QMF_24:
1361
17
          length = 2;
1362
17
          break;
1363
0
        default:
1364
0
          break;
1365
204
      }
1366
204
      ixheaacd_local_sin(length, 0, 2 * length, &wt[0], mdct2qmf_tab);
1367
204
      break;
1368
30
    case LONG_STOP_SEQUENCE:
1369
30
      switch (upd_qmf) {
1370
0
        case UPD_QMF_15:
1371
0
          length_const1 = 6;
1372
0
          length_const2 = 7;
1373
0
          length_left = 2;
1374
0
          break;
1375
17
        case UPD_QMF_16:
1376
20
        case UPD_QMF_32:
1377
20
          length_const1 = 7 * (upd_qmf >> 4);
1378
20
          length_const2 = length_const1;
1379
20
          length_left = upd_qmf >> 3;
1380
20
          break;
1381
3
        case UPD_QMF_18:
1382
3
          length_const1 = 8;
1383
3
          length_const2 = length_const1;
1384
3
          length_left = 2;
1385
3
          break;
1386
7
        case UPD_QMF_24:
1387
7
          length_const1 = 11;
1388
7
          length_const2 = length_const1;
1389
7
          length_left = 2;
1390
7
          break;
1391
0
        case UPD_QMF_30:
1392
0
          length_const1 = 14;
1393
0
          length_const2 = length_const1;
1394
0
          length_left = 2;
1395
0
          break;
1396
0
        default:
1397
0
          break;
1398
30
      }
1399
1400
30
      ixheaacd_local_zero(length_const1, &wt[0]);
1401
30
      ixheaacd_local_sin(length_left, 0, length_left, &wt[length_const1], mdct2qmf_tab);
1402
30
      ixheaacd_local_one(length_const2, &wt[length_const1 + length_left]);
1403
30
      ixheaacd_local_sin(upd_qmf, upd_qmf, upd_qmf,
1404
30
                         &wt[length_const1 + length_left + length_const2], mdct2qmf_tab);
1405
30
      length = upd_qmf;
1406
30
      break;
1407
0
    default:
1408
0
      break;
1409
752
  }
1410
1411
752
  ixheaacd_local_freq_win(length, &wf[0], wf_tab);
1412
1413
752
  if ((upd_qmf == UPD_QMF_15) && (window_type == EIGHT_SHORT_SEQUENCE)) {
1414
0
    WORD32 length2 = 3;
1415
1416
0
    ixheaacd_local_sin(length, 0, length, &wt[(length << 1)], mdct2qmf_tab);
1417
0
    ixheaacd_local_one(1, &wt[3 * length]);
1418
0
    ixheaacd_local_sin(length, length, length, &wt[3 * length + 1], mdct2qmf_tab);
1419
0
    ixheaacd_local_zero(1, &wt[(length << 2) + 1]);
1420
1421
0
    ixheaacd_local_freq_win(length2, &wf[(length << 1)], wf_tab);
1422
0
  }
1423
752
  return;
1424
752
}
1425
1426
752
static VOID ixheaacd_get_gain(WORD32 l, WORD32 *gain) {
1427
752
  switch (l) {
1428
119
    case TSX2_4:
1429
119
      *gain = 16384;
1430
119
      break;
1431
1432
0
    case TSX2_6:
1433
0
      *gain = 13377;
1434
0
      break;
1435
1436
85
    case TSX2_8:
1437
85
      *gain = 11585;
1438
85
      break;
1439
1440
0
    case TSX2_30:
1441
0
      *gain = 5982;
1442
0
      break;
1443
1444
151
    case TSX2_32:
1445
151
      *gain = 5792;
1446
151
      break;
1447
1448
50
    case TSX2_36:
1449
50
      *gain = 5461;
1450
50
      break;
1451
1452
203
    case TSX2_48:
1453
203
      *gain = 4729;
1454
203
      break;
1455
1456
24
    case TSX2_60:
1457
24
      *gain = 4230;
1458
24
      break;
1459
1460
120
    case TSX2_64:
1461
120
      *gain = 4096;
1462
120
      break;
1463
1464
0
    default:
1465
0
      break;
1466
752
  }
1467
1468
752
  return;
1469
752
}
1470
1471
VOID ixheaacd_mdct2qmf_process(WORD32 upd_qmf, WORD32 *const mdct_in, WORD32 *qmf_real_pre,
1472
                               WORD32 *qmf_real_post, WORD32 *qmf_imag_pre, WORD32 *qmf_imag_post,
1473
                               WORD32 const window_type, WORD32 qmf_global_offset,
1474
                               ia_mps_dec_mps_tables_struct *ia_mps_dec_mps_table_ptr,
1475
752
                               VOID *scratch, WORD32 time_slots) {
1476
752
  WORD32 i;
1477
752
  WORD32 j;
1478
752
  WORD32 k;
1479
1480
752
  WORD32 l = (upd_qmf << 1);
1481
1482
752
  WORD32 n = 0;
1483
752
  WORD32 *wf;
1484
752
  WORD32 *wt;
1485
1486
752
  WORD32 *v1;
1487
752
  WORD32 *v2;
1488
1489
752
  WORD32 *z1_real;
1490
752
  WORD32 *z1_imag;
1491
1492
752
  WORD32 *twipost_real;
1493
752
  WORD32 *twipost_imag;
1494
1495
752
  WORD32 *mdct_sf, *mdct_sf_ptr;
1496
752
  WORD32 *mdct_p, *mdct_p2;
1497
1498
752
  WORD32 temp_2, temp3, temp4;
1499
1500
752
  WORD32 *p_qmf_real_pre = qmf_real_pre;
1501
752
  WORD32 *p_qmf_real_post = qmf_real_post;
1502
752
  WORD32 *p_qmf_imag_pre = qmf_imag_pre;
1503
752
  WORD32 *p_qmf_imag_post = qmf_imag_post;
1504
1505
752
  VOID *free_scratch;
1506
1507
752
  WORD32 const **wf_tab = ia_mps_dec_mps_table_ptr->wf_tab_ptr->wf;
1508
1509
752
  WORD32 window_offset = 0;
1510
1511
752
  WORD32 mdct_offset = 0;
1512
752
  WORD32 mdct_shift = AAC_SHORT_FRAME_LENGTH;
1513
1514
752
  WORD32 qmf_offset = 0;
1515
752
  WORD32 qmf_shift = 0;
1516
1517
752
  WORD32 n_windows = 0;
1518
1519
752
  WORD32 mdct_length = MDCT_LENGTH_LO;
1520
1521
752
  WORD32 qmf_bands = 64;
1522
752
  const WORD32 *ptr1, *ptr2;
1523
752
  WORD32 is_long;
1524
752
  WORD32 *zr, *zi;
1525
1526
752
  WORD32 *a, *scale;
1527
752
  WORD32 gain = 0;
1528
752
  WORD32 *wp;
1529
752
  WORD64 temp_prod = 0;
1530
1531
752
  wf = scratch;
1532
752
  wt = wf + IXHEAAC_GET_SIZE_ALIGNED_TYPE(MAX_TIMESLOTSX2, sizeof(*wt), BYTE_ALIGN_8);
1533
752
  v1 = wt + IXHEAAC_GET_SIZE_ALIGNED_TYPE(MAX_TIMESLOTSX2, sizeof(*v1), BYTE_ALIGN_8);
1534
752
  v2 = v1 + IXHEAAC_GET_SIZE_ALIGNED_TYPE(MDCT_LENGTH_HI, sizeof(*v2), BYTE_ALIGN_8);
1535
752
  twipost_real =
1536
752
      v2 + IXHEAAC_GET_SIZE_ALIGNED_TYPE(MDCT_LENGTH_HI, sizeof(*twipost_real), BYTE_ALIGN_8);
1537
752
  twipost_imag = twipost_real + IXHEAAC_GET_SIZE_ALIGNED_TYPE(
1538
752
                                    MAX_NUM_QMF_BANDS, sizeof(*twipost_imag), BYTE_ALIGN_8);
1539
752
  mdct_sf = twipost_imag +
1540
752
            IXHEAAC_GET_SIZE_ALIGNED_TYPE(MAX_NUM_QMF_BANDS, sizeof(*mdct_sf), BYTE_ALIGN_8);
1541
752
  z1_real =
1542
752
      mdct_sf + IXHEAAC_GET_SIZE_ALIGNED_TYPE(MDCT_LENGTH_SF, sizeof(*z1_real), BYTE_ALIGN_8);
1543
752
  z1_imag = z1_real + IXHEAAC_GET_SIZE_ALIGNED_TYPE(QBXTSX2, sizeof(*z1_imag), BYTE_ALIGN_8);
1544
752
  a = z1_imag + IXHEAAC_GET_SIZE_ALIGNED_TYPE(QBXTSX2, sizeof(*a), BYTE_ALIGN_8);
1545
752
  free_scratch = (VOID *)((WORD32 *)a + IXHEAAC_GET_SIZE_ALIGNED_TYPE(MAX_NUM_QMF_BANDS,
1546
752
                                                                      sizeof(*a), BYTE_ALIGN_8));
1547
1548
752
  scale = a;
1549
1550
752
  ixheaacd_local_mdct_win(upd_qmf, window_type, wf, wf_tab, wt,
1551
752
                          ia_mps_dec_mps_table_ptr->mdct2qmf_table_ptr);
1552
1553
752
  switch (window_type) {
1554
415
    case ONLY_LONG_SEQUENCE:
1555
518
    case LONG_START_SEQUENCE:
1556
548
    case LONG_STOP_SEQUENCE:
1557
1558
548
      n = upd_qmf * qmf_bands - MDCT_LENGTH_LO;
1559
1560
548
      if (n > 0) {
1561
397
        ixheaacd_local_zero(n, &mdct_in[MDCT_LENGTH_LO]);
1562
397
      }
1563
548
      mdct_length += n;
1564
1565
548
      ixheaacd_local_fold_out(mdct_in, mdct_length, wf, l, v1, v2);
1566
1567
548
      wp = wt;
1568
1569
548
      ixheaacd_get_gain(l, &gain);
1570
1571
26.0k
      for (k = 0; k < l; k++) {
1572
25.4k
        *scale++ = ixheaacd_mps_mult32_shr_15(gain, *wp);
1573
25.4k
        wp++;
1574
25.4k
      }
1575
548
      ixheaacd_local_hybcmdct2qmf(v1, v2, a, l, z1_real, z1_imag,
1576
548
                                  ia_mps_dec_mps_table_ptr->mdct2qmfcos_tab_ptr, free_scratch, 1);
1577
1578
548
      ptr1 = ia_mps_dec_mps_table_ptr->mdct2qmf_table_ptr->twi_post_cos;
1579
548
      ptr2 = ia_mps_dec_mps_table_ptr->mdct2qmf_table_ptr->twi_post_sin;
1580
1581
548
      if (qmf_global_offset < time_slots) {
1582
548
        if (qmf_global_offset + l < time_slots) {
1583
0
          for (i = 0; i < qmf_bands; i++) {
1584
0
            WORD32 cos_twi = *ptr1++;
1585
0
            WORD32 sin_twi = *ptr2++;
1586
0
            for (j = 0; j < l; j++) {
1587
0
              temp3 = *z1_real++;
1588
0
              temp4 = *z1_imag++;
1589
1590
0
              temp_2 = j + qmf_global_offset;
1591
0
              temp_prod = (WORD64)(p_qmf_real_pre[temp_2]);
1592
0
              temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp3);
1593
0
              temp_prod = ixheaac_mac32x32in64(temp_prod, -sin_twi, temp4);
1594
0
              p_qmf_real_pre[temp_2] = ixheaac_sat64_32(temp_prod);
1595
0
              temp_prod = (WORD64)(p_qmf_imag_pre[temp_2]);
1596
0
              temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp4);
1597
0
              temp_prod = ixheaac_mac32x32in64(temp_prod, sin_twi, temp3);
1598
0
              p_qmf_imag_pre[temp_2] = ixheaac_sat64_32(temp_prod);
1599
0
            }
1600
0
            p_qmf_real_pre += MAX_TIME_SLOTS;
1601
0
            p_qmf_imag_pre += MAX_TIME_SLOTS;
1602
0
          }
1603
548
        } else {
1604
35.6k
          for (i = 0; i < qmf_bands; i++) {
1605
35.0k
            WORD32 cos_twi = *ptr1++;
1606
35.0k
            WORD32 sin_twi = *ptr2++;
1607
1.66M
            for (j = 0; j < l; j++) {
1608
1.63M
              temp3 = *z1_real++;
1609
1.63M
              temp4 = *z1_imag++;
1610
1611
1.63M
              temp_2 = j + qmf_global_offset;
1612
1.63M
              if (temp_2 < time_slots) {
1613
880k
                temp_prod = (WORD64)(p_qmf_real_pre[temp_2]);
1614
880k
                temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp3);
1615
880k
                temp_prod = ixheaac_mac32x32in64(temp_prod, -sin_twi, temp4);
1616
880k
                p_qmf_real_pre[temp_2] = ixheaac_sat64_32(temp_prod);
1617
880k
                temp_prod = (WORD64)(p_qmf_imag_pre[temp_2]);
1618
880k
                temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp4);
1619
880k
                temp_prod = ixheaac_mac32x32in64(temp_prod, sin_twi, temp3);
1620
880k
                p_qmf_imag_pre[temp_2] = ixheaac_sat64_32(temp_prod);
1621
880k
              } else {
1622
750k
                temp_prod = (WORD64)(p_qmf_real_post[temp_2 - time_slots]);
1623
750k
                temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp3);
1624
750k
                temp_prod = ixheaac_mac32x32in64(temp_prod, -sin_twi, temp4);
1625
750k
                p_qmf_real_post[temp_2 - time_slots] = ixheaac_sat64_32(temp_prod);
1626
750k
                temp_prod = (WORD64)(p_qmf_imag_post[temp_2 - time_slots]);
1627
750k
                temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp4);
1628
750k
                temp_prod = ixheaac_mac32x32in64(temp_prod, sin_twi, temp3);
1629
750k
                p_qmf_imag_post[temp_2 - time_slots] = ixheaac_sat64_32(temp_prod);
1630
750k
              }
1631
1.63M
            }
1632
35.0k
            p_qmf_real_pre += MAX_TIME_SLOTS;
1633
35.0k
            p_qmf_real_post += MAX_TIME_SLOTS;
1634
1635
35.0k
            p_qmf_imag_pre += MAX_TIME_SLOTS;
1636
35.0k
            p_qmf_imag_post += MAX_TIME_SLOTS;
1637
35.0k
          }
1638
548
        }
1639
548
      } else {
1640
0
        for (i = 0; i < qmf_bands; i++) {
1641
0
          WORD32 cos_twi = *ptr1++;
1642
0
          WORD32 sin_twi = *ptr2++;
1643
0
          for (j = 0; j < l; j++) {
1644
0
            temp3 = *z1_real++;
1645
0
            temp4 = *z1_imag++;
1646
1647
0
            temp_2 = j + qmf_global_offset;
1648
1649
0
            temp_prod = (WORD64)(p_qmf_real_post[temp_2 - time_slots]);
1650
0
            temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp3);
1651
0
            temp_prod = ixheaac_mac32x32in64(temp_prod, -sin_twi, temp4);
1652
0
            p_qmf_real_post[temp_2 - time_slots] = ixheaac_sat64_32(temp_prod);
1653
0
            temp_prod = (WORD64)(p_qmf_imag_post[temp_2 - time_slots]);
1654
0
            temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp4);
1655
0
            temp_prod = ixheaac_mac32x32in64(temp_prod, sin_twi, temp3);
1656
0
            p_qmf_imag_post[temp_2 - time_slots] = ixheaac_sat64_32(temp_prod);
1657
0
          }
1658
0
          p_qmf_real_post += MAX_TIME_SLOTS;
1659
0
          p_qmf_imag_post += MAX_TIME_SLOTS;
1660
0
        }
1661
0
      }
1662
548
      break;
1663
204
    case EIGHT_SHORT_SEQUENCE:
1664
1665
204
      switch (upd_qmf) {
1666
0
        case UPD_QMF_15:
1667
0
          l = 4;
1668
0
          mdct_length = AAC_SHORT_FRAME_LENGTH;
1669
0
          qmf_offset = 6;
1670
0
          qmf_shift = 2;
1671
0
          n_windows = 7;
1672
0
          break;
1673
102
        case UPD_QMF_16:
1674
187
        case UPD_QMF_32:
1675
187
          n = (upd_qmf - UPD_QMF_16) * 8;
1676
187
          mdct_length = AAC_SHORT_FRAME_LENGTH + n;
1677
187
          l = 2 * (upd_qmf >> 3);
1678
187
          qmf_offset = 7 * upd_qmf >> 4;
1679
187
          qmf_shift = upd_qmf >> 3;
1680
187
          n_windows = 8;
1681
187
          break;
1682
6
        case UPD_QMF_18:
1683
6
          l = 4;
1684
6
          mdct_length = AAC_SHORT_FRAME_LENGTH;
1685
6
          qmf_offset = 8;
1686
6
          qmf_shift = 2;
1687
6
          n_windows = 9;
1688
6
          break;
1689
11
        case UPD_QMF_24:
1690
11
          l = 4;
1691
11
          mdct_length = AAC_SHORT_FRAME_LENGTH;
1692
11
          qmf_offset = 11;
1693
11
          qmf_shift = 2;
1694
11
          n_windows = 12;
1695
11
          break;
1696
0
        case UPD_QMF_30:
1697
0
          l = 4;
1698
0
          mdct_length = AAC_SHORT_FRAME_LENGTH;
1699
0
          qmf_offset = 14;
1700
0
          qmf_shift = 2;
1701
0
          n_windows = 15;
1702
0
          break;
1703
0
        default:
1704
0
          l = 4;
1705
0
          mdct_length = AAC_SHORT_FRAME_LENGTH;
1706
0
          qmf_offset = 6;
1707
0
          qmf_shift = 2;
1708
0
          n_windows = 7;
1709
0
          break;
1710
204
      }
1711
1712
204
      wp = wt;
1713
204
      ixheaacd_get_gain(l, &gain);
1714
1715
1.36k
      for (k = 0; k < l; k++) {
1716
1.15k
        *scale++ = ixheaacd_mps_mult32_shr_15(gain, *wp);
1717
1.15k
        wp++;
1718
1.15k
      }
1719
1720
1.88k
      for (k = 0; k < n_windows; k++) {
1721
1.68k
        is_long = 0;
1722
1.68k
        mdct_sf_ptr = mdct_sf;
1723
1.68k
        switch (upd_qmf) {
1724
816
          case UPD_QMF_16:
1725
1.49k
          case UPD_QMF_32:
1726
1.49k
            mdct_p = mdct_in + mdct_offset;
1727
192k
            for (i = 0; i < AAC_SHORT_FRAME_LENGTH; i++) {
1728
191k
              *mdct_sf_ptr++ = *mdct_p++;
1729
191k
            }
1730
1731
1.49k
            ixheaacd_local_zero(n, &mdct_sf[AAC_SHORT_FRAME_LENGTH]);
1732
1.49k
            break;
1733
0
          case UPD_QMF_15:
1734
0
            if (k < n_windows - 1) {
1735
0
              mdct_p = mdct_in + mdct_offset;
1736
0
              for (i = 0; i < AAC_SHORT_FRAME_LENGTH; i++) {
1737
0
                *mdct_sf_ptr++ = *mdct_p++;
1738
0
              }
1739
0
            } else {
1740
0
              window_offset = l;
1741
0
              l = 6;
1742
0
              mdct_length = 192;
1743
0
              is_long = 4;
1744
0
              gain = 13377;
1745
0
              scale = a;
1746
0
              wp = wt + window_offset;
1747
1748
0
              for (k = 0; k < l; k++) {
1749
0
                *scale++ = ixheaacd_mps_mult32_shr_15(gain, *wp);
1750
0
                wp++;
1751
0
              }
1752
1753
0
              mdct_p = mdct_in + mdct_offset;
1754
0
              mdct_p2 = mdct_in + mdct_offset + AAC_SHORT_FRAME_LENGTH;
1755
1756
0
              for (i = 0, j = 0; i < mdct_length / 2; i++) {
1757
0
                *mdct_sf_ptr++ = *mdct_p++;
1758
0
                *mdct_sf_ptr++ = *mdct_p2++;
1759
0
              }
1760
0
            }
1761
0
            break;
1762
54
          case UPD_QMF_18:
1763
186
          case UPD_QMF_24:
1764
186
          case UPD_QMF_30:
1765
1766
186
            mdct_p = mdct_in + mdct_offset;
1767
23.9k
            for (i = 0; i < AAC_SHORT_FRAME_LENGTH; i++) {
1768
23.8k
              *mdct_sf_ptr++ = *mdct_p++;
1769
23.8k
            }
1770
186
            break;
1771
0
          default:
1772
0
            break;
1773
1.68k
        }
1774
1.68k
        ixheaacd_local_fold_out(mdct_sf, mdct_length, &wf[window_offset], l, v1, v2);
1775
1776
1.68k
        ixheaacd_local_hybcmdct2qmf(v1, v2, a, l, z1_real, z1_imag,
1777
1.68k
                                    ia_mps_dec_mps_table_ptr->mdct2qmfcos_tab_ptr, free_scratch,
1778
1.68k
                                    is_long);
1779
1780
1.68k
        zr = z1_real;
1781
1.68k
        zi = z1_imag;
1782
1783
1.68k
        ptr1 = ia_mps_dec_mps_table_ptr->mdct2qmf_table_ptr->twi_post_cos;
1784
1.68k
        ptr2 = ia_mps_dec_mps_table_ptr->mdct2qmf_table_ptr->twi_post_sin;
1785
1.68k
        temp_2 = qmf_offset + qmf_global_offset;
1786
1787
1.68k
        if (temp_2 < time_slots) {
1788
1.05k
          if ((temp_2 + l) < time_slots) {
1789
647
            p_qmf_real_pre = qmf_real_pre;
1790
647
            p_qmf_imag_pre = qmf_imag_pre;
1791
1792
42.0k
            for (i = 0; i < qmf_bands; i++) {
1793
41.4k
              WORD32 cos_twi = *ptr1++;
1794
41.4k
              WORD32 sin_twi = *ptr2++;
1795
1796
272k
              for (j = 0; j < l; j++) {
1797
230k
                temp3 = *zr++;
1798
230k
                temp4 = (*zi++);
1799
1800
230k
                temp_prod = (WORD64)(p_qmf_real_pre[temp_2 + j]);
1801
230k
                temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp3);
1802
230k
                temp_prod = ixheaac_mac32x32in64(temp_prod, -sin_twi, temp4);
1803
230k
                p_qmf_real_pre[temp_2 + j] = ixheaac_sat64_32(temp_prod);
1804
230k
                temp_prod = (WORD64)(p_qmf_imag_pre[temp_2 + j]);
1805
230k
                temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp4);
1806
230k
                temp_prod = ixheaac_mac32x32in64(temp_prod, sin_twi, temp3);
1807
230k
                p_qmf_imag_pre[temp_2 + j] = ixheaac_sat64_32(temp_prod);
1808
230k
              }
1809
41.4k
              p_qmf_real_pre += MAX_TIME_SLOTS;
1810
41.4k
              p_qmf_imag_pre += MAX_TIME_SLOTS;
1811
41.4k
            }
1812
647
          } else {
1813
404
            p_qmf_real_pre = qmf_real_pre;
1814
404
            p_qmf_real_post = qmf_real_post;
1815
404
            p_qmf_imag_pre = qmf_imag_pre;
1816
404
            p_qmf_imag_post = qmf_imag_post;
1817
1818
26.2k
            for (i = 0; i < qmf_bands; i++) {
1819
25.8k
              WORD32 cos_twi = *ptr1++;
1820
25.8k
              WORD32 sin_twi = *ptr2++;
1821
1822
172k
              for (j = 0; j < l; j++) {
1823
146k
                temp3 = *zr++;
1824
146k
                temp4 = (*zi++);
1825
1826
146k
                if ((temp_2 + j) < time_slots) {
1827
74.1k
                  temp_prod = (WORD64)(p_qmf_real_pre[temp_2 + j]);
1828
74.1k
                  temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp3);
1829
74.1k
                  temp_prod = ixheaac_mac32x32in64(temp_prod, -sin_twi, temp4);
1830
74.1k
                  p_qmf_real_pre[temp_2 + j] = ixheaac_sat64_32(temp_prod);
1831
74.1k
                  temp_prod = (WORD64)(p_qmf_imag_pre[temp_2 + j]);
1832
74.1k
                  temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp4);
1833
74.1k
                  temp_prod = ixheaac_mac32x32in64(temp_prod, sin_twi, temp3);
1834
74.1k
                  p_qmf_imag_pre[temp_2 + j] = ixheaac_sat64_32(temp_prod);
1835
74.1k
                } else {
1836
72.8k
                  temp_prod = (WORD64)(p_qmf_real_post[temp_2 + j - time_slots]);
1837
72.8k
                  temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp3);
1838
72.8k
                  temp_prod = ixheaac_mac32x32in64(temp_prod, -sin_twi, temp4);
1839
72.8k
                  p_qmf_real_post[temp_2 + j - time_slots] = ixheaac_sat64_32(temp_prod);
1840
72.8k
                  temp_prod = (WORD64)(p_qmf_imag_post[temp_2 + j - time_slots]);
1841
72.8k
                  temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp4);
1842
72.8k
                  temp_prod = ixheaac_mac32x32in64(temp_prod, sin_twi, temp3);
1843
72.8k
                  p_qmf_imag_post[temp_2 + j - time_slots] = ixheaac_sat64_32(temp_prod);
1844
72.8k
                }
1845
146k
              }
1846
25.8k
              p_qmf_real_pre += MAX_TIME_SLOTS;
1847
25.8k
              p_qmf_imag_pre += MAX_TIME_SLOTS;
1848
1849
25.8k
              p_qmf_real_post += MAX_TIME_SLOTS;
1850
25.8k
              p_qmf_imag_post += MAX_TIME_SLOTS;
1851
25.8k
            }
1852
404
          }
1853
1.05k
        } else {
1854
631
          p_qmf_real_post = qmf_real_post;
1855
631
          p_qmf_imag_post = qmf_imag_post;
1856
1857
41.0k
          for (i = 0; i < qmf_bands; i++) {
1858
40.3k
            WORD32 cos_twi = *ptr1++;
1859
40.3k
            WORD32 sin_twi = *ptr2++;
1860
1861
267k
            for (j = 0; j < l; j++) {
1862
226k
              temp3 = *zr++;
1863
226k
              temp4 = (*zi++);
1864
226k
              {
1865
226k
                temp_prod = (WORD64)(p_qmf_real_post[temp_2 + j - time_slots]);
1866
226k
                temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp3);
1867
226k
                temp_prod = ixheaac_mac32x32in64(temp_prod, -sin_twi, temp4);
1868
226k
                p_qmf_real_post[temp_2 + j - time_slots] = ixheaac_sat64_32(temp_prod);
1869
226k
                temp_prod = (WORD64)(p_qmf_imag_post[temp_2 + j - time_slots]);
1870
226k
                temp_prod = ixheaac_mac32x32in64(temp_prod, cos_twi, temp4);
1871
226k
                temp_prod = ixheaac_mac32x32in64(temp_prod, sin_twi, temp3);
1872
226k
                p_qmf_imag_post[temp_2 + j - time_slots] = ixheaac_sat64_32(temp_prod);
1873
226k
              }
1874
226k
            }
1875
40.3k
            p_qmf_real_post += MAX_TIME_SLOTS;
1876
40.3k
            p_qmf_imag_post += MAX_TIME_SLOTS;
1877
40.3k
          }
1878
631
        }
1879
1880
1.68k
        mdct_offset += mdct_shift;
1881
1.68k
        qmf_offset += qmf_shift;
1882
1.68k
      }
1883
204
      break;
1884
204
    default:
1885
0
      break;
1886
752
  }
1887
752
  return;
1888
752
}