Coverage Report

Created: 2026-03-31 06:52

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