annotate libfaad2/structs.h @ 10730:67449e5936f3

fix 10l (computation based on uninitialized data which led to incorrect field matching) and greatly improve selection logic. the pullup core should be very accurate now, so try throwing tough samples at it and report any failures! :)
author rfelker
date Sun, 31 Aug 2003 17:46:32 +0000
parents e989150f8216
children 3185f64f6350
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
1 /*
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
3 ** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
4 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
5 ** This program is free software; you can redistribute it and/or modify
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
6 ** it under the terms of the GNU General Public License as published by
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
7 ** the Free Software Foundation; either version 2 of the License, or
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
8 ** (at your option) any later version.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
9 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
10 ** This program is distributed in the hope that it will be useful,
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
13 ** GNU General Public License for more details.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
14 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
15 ** You should have received a copy of the GNU General Public License
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
16 ** along with this program; if not, write to the Free Software
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
18 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
19 ** Any non-GPL usage of this software or parts of this software is strictly
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
20 ** forbidden.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
21 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
22 ** Commercial non-GPL licensing of this software is possible.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
24 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
25 ** $Id: structs.h,v 1.10 2003/07/29 08:20:14 menno Exp $
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
26 **/
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
27
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
28 #ifndef __STRUCTS_H__
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
29 #define __STRUCTS_H__
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
30
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
31 #ifdef __cplusplus
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
32 extern "C" {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
33 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
34
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
35 #ifdef SBR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
36 #include "sbr_dec.h"
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
37 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
38
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
39 #define MAX_CHANNELS 64
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
40 #define MAX_SYNTAX_ELEMENTS 48
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
41 #define MAX_WINDOW_GROUPS 8
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
42 #define MAX_SFB 51
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
43 #define MAX_LTP_SFB 40
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
44 #define MAX_LTP_SFB_S 8
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
45
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
46 /* used to save the prediction state */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
47 typedef struct {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
48 real_t r[2];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
49 real_t KOR[2];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
50 real_t VAR[2];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
51 } pred_state;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
52
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
53 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
54 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
55 uint16_t n;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
56 uint16_t ifac[15];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
57 complex_t *work;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
58 complex_t *tab;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
59 } cfft_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
60
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
61 typedef struct {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
62 uint16_t N;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
63 cfft_info *cfft;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
64 complex_t *sincos;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
65 complex_t *Z1;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
66 } mdct_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
67
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
68 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
69 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
70 real_t *long_window[2];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
71 real_t *short_window[2];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
72 #ifdef LD_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
73 real_t *ld_window[2];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
74 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
75
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
76 mdct_info *mdct256;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
77 #ifdef LD_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
78 mdct_info *mdct1024;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
79 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
80 mdct_info *mdct2048;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
81 } fb_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
82
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
83 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
84 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
85 uint8_t present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
86
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
87 uint8_t num_bands;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
88 uint8_t pce_instance_tag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
89 uint8_t excluded_chns_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
90 uint8_t band_top[17];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
91 uint8_t prog_ref_level;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
92 uint8_t dyn_rng_sgn[17];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
93 uint8_t dyn_rng_ctl[17];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
94 uint8_t exclude_mask[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
95 uint8_t additional_excluded_chns[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
96
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
97 real_t ctrl1;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
98 real_t ctrl2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
99 } drc_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
100
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
101 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
102 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
103 uint8_t element_instance_tag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
104 uint8_t object_type;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
105 uint8_t sf_index;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
106 uint8_t num_front_channel_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
107 uint8_t num_side_channel_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
108 uint8_t num_back_channel_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
109 uint8_t num_lfe_channel_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
110 uint8_t num_assoc_data_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
111 uint8_t num_valid_cc_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
112 uint8_t mono_mixdown_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
113 uint8_t mono_mixdown_element_number;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
114 uint8_t stereo_mixdown_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
115 uint8_t stereo_mixdown_element_number;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
116 uint8_t matrix_mixdown_idx_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
117 uint8_t pseudo_surround_enable;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
118 uint8_t matrix_mixdown_idx;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
119 uint8_t front_element_is_cpe[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
120 uint8_t front_element_tag_select[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
121 uint8_t side_element_is_cpe[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
122 uint8_t side_element_tag_select[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
123 uint8_t back_element_is_cpe[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
124 uint8_t back_element_tag_select[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
125 uint8_t lfe_element_tag_select[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
126 uint8_t assoc_data_element_tag_select[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
127 uint8_t cc_element_is_ind_sw[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
128 uint8_t valid_cc_element_tag_select[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
129
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
130 uint8_t channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
131
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
132 uint8_t comment_field_bytes;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
133 uint8_t comment_field_data[257];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
134
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
135 /* extra added values */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
136 uint8_t num_front_channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
137 uint8_t num_side_channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
138 uint8_t num_back_channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
139 uint8_t num_lfe_channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
140 uint8_t sce_channel[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
141 uint8_t cpe_channel[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
142 } program_config;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
143
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
144 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
145 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
146 uint16_t syncword;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
147 uint8_t id;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
148 uint8_t layer;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
149 uint8_t protection_absent;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
150 uint8_t profile;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
151 uint8_t sf_index;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
152 uint8_t private_bit;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
153 uint8_t channel_configuration;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
154 uint8_t original;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
155 uint8_t home;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
156 uint8_t emphasis;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
157 uint8_t copyright_identification_bit;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
158 uint8_t copyright_identification_start;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
159 uint16_t aac_frame_length;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
160 uint16_t adts_buffer_fullness;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
161 uint8_t no_raw_data_blocks_in_frame;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
162 uint16_t crc_check;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
163 } adts_header;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
164
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
165 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
166 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
167 uint8_t copyright_id_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
168 int8_t copyright_id[10];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
169 uint8_t original_copy;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
170 uint8_t home;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
171 uint8_t bitstream_type;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
172 uint32_t bitrate;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
173 uint8_t num_program_config_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
174 uint32_t adif_buffer_fullness;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
175
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
176 /* maximum of 16 PCEs */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
177 program_config pce[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
178 } adif_header;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
179
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
180 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
181 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
182 uint8_t last_band;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
183 uint8_t data_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
184 uint16_t lag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
185 uint8_t lag_update;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
186 uint8_t coef;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
187 uint8_t long_used[MAX_SFB];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
188 uint8_t short_used[8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
189 uint8_t short_lag_present[8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
190 uint8_t short_lag[8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
191 } ltp_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
192
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
193 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
194 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
195 uint8_t limit;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
196 uint8_t predictor_reset;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
197 uint8_t predictor_reset_group_number;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
198 uint8_t prediction_used[MAX_SFB];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
199 } pred_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
200
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
201 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
202 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
203 uint8_t number_pulse;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
204 uint8_t pulse_start_sfb;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
205 uint8_t pulse_offset[4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
206 uint8_t pulse_amp[4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
207 } pulse_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
208
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
209 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
210 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
211 uint8_t n_filt[8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
212 uint8_t coef_res[8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
213 uint8_t length[8][4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
214 uint8_t order[8][4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
215 uint8_t direction[8][4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
216 uint8_t coef_compress[8][4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
217 uint8_t coef[8][4][32];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
218 } tns_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
219
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
220 #ifdef SSR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
221 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
222 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
223 uint8_t max_band;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
224
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
225 uint8_t adjust_num[4][8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
226 uint8_t alevcode[4][8][8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
227 uint8_t aloccode[4][8][8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
228 } ssr_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
229 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
230
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
231 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
232 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
233 uint8_t max_sfb;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
234
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
235 uint8_t num_swb;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
236 uint8_t num_window_groups;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
237 uint8_t num_windows;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
238 uint8_t window_sequence;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
239 uint8_t window_group_length[8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
240 uint8_t window_shape;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
241 uint8_t scale_factor_grouping;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
242 uint16_t sect_sfb_offset[8][15*8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
243 uint16_t swb_offset[52];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
244
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
245 uint8_t sect_cb[8][15*8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
246 uint16_t sect_start[8][15*8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
247 uint16_t sect_end[8][15*8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
248 uint8_t sfb_cb[8][8*15];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
249 uint8_t num_sec[8]; /* number of sections in a group */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
250
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
251 uint8_t global_gain;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
252 int16_t scale_factors[8][51];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
253
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
254 uint8_t ms_mask_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
255 uint8_t ms_used[MAX_WINDOW_GROUPS][MAX_SFB];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
256
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
257 uint8_t noise_used;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
258
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
259 uint8_t pulse_data_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
260 uint8_t tns_data_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
261 uint8_t gain_control_data_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
262 uint8_t predictor_data_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
263
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
264 pulse_info pul;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
265 tns_info tns;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
266 pred_info pred;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
267 ltp_info ltp;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
268 ltp_info ltp2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
269 #ifdef SSR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
270 ssr_info ssr;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
271 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
272
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
273 #ifdef ERROR_RESILIENCE
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
274 /* ER HCR data */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
275 uint16_t length_of_reordered_spectral_data;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
276 uint8_t length_of_longest_codeword;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
277 /* ER RLVC data */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
278 uint8_t sf_concealment;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
279 uint8_t rev_global_gain;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
280 uint16_t length_of_rvlc_sf;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
281 uint16_t dpcm_noise_nrg;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
282 uint8_t sf_escapes_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
283 uint8_t length_of_rvlc_escapes;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
284 uint16_t dpcm_noise_last_position;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
285 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
286 } ic_stream; /* individual channel stream */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
287
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
288 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
289 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
290 uint8_t ele_id;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
291
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
292 uint8_t channel;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
293 int16_t paired_channel;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
294
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
295 uint8_t element_instance_tag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
296 uint8_t common_window;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
297
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
298 ic_stream ics1;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
299 ic_stream ics2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
300 } element; /* syntax element (SCE, CPE, LFE) */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
301
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
302 typedef struct mp4AudioSpecificConfig
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
303 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
304 /* Audio Specific Info */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
305 uint8_t objectTypeIndex;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
306 uint8_t samplingFrequencyIndex;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
307 uint32_t samplingFrequency;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
308 uint8_t channelsConfiguration;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
309
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
310 /* GA Specific Info */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
311 uint8_t frameLengthFlag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
312 uint8_t dependsOnCoreCoder;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
313 uint16_t coreCoderDelay;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
314 uint8_t extensionFlag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
315 uint8_t aacSectionDataResilienceFlag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
316 uint8_t aacScalefactorDataResilienceFlag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
317 uint8_t aacSpectralDataResilienceFlag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
318 uint8_t epConfig;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
319
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
320 int8_t sbr_present_flag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
321 } mp4AudioSpecificConfig;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
322
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
323 typedef struct faacDecConfiguration
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
324 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
325 uint8_t defObjectType;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
326 uint32_t defSampleRate;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
327 uint8_t outputFormat;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
328 uint8_t downMatrix;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
329 } faacDecConfiguration, *faacDecConfigurationPtr;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
330
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
331 typedef struct faacDecFrameInfo
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
332 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
333 uint32_t bytesconsumed;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
334 uint32_t samples;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
335 uint8_t channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
336 uint8_t error;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
337 uint32_t samplerate;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
338
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
339 /* multichannel configuration */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
340 uint8_t num_front_channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
341 uint8_t num_side_channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
342 uint8_t num_back_channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
343 uint8_t num_lfe_channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
344 uint8_t channel_position[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
345 } faacDecFrameInfo;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
346
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
347 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
348 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
349 uint8_t adts_header_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
350 uint8_t adif_header_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
351 uint8_t sf_index;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
352 uint8_t object_type;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
353 uint8_t channelConfiguration;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
354 #ifdef ERROR_RESILIENCE
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
355 uint8_t aacSectionDataResilienceFlag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
356 uint8_t aacScalefactorDataResilienceFlag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
357 uint8_t aacSpectralDataResilienceFlag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
358 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
359 uint16_t frameLength;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
360 uint16_t samplesLeft;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
361 uint8_t postSeekResetFlag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
362
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
363 uint32_t frame;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
364
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
365 uint8_t downMatrix;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
366 uint8_t first_syn_ele;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
367 uint8_t last_syn_ele;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
368 uint8_t has_lfe;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
369 uint8_t fr_channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
370 uint8_t fr_ch_ele;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
371
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
372 void *sample_buffer;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
373
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
374 uint8_t window_shape_prev[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
375 #ifdef LTP_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
376 uint16_t ltp_lag[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
377 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
378 fb_info *fb;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
379 drc_info *drc;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
380
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
381 real_t *time_out[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
382
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
383 #ifdef SBR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
384 int8_t sbr_present_flag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
385
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
386 real_t *time_out2[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
387
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
388 uint8_t sbr_used[32];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
389
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
390 sbr_info *sbr[32];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
391 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
392
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
393 #ifdef SSR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
394 real_t *ssr_overlap[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
395 real_t *prev_fmd[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
396 real_t ipqf_buffer[MAX_CHANNELS][4][96/4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
397 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
398
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
399 #ifdef MAIN_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
400 pred_state *pred_stat[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
401 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
402 #ifdef LTP_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
403 real_t *lt_pred_stat[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
404 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
405
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
406 #ifndef FIXED_POINT
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
407 #if POW_TABLE_SIZE
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
408 real_t *pow2_table;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
409 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
410 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
411
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
412 /* Program Config Element */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
413 uint8_t pce_set;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
414 program_config pce;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
415 uint8_t channel_element[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
416 uint8_t internal_channel[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
417
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
418 /* Configuration data */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
419 faacDecConfiguration config;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
420 } faacDecStruct, *faacDecHandle;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
421
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
422
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
423
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
424 #ifdef __cplusplus
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
425 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
426 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
427 #endif