2
2
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
3
3
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
5
5
** This program is free software; you can redistribute it and/or modify
6
6
** it under the terms of the GNU General Public License as published by
7
7
** the Free Software Foundation; either version 2 of the License, or
8
8
** (at your option) any later version.
10
10
** This program is distributed in the hope that it will be useful,
11
11
** but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
** GNU General Public License for more details.
15
15
** You should have received a copy of the GNU General Public License
16
** along with this program; if not, write to the Free Software
16
** along with this program; if not, write to the Free Software
17
17
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19
19
** Any non-GPL usage of this software or parts of this software is strictly
307
310
typedef struct mp4AudioSpecificConfig
309
312
/* Audio Specific Info */
310
uint8_t objectTypeIndex;
311
uint8_t samplingFrequencyIndex;
312
uint32_t samplingFrequency;
313
uint8_t channelsConfiguration;
313
/*uint8_t*/ unsigned char objectTypeIndex;
314
/*uint8_t*/ unsigned char samplingFrequencyIndex;
315
/*uint32_t*/ unsigned long samplingFrequency;
316
/*uint8_t*/ unsigned char channelsConfiguration;
315
318
/* GA Specific Info */
316
uint8_t frameLengthFlag;
317
uint8_t dependsOnCoreCoder;
318
uint16_t coreCoderDelay;
319
uint8_t extensionFlag;
320
uint8_t aacSectionDataResilienceFlag;
321
uint8_t aacScalefactorDataResilienceFlag;
322
uint8_t aacSpectralDataResilienceFlag;
319
/*uint8_t*/ unsigned char frameLengthFlag;
320
/*uint8_t*/ unsigned char dependsOnCoreCoder;
321
/*uint16_t*/ unsigned short coreCoderDelay;
322
/*uint8_t*/ unsigned char extensionFlag;
323
/*uint8_t*/ unsigned char aacSectionDataResilienceFlag;
324
/*uint8_t*/ unsigned char aacScalefactorDataResilienceFlag;
325
/*uint8_t*/ unsigned char aacSpectralDataResilienceFlag;
326
/*uint8_t*/ unsigned char epConfig;
325
int8_t sbr_present_flag;
326
int8_t forceUpSampling;
328
/*uint8_t*/ char sbr_present_flag;
329
/*uint8_t*/ char forceUpSampling;
330
/*uint8_t*/ char downSampledSBR;
327
331
} mp4AudioSpecificConfig;
329
typedef struct faacDecConfiguration
333
typedef struct NeAACDecConfiguration
331
uint8_t defObjectType;
332
uint32_t defSampleRate;
333
uint8_t outputFormat;
335
uint8_t useOldADTSFormat;
336
uint8_t dontUpSampleImplicitSBR;
337
} faacDecConfiguration, *faacDecConfigurationPtr;
335
/*uint8_t*/ unsigned char defObjectType;
336
/*uint32_t*/ unsigned long defSampleRate;
337
/*uint8_t*/ unsigned char outputFormat;
338
/*uint8_t*/ unsigned char downMatrix;
339
/*uint8_t*/ unsigned char useOldADTSFormat;
340
/*uint8_t*/ unsigned char dontUpSampleImplicitSBR;
341
} NeAACDecConfiguration, *NeAACDecConfigurationPtr;
339
typedef struct faacDecFrameInfo
343
typedef struct NeAACDecFrameInfo
341
uint32_t bytesconsumed;
345
/*uint32_t*/ unsigned long bytesconsumed;
346
/*uint32_t*/ unsigned long samples;
347
/*uint8_t*/ unsigned char channels;
348
/*uint8_t*/ unsigned char error;
349
/*uint32_t*/ unsigned long samplerate;
347
351
/* SBR: 0: off, 1: on; normal, 2: on; downsampled */
352
/*uint8_t*/ unsigned char sbr;
350
354
/* MPEG-4 ObjectType */
355
/*uint8_t*/ unsigned char object_type;
353
357
/* AAC header type; MP4 will be signalled as RAW also */
358
/*uint8_t*/ unsigned char header_type;
356
360
/* multichannel configuration */
357
uint8_t num_front_channels;
358
uint8_t num_side_channels;
359
uint8_t num_back_channels;
360
uint8_t num_lfe_channels;
361
uint8_t channel_position[MAX_CHANNELS];
361
/*uint8_t*/ unsigned char num_front_channels;
362
/*uint8_t*/ unsigned char num_side_channels;
363
/*uint8_t*/ unsigned char num_back_channels;
364
/*uint8_t*/ unsigned char num_lfe_channels;
365
/*uint8_t*/ unsigned char channel_position[MAX_CHANNELS];
367
/* PS: 0: off, 1: on */
368
/*uint8_t*/ unsigned char ps;