Coverage Report

Created: 2026-09-01 06:32

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