Mercurial > mplayer.hg
annotate libfaad2/structs.h @ 22809:09f97d0161ba
Handle X-QT extradata in a slightly more correct way
| author | cehoyos |
|---|---|
| date | Mon, 26 Mar 2007 09:35:03 +0000 |
| parents | 59b6fa5b4201 |
| children | 69a4d646e55d |
| rev | line source |
|---|---|
| 10725 | 1 /* |
| 2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding | |
| 12527 | 3 ** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com |
|
14729
b4378a6f87a6
Sync missing cosmetics from the 2004-07-12 CVS snapshot.
diego
parents:
14727
diff
changeset
|
4 ** |
| 10725 | 5 ** This program is free software; you can redistribute it and/or modify |
| 6 ** it under the terms of the GNU General Public License as published by | |
| 7 ** the Free Software Foundation; either version 2 of the License, or | |
| 8 ** (at your option) any later version. | |
|
14729
b4378a6f87a6
Sync missing cosmetics from the 2004-07-12 CVS snapshot.
diego
parents:
14727
diff
changeset
|
9 ** |
| 10725 | 10 ** This program is distributed in the hope that it will be useful, |
| 11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 13 ** GNU General Public License for more details. | |
|
14729
b4378a6f87a6
Sync missing cosmetics from the 2004-07-12 CVS snapshot.
diego
parents:
14727
diff
changeset
|
14 ** |
| 10725 | 15 ** You should have received a copy of the GNU General Public License |
|
14729
b4378a6f87a6
Sync missing cosmetics from the 2004-07-12 CVS snapshot.
diego
parents:
14727
diff
changeset
|
16 ** along with this program; if not, write to the Free Software |
| 10725 | 17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
| 18 ** | |
| 19 ** Any non-GPL usage of this software or parts of this software is strictly | |
| 20 ** forbidden. | |
| 21 ** | |
| 22 ** Commercial non-GPL licensing of this software is possible. | |
| 23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. | |
| 24 ** | |
| 18141 | 25 ** $Id: structs.h,v 1.42 2004/09/08 09:43:11 gcp Exp $ |
| 10725 | 26 **/ |
| 27 | |
| 28 #ifndef __STRUCTS_H__ | |
| 29 #define __STRUCTS_H__ | |
| 30 | |
| 31 #ifdef __cplusplus | |
| 32 extern "C" { | |
| 33 #endif | |
| 34 | |
| 12527 | 35 #include "cfft.h" |
| 10725 | 36 #ifdef SBR_DEC |
| 37 #include "sbr_dec.h" | |
| 38 #endif | |
| 39 | |
| 40 #define MAX_CHANNELS 64 | |
| 41 #define MAX_SYNTAX_ELEMENTS 48 | |
| 42 #define MAX_WINDOW_GROUPS 8 | |
| 43 #define MAX_SFB 51 | |
| 44 #define MAX_LTP_SFB 40 | |
| 45 #define MAX_LTP_SFB_S 8 | |
| 46 | |
| 47 /* used to save the prediction state */ | |
| 48 typedef struct { | |
| 12527 | 49 int16_t r[2]; |
| 50 int16_t COR[2]; | |
| 51 int16_t VAR[2]; | |
| 10725 | 52 } pred_state; |
| 53 | |
| 54 typedef struct { | |
| 55 uint16_t N; | |
| 56 cfft_info *cfft; | |
| 57 complex_t *sincos; | |
| 12527 | 58 #ifdef PROFILE |
| 59 int64_t cycles; | |
| 60 int64_t fft_cycles; | |
| 61 #endif | |
| 10725 | 62 } mdct_info; |
| 63 | |
| 64 typedef struct | |
| 65 { | |
| 12527 | 66 const real_t *long_window[2]; |
| 67 const real_t *short_window[2]; | |
| 10725 | 68 #ifdef LD_DEC |
| 12527 | 69 const real_t *ld_window[2]; |
| 10725 | 70 #endif |
| 71 | |
| 72 mdct_info *mdct256; | |
| 73 #ifdef LD_DEC | |
| 74 mdct_info *mdct1024; | |
| 75 #endif | |
| 76 mdct_info *mdct2048; | |
| 12527 | 77 #ifdef PROFILE |
| 78 int64_t cycles; | |
| 79 #endif | |
| 10725 | 80 } fb_info; |
| 81 | |
| 82 typedef struct | |
| 83 { | |
| 84 uint8_t present; | |
| 85 | |
| 86 uint8_t num_bands; | |
| 87 uint8_t pce_instance_tag; | |
| 88 uint8_t excluded_chns_present; | |
| 89 uint8_t band_top[17]; | |
| 90 uint8_t prog_ref_level; | |
| 91 uint8_t dyn_rng_sgn[17]; | |
| 92 uint8_t dyn_rng_ctl[17]; | |
| 93 uint8_t exclude_mask[MAX_CHANNELS]; | |
| 94 uint8_t additional_excluded_chns[MAX_CHANNELS]; | |
| 95 | |
| 96 real_t ctrl1; | |
| 97 real_t ctrl2; | |
| 98 } drc_info; | |
| 99 | |
| 100 typedef struct | |
| 101 { | |
| 102 uint8_t element_instance_tag; | |
| 103 uint8_t object_type; | |
| 104 uint8_t sf_index; | |
| 105 uint8_t num_front_channel_elements; | |
| 106 uint8_t num_side_channel_elements; | |
| 107 uint8_t num_back_channel_elements; | |
| 108 uint8_t num_lfe_channel_elements; | |
| 109 uint8_t num_assoc_data_elements; | |
| 110 uint8_t num_valid_cc_elements; | |
| 111 uint8_t mono_mixdown_present; | |
| 112 uint8_t mono_mixdown_element_number; | |
| 113 uint8_t stereo_mixdown_present; | |
| 114 uint8_t stereo_mixdown_element_number; | |
| 115 uint8_t matrix_mixdown_idx_present; | |
| 116 uint8_t pseudo_surround_enable; | |
| 117 uint8_t matrix_mixdown_idx; | |
| 118 uint8_t front_element_is_cpe[16]; | |
| 119 uint8_t front_element_tag_select[16]; | |
| 120 uint8_t side_element_is_cpe[16]; | |
| 121 uint8_t side_element_tag_select[16]; | |
| 122 uint8_t back_element_is_cpe[16]; | |
| 123 uint8_t back_element_tag_select[16]; | |
| 124 uint8_t lfe_element_tag_select[16]; | |
| 125 uint8_t assoc_data_element_tag_select[16]; | |
| 126 uint8_t cc_element_is_ind_sw[16]; | |
| 127 uint8_t valid_cc_element_tag_select[16]; | |
| 128 | |
| 129 uint8_t channels; | |
| 130 | |
| 131 uint8_t comment_field_bytes; | |
| 132 uint8_t comment_field_data[257]; | |
| 133 | |
| 134 /* extra added values */ | |
| 135 uint8_t num_front_channels; | |
| 136 uint8_t num_side_channels; | |
| 137 uint8_t num_back_channels; | |
| 138 uint8_t num_lfe_channels; | |
| 139 uint8_t sce_channel[16]; | |
| 140 uint8_t cpe_channel[16]; | |
| 141 } program_config; | |
| 142 | |
| 143 typedef struct | |
| 144 { | |
| 145 uint16_t syncword; | |
| 146 uint8_t id; | |
| 147 uint8_t layer; | |
| 148 uint8_t protection_absent; | |
| 149 uint8_t profile; | |
| 150 uint8_t sf_index; | |
| 151 uint8_t private_bit; | |
| 152 uint8_t channel_configuration; | |
| 153 uint8_t original; | |
| 154 uint8_t home; | |
| 155 uint8_t emphasis; | |
| 156 uint8_t copyright_identification_bit; | |
| 157 uint8_t copyright_identification_start; | |
| 158 uint16_t aac_frame_length; | |
| 159 uint16_t adts_buffer_fullness; | |
| 160 uint8_t no_raw_data_blocks_in_frame; | |
| 161 uint16_t crc_check; | |
| 10989 | 162 |
| 163 /* control param */ | |
| 164 uint8_t old_format; | |
| 10725 | 165 } adts_header; |
| 166 | |
| 167 typedef struct | |
| 168 { | |
| 169 uint8_t copyright_id_present; | |
| 170 int8_t copyright_id[10]; | |
| 171 uint8_t original_copy; | |
| 172 uint8_t home; | |
| 173 uint8_t bitstream_type; | |
| 174 uint32_t bitrate; | |
| 175 uint8_t num_program_config_elements; | |
| 176 uint32_t adif_buffer_fullness; | |
| 177 | |
| 178 /* maximum of 16 PCEs */ | |
| 179 program_config pce[16]; | |
| 180 } adif_header; | |
| 181 | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
182 #ifdef LTP_DEC |
| 10725 | 183 typedef struct |
| 184 { | |
| 185 uint8_t last_band; | |
| 186 uint8_t data_present; | |
| 187 uint16_t lag; | |
| 188 uint8_t lag_update; | |
| 189 uint8_t coef; | |
| 190 uint8_t long_used[MAX_SFB]; | |
| 191 uint8_t short_used[8]; | |
| 192 uint8_t short_lag_present[8]; | |
| 193 uint8_t short_lag[8]; | |
| 194 } ltp_info; | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
195 #endif |
| 10725 | 196 |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
197 #ifdef MAIN_DEC |
| 10725 | 198 typedef struct |
| 199 { | |
| 200 uint8_t limit; | |
| 201 uint8_t predictor_reset; | |
| 202 uint8_t predictor_reset_group_number; | |
| 203 uint8_t prediction_used[MAX_SFB]; | |
| 204 } pred_info; | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
205 #endif |
| 10725 | 206 |
| 207 typedef struct | |
| 208 { | |
| 209 uint8_t number_pulse; | |
| 210 uint8_t pulse_start_sfb; | |
| 211 uint8_t pulse_offset[4]; | |
| 212 uint8_t pulse_amp[4]; | |
| 213 } pulse_info; | |
| 214 | |
| 215 typedef struct | |
| 216 { | |
| 217 uint8_t n_filt[8]; | |
| 218 uint8_t coef_res[8]; | |
| 219 uint8_t length[8][4]; | |
| 220 uint8_t order[8][4]; | |
| 221 uint8_t direction[8][4]; | |
| 222 uint8_t coef_compress[8][4]; | |
| 223 uint8_t coef[8][4][32]; | |
| 224 } tns_info; | |
| 225 | |
| 226 #ifdef SSR_DEC | |
| 227 typedef struct | |
| 228 { | |
| 229 uint8_t max_band; | |
| 230 | |
| 231 uint8_t adjust_num[4][8]; | |
| 232 uint8_t alevcode[4][8][8]; | |
| 233 uint8_t aloccode[4][8][8]; | |
| 234 } ssr_info; | |
| 235 #endif | |
| 236 | |
| 237 typedef struct | |
| 238 { | |
| 239 uint8_t max_sfb; | |
| 240 | |
| 241 uint8_t num_swb; | |
| 242 uint8_t num_window_groups; | |
| 243 uint8_t num_windows; | |
| 244 uint8_t window_sequence; | |
| 245 uint8_t window_group_length[8]; | |
| 246 uint8_t window_shape; | |
| 247 uint8_t scale_factor_grouping; | |
| 248 uint16_t sect_sfb_offset[8][15*8]; | |
| 249 uint16_t swb_offset[52]; | |
| 250 | |
| 251 uint8_t sect_cb[8][15*8]; | |
| 252 uint16_t sect_start[8][15*8]; | |
| 253 uint16_t sect_end[8][15*8]; | |
| 254 uint8_t sfb_cb[8][8*15]; | |
| 255 uint8_t num_sec[8]; /* number of sections in a group */ | |
| 256 | |
| 257 uint8_t global_gain; | |
| 12527 | 258 int16_t scale_factors[8][51]; /* [0..255] */ |
| 10725 | 259 |
| 260 uint8_t ms_mask_present; | |
| 261 uint8_t ms_used[MAX_WINDOW_GROUPS][MAX_SFB]; | |
| 262 | |
| 263 uint8_t noise_used; | |
| 264 | |
| 265 uint8_t pulse_data_present; | |
| 266 uint8_t tns_data_present; | |
| 267 uint8_t gain_control_data_present; | |
| 268 uint8_t predictor_data_present; | |
| 269 | |
| 270 pulse_info pul; | |
| 271 tns_info tns; | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
272 #ifdef MAIN_DEC |
| 10725 | 273 pred_info pred; |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
274 #endif |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
275 #ifdef LTP_DEC |
| 10725 | 276 ltp_info ltp; |
| 277 ltp_info ltp2; | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
278 #endif |
| 10725 | 279 #ifdef SSR_DEC |
| 280 ssr_info ssr; | |
| 281 #endif | |
| 282 | |
| 283 #ifdef ERROR_RESILIENCE | |
| 284 /* ER HCR data */ | |
| 285 uint16_t length_of_reordered_spectral_data; | |
| 286 uint8_t length_of_longest_codeword; | |
| 287 /* ER RLVC data */ | |
| 288 uint8_t sf_concealment; | |
| 289 uint8_t rev_global_gain; | |
| 290 uint16_t length_of_rvlc_sf; | |
| 291 uint16_t dpcm_noise_nrg; | |
| 292 uint8_t sf_escapes_present; | |
| 293 uint8_t length_of_rvlc_escapes; | |
| 294 uint16_t dpcm_noise_last_position; | |
| 295 #endif | |
| 296 } ic_stream; /* individual channel stream */ | |
| 297 | |
| 298 typedef struct | |
| 299 { | |
| 300 uint8_t channel; | |
| 301 int16_t paired_channel; | |
| 302 | |
| 303 uint8_t element_instance_tag; | |
| 304 uint8_t common_window; | |
| 305 | |
| 306 ic_stream ics1; | |
| 307 ic_stream ics2; | |
| 308 } element; /* syntax element (SCE, CPE, LFE) */ | |
| 309 | |
| 310 typedef struct mp4AudioSpecificConfig | |
| 311 { | |
| 312 /* Audio Specific Info */ | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
313 /*uint8_t*/ unsigned char objectTypeIndex; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
314 /*uint8_t*/ unsigned char samplingFrequencyIndex; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
315 /*uint32_t*/ unsigned long samplingFrequency; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
316 /*uint8_t*/ unsigned char channelsConfiguration; |
| 10725 | 317 |
| 318 /* GA Specific Info */ | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
319 /*uint8_t*/ unsigned char frameLengthFlag; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
320 /*uint8_t*/ unsigned char dependsOnCoreCoder; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
321 /*uint16_t*/ unsigned short coreCoderDelay; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
322 /*uint8_t*/ unsigned char extensionFlag; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
323 /*uint8_t*/ unsigned char aacSectionDataResilienceFlag; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
324 /*uint8_t*/ unsigned char aacScalefactorDataResilienceFlag; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
325 /*uint8_t*/ unsigned char aacSpectralDataResilienceFlag; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
326 /*uint8_t*/ unsigned char epConfig; |
| 10725 | 327 |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
328 /*uint8_t*/ char sbr_present_flag; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
329 /*uint8_t*/ char forceUpSampling; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
330 /*uint8_t*/ char downSampledSBR; |
| 10725 | 331 } mp4AudioSpecificConfig; |
| 332 | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
333 typedef struct NeAACDecConfiguration |
| 10725 | 334 { |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
335 /*uint8_t*/ unsigned char defObjectType; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
336 /*uint32_t*/ unsigned long defSampleRate; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
337 /*uint8_t*/ unsigned char outputFormat; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
338 /*uint8_t*/ unsigned char downMatrix; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
339 /*uint8_t*/ unsigned char useOldADTSFormat; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
340 /*uint8_t*/ unsigned char dontUpSampleImplicitSBR; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
341 } NeAACDecConfiguration, *NeAACDecConfigurationPtr; |
| 10725 | 342 |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
343 typedef struct NeAACDecFrameInfo |
| 10725 | 344 { |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
345 /*uint32_t*/ unsigned long bytesconsumed; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
346 /*uint32_t*/ unsigned long samples; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
347 /*uint8_t*/ unsigned char channels; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
348 /*uint8_t*/ unsigned char error; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
349 /*uint32_t*/ unsigned long samplerate; |
| 10725 | 350 |
| 10989 | 351 /* SBR: 0: off, 1: on; normal, 2: on; downsampled */ |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
352 /*uint8_t*/ unsigned char sbr; |
| 10989 | 353 |
| 354 /* MPEG-4 ObjectType */ | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
355 /*uint8_t*/ unsigned char object_type; |
| 10989 | 356 |
| 357 /* AAC header type; MP4 will be signalled as RAW also */ | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
358 /*uint8_t*/ unsigned char header_type; |
| 10989 | 359 |
| 10725 | 360 /* multichannel configuration */ |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
361 /*uint8_t*/ unsigned char num_front_channels; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
362 /*uint8_t*/ unsigned char num_side_channels; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
363 /*uint8_t*/ unsigned char num_back_channels; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
364 /*uint8_t*/ unsigned char num_lfe_channels; |
|
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
365 /*uint8_t*/ unsigned char channel_position[MAX_CHANNELS]; |
| 18141 | 366 |
| 367 /* PS: 0: off, 1: on */ | |
| 368 /*uint8_t*/ unsigned char ps; | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
369 } NeAACDecFrameInfo; |
| 10725 | 370 |
| 371 typedef struct | |
| 372 { | |
| 373 uint8_t adts_header_present; | |
| 374 uint8_t adif_header_present; | |
| 375 uint8_t sf_index; | |
| 376 uint8_t object_type; | |
| 377 uint8_t channelConfiguration; | |
| 378 #ifdef ERROR_RESILIENCE | |
| 379 uint8_t aacSectionDataResilienceFlag; | |
| 380 uint8_t aacScalefactorDataResilienceFlag; | |
| 381 uint8_t aacSpectralDataResilienceFlag; | |
| 382 #endif | |
| 383 uint16_t frameLength; | |
| 384 uint8_t postSeekResetFlag; | |
| 385 | |
| 386 uint32_t frame; | |
| 387 | |
| 388 uint8_t downMatrix; | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
389 uint8_t upMatrix; |
| 10725 | 390 uint8_t first_syn_ele; |
| 391 uint8_t has_lfe; | |
| 12527 | 392 /* number of channels in current frame */ |
| 10725 | 393 uint8_t fr_channels; |
| 12527 | 394 /* number of elements in current frame */ |
| 10725 | 395 uint8_t fr_ch_ele; |
| 396 | |
| 12527 | 397 /* element_output_channels: |
| 398 determines the number of channels the element will output | |
| 399 */ | |
| 400 uint8_t element_output_channels[MAX_SYNTAX_ELEMENTS]; | |
| 401 /* element_alloced: | |
| 402 determines whether the data needed for the element is allocated or not | |
| 403 */ | |
| 404 uint8_t element_alloced[MAX_SYNTAX_ELEMENTS]; | |
| 405 /* alloced_channels: | |
| 406 determines the number of channels where output data is allocated for | |
| 407 */ | |
| 408 uint8_t alloced_channels; | |
| 409 | |
| 410 /* output data buffer */ | |
| 10725 | 411 void *sample_buffer; |
| 412 | |
| 413 uint8_t window_shape_prev[MAX_CHANNELS]; | |
| 414 #ifdef LTP_DEC | |
| 415 uint16_t ltp_lag[MAX_CHANNELS]; | |
| 416 #endif | |
| 417 fb_info *fb; | |
| 418 drc_info *drc; | |
| 419 | |
| 420 real_t *time_out[MAX_CHANNELS]; | |
| 12527 | 421 real_t *fb_intermed[MAX_CHANNELS]; |
| 10725 | 422 |
| 423 #ifdef SBR_DEC | |
| 424 int8_t sbr_present_flag; | |
| 10989 | 425 int8_t forceUpSampling; |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
426 int8_t downSampledSBR; |
| 12527 | 427 /* determines whether SBR data is allocated for the gives element */ |
| 428 uint8_t sbr_alloced[MAX_SYNTAX_ELEMENTS]; | |
| 10725 | 429 |
| 12527 | 430 sbr_info *sbr[MAX_SYNTAX_ELEMENTS]; |
| 10725 | 431 #endif |
| 12527 | 432 #if (defined(PS_DEC) || defined(DRM_PS)) |
| 433 uint8_t ps_used[MAX_SYNTAX_ELEMENTS]; | |
| 18141 | 434 uint8_t ps_used_global; |
| 12527 | 435 #endif |
| 10725 | 436 |
| 437 #ifdef SSR_DEC | |
| 438 real_t *ssr_overlap[MAX_CHANNELS]; | |
| 439 real_t *prev_fmd[MAX_CHANNELS]; | |
| 440 real_t ipqf_buffer[MAX_CHANNELS][4][96/4]; | |
| 441 #endif | |
| 442 | |
| 443 #ifdef MAIN_DEC | |
| 444 pred_state *pred_stat[MAX_CHANNELS]; | |
| 445 #endif | |
| 446 #ifdef LTP_DEC | |
| 12527 | 447 int16_t *lt_pred_stat[MAX_CHANNELS]; |
| 10725 | 448 #endif |
| 449 | |
| 450 /* Program Config Element */ | |
| 451 uint8_t pce_set; | |
| 452 program_config pce; | |
| 12527 | 453 uint8_t element_id[MAX_CHANNELS]; |
| 10725 | 454 uint8_t internal_channel[MAX_CHANNELS]; |
| 455 | |
| 456 /* Configuration data */ | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
457 NeAACDecConfiguration config; |
| 12527 | 458 |
| 459 #ifdef PROFILE | |
| 460 int64_t cycles; | |
| 461 int64_t spectral_cycles; | |
| 462 int64_t output_cycles; | |
| 463 int64_t scalefac_cycles; | |
| 464 int64_t requant_cycles; | |
| 465 #endif | |
|
13453
6d50ef45a058
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents:
12625
diff
changeset
|
466 } NeAACDecStruct, *NeAACDecHandle; |
| 10725 | 467 |
| 468 | |
| 469 | |
| 470 #ifdef __cplusplus | |
| 471 } | |
| 472 #endif | |
| 473 #endif |
