annotate libfaad2/structs.h @ 24576:6704a924d4aa

According to MSDN a thread must call CoUninitialize once for each successful call it has made to CoInitialize or CoInitializeEx, including any call that returns S_FALSE. Only the CoUninitialize call corresponding to the CoInitialize or CoInitializeEx call that initialized the library can close it. patch by Gianluigi Tiesi, mplayer netfarm it
author diego
date Sun, 23 Sep 2007 20:37:33 +0000
parents 59b6fa5b4201
children 69a4d646e55d
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
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
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
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.
14729
b4378a6f87a6 Sync missing cosmetics from the 2004-07-12 CVS snapshot.
diego
parents: 14727
diff changeset
9 **
10725
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.
14729
b4378a6f87a6 Sync missing cosmetics from the 2004-07-12 CVS snapshot.
diego
parents: 14727
diff changeset
14 **
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
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 **
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 14729
diff changeset
25 ** $Id: structs.h,v 1.42 2004/09/08 09:43:11 gcp Exp $
10725
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
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
35 #include "cfft.h"
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
36 #ifdef SBR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
37 #include "sbr_dec.h"
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
38 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
39
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
40 #define MAX_CHANNELS 64
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
41 #define MAX_SYNTAX_ELEMENTS 48
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
42 #define MAX_WINDOW_GROUPS 8
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
43 #define MAX_SFB 51
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
44 #define MAX_LTP_SFB 40
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
45 #define MAX_LTP_SFB_S 8
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
46
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
47 /* used to save the prediction state */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
48 typedef struct {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
49 int16_t r[2];
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
50 int16_t COR[2];
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
51 int16_t VAR[2];
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
52 } pred_state;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
53
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
54 typedef struct {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
55 uint16_t N;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
56 cfft_info *cfft;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
57 complex_t *sincos;
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
58 #ifdef PROFILE
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
59 int64_t cycles;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
60 int64_t fft_cycles;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
61 #endif
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
62 } mdct_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
63
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
64 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
65 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
66 const real_t *long_window[2];
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
67 const real_t *short_window[2];
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
68 #ifdef LD_DEC
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
69 const real_t *ld_window[2];
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
70 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
71
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
72 mdct_info *mdct256;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
73 #ifdef LD_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
74 mdct_info *mdct1024;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
75 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
76 mdct_info *mdct2048;
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
77 #ifdef PROFILE
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
78 int64_t cycles;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
79 #endif
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
80 } fb_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
81
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
82 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
83 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
84 uint8_t present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
85
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
86 uint8_t num_bands;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
87 uint8_t pce_instance_tag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
88 uint8_t excluded_chns_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
89 uint8_t band_top[17];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
90 uint8_t prog_ref_level;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
91 uint8_t dyn_rng_sgn[17];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
92 uint8_t dyn_rng_ctl[17];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
93 uint8_t exclude_mask[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
94 uint8_t additional_excluded_chns[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
95
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
96 real_t ctrl1;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
97 real_t ctrl2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
98 } drc_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
99
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
100 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
101 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
102 uint8_t element_instance_tag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
103 uint8_t object_type;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
104 uint8_t sf_index;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
105 uint8_t num_front_channel_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
106 uint8_t num_side_channel_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
107 uint8_t num_back_channel_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
108 uint8_t num_lfe_channel_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
109 uint8_t num_assoc_data_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
110 uint8_t num_valid_cc_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
111 uint8_t mono_mixdown_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
112 uint8_t mono_mixdown_element_number;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
113 uint8_t stereo_mixdown_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
114 uint8_t stereo_mixdown_element_number;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
115 uint8_t matrix_mixdown_idx_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
116 uint8_t pseudo_surround_enable;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
117 uint8_t matrix_mixdown_idx;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
118 uint8_t front_element_is_cpe[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
119 uint8_t front_element_tag_select[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
120 uint8_t side_element_is_cpe[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
121 uint8_t side_element_tag_select[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
122 uint8_t back_element_is_cpe[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
123 uint8_t back_element_tag_select[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
124 uint8_t lfe_element_tag_select[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
125 uint8_t assoc_data_element_tag_select[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
126 uint8_t cc_element_is_ind_sw[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
127 uint8_t valid_cc_element_tag_select[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
128
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
129 uint8_t channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
130
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
131 uint8_t comment_field_bytes;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
132 uint8_t comment_field_data[257];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
133
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
134 /* extra added values */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
135 uint8_t num_front_channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
136 uint8_t num_side_channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
137 uint8_t num_back_channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
138 uint8_t num_lfe_channels;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
139 uint8_t sce_channel[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
140 uint8_t cpe_channel[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
141 } program_config;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
142
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
143 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
144 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
145 uint16_t syncword;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
146 uint8_t id;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
147 uint8_t layer;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
148 uint8_t protection_absent;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
149 uint8_t profile;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
150 uint8_t sf_index;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
151 uint8_t private_bit;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
152 uint8_t channel_configuration;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
153 uint8_t original;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
154 uint8_t home;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
155 uint8_t emphasis;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
156 uint8_t copyright_identification_bit;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
157 uint8_t copyright_identification_start;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
158 uint16_t aac_frame_length;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
159 uint16_t adts_buffer_fullness;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
160 uint8_t no_raw_data_blocks_in_frame;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
161 uint16_t crc_check;
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
162
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
163 /* control param */
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
164 uint8_t old_format;
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
165 } adts_header;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
166
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
167 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
168 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
169 uint8_t copyright_id_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
170 int8_t copyright_id[10];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
171 uint8_t original_copy;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
172 uint8_t home;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
173 uint8_t bitstream_type;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
174 uint32_t bitrate;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
175 uint8_t num_program_config_elements;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
176 uint32_t adif_buffer_fullness;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
177
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
178 /* maximum of 16 PCEs */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
179 program_config pce[16];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
180 } adif_header;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
183 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
184 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
185 uint8_t last_band;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
186 uint8_t data_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
187 uint16_t lag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
188 uint8_t lag_update;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
189 uint8_t coef;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
190 uint8_t long_used[MAX_SFB];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
191 uint8_t short_used[8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
192 uint8_t short_lag_present[8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
193 uint8_t short_lag[8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
198 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
199 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
200 uint8_t limit;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
201 uint8_t predictor_reset;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
202 uint8_t predictor_reset_group_number;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
203 uint8_t prediction_used[MAX_SFB];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
206
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
207 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
208 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
209 uint8_t number_pulse;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
210 uint8_t pulse_start_sfb;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
211 uint8_t pulse_offset[4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
212 uint8_t pulse_amp[4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
213 } pulse_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
214
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
215 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
216 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
217 uint8_t n_filt[8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
218 uint8_t coef_res[8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
219 uint8_t length[8][4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
220 uint8_t order[8][4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
221 uint8_t direction[8][4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
222 uint8_t coef_compress[8][4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
223 uint8_t coef[8][4][32];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
224 } tns_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
225
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
226 #ifdef SSR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
227 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
228 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
229 uint8_t max_band;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
230
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
231 uint8_t adjust_num[4][8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
232 uint8_t alevcode[4][8][8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
233 uint8_t aloccode[4][8][8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
234 } ssr_info;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
235 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
236
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
237 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
238 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
239 uint8_t max_sfb;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
240
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
241 uint8_t num_swb;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
242 uint8_t num_window_groups;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
243 uint8_t num_windows;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
244 uint8_t window_sequence;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
245 uint8_t window_group_length[8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
246 uint8_t window_shape;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
247 uint8_t scale_factor_grouping;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
248 uint16_t sect_sfb_offset[8][15*8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
249 uint16_t swb_offset[52];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
250
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
251 uint8_t sect_cb[8][15*8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
252 uint16_t sect_start[8][15*8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
253 uint16_t sect_end[8][15*8];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
254 uint8_t sfb_cb[8][8*15];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
255 uint8_t num_sec[8]; /* number of sections in a group */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
256
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
257 uint8_t global_gain;
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
258 int16_t scale_factors[8][51]; /* [0..255] */
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
259
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
260 uint8_t ms_mask_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
261 uint8_t ms_used[MAX_WINDOW_GROUPS][MAX_SFB];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
262
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
263 uint8_t noise_used;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
264
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
265 uint8_t pulse_data_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
266 uint8_t tns_data_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
267 uint8_t gain_control_data_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
268 uint8_t predictor_data_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
269
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
270 pulse_info pul;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
276 ltp_info ltp;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
279 #ifdef SSR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
280 ssr_info ssr;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
281 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
282
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
283 #ifdef ERROR_RESILIENCE
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
284 /* ER HCR data */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
285 uint16_t length_of_reordered_spectral_data;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
286 uint8_t length_of_longest_codeword;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
287 /* ER RLVC data */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
288 uint8_t sf_concealment;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
289 uint8_t rev_global_gain;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
290 uint16_t length_of_rvlc_sf;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
291 uint16_t dpcm_noise_nrg;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
292 uint8_t sf_escapes_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
293 uint8_t length_of_rvlc_escapes;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
294 uint16_t dpcm_noise_last_position;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
295 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
296 } ic_stream; /* individual channel stream */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
297
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
298 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
299 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
300 uint8_t channel;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
301 int16_t paired_channel;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
302
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
303 uint8_t element_instance_tag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
304 uint8_t common_window;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
305
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
306 ic_stream ics1;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
307 ic_stream ics2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
308 } element; /* syntax element (SCE, CPE, LFE) */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
309
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
310 typedef struct mp4AudioSpecificConfig
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
311 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
317
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
331 } mp4AudioSpecificConfig;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
350
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
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
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
353
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
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
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
356
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
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
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
359
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 14729
diff changeset
366
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 14729
diff changeset
367 /* PS: 0: off, 1: on */
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 14729
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
370
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
371 typedef struct
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
372 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
373 uint8_t adts_header_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
374 uint8_t adif_header_present;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
375 uint8_t sf_index;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
376 uint8_t object_type;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
377 uint8_t channelConfiguration;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
378 #ifdef ERROR_RESILIENCE
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
379 uint8_t aacSectionDataResilienceFlag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
380 uint8_t aacScalefactorDataResilienceFlag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
381 uint8_t aacSpectralDataResilienceFlag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
382 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
383 uint16_t frameLength;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
384 uint8_t postSeekResetFlag;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
385
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
386 uint32_t frame;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
387
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
390 uint8_t first_syn_ele;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
391 uint8_t has_lfe;
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
392 /* number of channels in current frame */
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
393 uint8_t fr_channels;
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
394 /* number of elements in current frame */
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
395 uint8_t fr_ch_ele;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
396
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
397 /* element_output_channels:
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
398 determines the number of channels the element will output
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
399 */
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
400 uint8_t element_output_channels[MAX_SYNTAX_ELEMENTS];
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
401 /* element_alloced:
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
402 determines whether the data needed for the element is allocated or not
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
403 */
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
404 uint8_t element_alloced[MAX_SYNTAX_ELEMENTS];
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
405 /* alloced_channels:
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
406 determines the number of channels where output data is allocated for
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
407 */
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
408 uint8_t alloced_channels;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
409
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
410 /* output data buffer */
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
411 void *sample_buffer;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
412
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
413 uint8_t window_shape_prev[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
414 #ifdef LTP_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
415 uint16_t ltp_lag[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
416 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
417 fb_info *fb;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
418 drc_info *drc;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
419
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
420 real_t *time_out[MAX_CHANNELS];
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
421 real_t *fb_intermed[MAX_CHANNELS];
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
422
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
423 #ifdef SBR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
424 int8_t sbr_present_flag;
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
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
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
427 /* determines whether SBR data is allocated for the gives element */
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
428 uint8_t sbr_alloced[MAX_SYNTAX_ELEMENTS];
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
429
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
430 sbr_info *sbr[MAX_SYNTAX_ELEMENTS];
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
431 #endif
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
432 #if (defined(PS_DEC) || defined(DRM_PS))
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
433 uint8_t ps_used[MAX_SYNTAX_ELEMENTS];
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 14729
diff changeset
434 uint8_t ps_used_global;
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
435 #endif
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
436
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
437 #ifdef SSR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
438 real_t *ssr_overlap[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
439 real_t *prev_fmd[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
440 real_t ipqf_buffer[MAX_CHANNELS][4][96/4];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
441 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
442
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
443 #ifdef MAIN_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
444 pred_state *pred_stat[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
445 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
446 #ifdef LTP_DEC
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
447 int16_t *lt_pred_stat[MAX_CHANNELS];
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
448 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
449
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
450 /* Program Config Element */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
451 uint8_t pce_set;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
452 program_config pce;
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
453 uint8_t element_id[MAX_CHANNELS];
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
454 uint8_t internal_channel[MAX_CHANNELS];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
455
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
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
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
458
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
459 #ifdef PROFILE
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
460 int64_t cycles;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
461 int64_t spectral_cycles;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
462 int64_t output_cycles;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
463 int64_t scalefac_cycles;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
464 int64_t requant_cycles;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
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
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
467
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
468
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
469
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
470 #ifdef __cplusplus
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
471 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
472 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
473 #endif