annotate aac.h @ 7523:a3f7ffdb676d libavcodec

Sync already committed code with that in SoC and commit more OKed hunks of code
author superdump
date Sat, 09 Aug 2008 10:46:27 +0000
parents 3eec98e5ab8f
children 4fca7939ad48
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7499
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
1 /*
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
2 * AAC definitions and structures
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
3 * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org )
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
4 * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com )
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
5 *
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
6 * This file is part of FFmpeg.
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
7 *
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
8 * FFmpeg is free software; you can redistribute it and/or
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
9 * modify it under the terms of the GNU Lesser General Public
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
10 * License as published by the Free Software Foundation; either
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
11 * version 2.1 of the License, or (at your option) any later version.
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
12 *
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
13 * FFmpeg is distributed in the hope that it will be useful,
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
16 * Lesser General Public License for more details.
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
17 *
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
18 * You should have received a copy of the GNU Lesser General Public
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
19 * License along with FFmpeg; if not, write to the Free Software
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
21 */
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
22
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
23 /**
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
24 * @file aac.h
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
25 * AAC definitions and structures
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
26 * @author Oded Shimon ( ods15 ods15 dyndns org )
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
27 * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
28 */
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
29
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
30 #ifndef FFMPEG_AAC_H
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
31 #define FFMPEG_AAC_H
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
32
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
33 #include "avcodec.h"
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
34 #include "dsputil.h"
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
35 #include "mpeg4audio.h"
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
36
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
37 #include <stdint.h>
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
38
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
39 #define AAC_INIT_VLC_STATIC(num, size) \
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
40 INIT_VLC_STATIC(&vlc_spectral[num], 6, ff_aac_spectral_sizes[num], \
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
41 ff_aac_spectral_bits[num], sizeof( ff_aac_spectral_bits[num][0]), sizeof( ff_aac_spectral_bits[num][0]), \
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
42 ff_aac_spectral_codes[num], sizeof(ff_aac_spectral_codes[num][0]), sizeof(ff_aac_spectral_codes[num][0]), \
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
43 size);
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
44
7523
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
45 #define MAX_CHANNELS 64
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
46
7499
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
47 #define IVQUANT_SIZE 1024
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
48
7523
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
49 enum AudioObjectType {
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
50 AOT_NULL,
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
51 // Support? Name
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
52 AOT_AAC_MAIN, ///< Y Main
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
53 AOT_AAC_LC, ///< Y Low Complexity
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
54 AOT_AAC_SSR, ///< N (code in SoC repo) Scalable Sample Rate
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
55 AOT_AAC_LTP, ///< N (code in SoC repo) Long Term Prediction
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
56 AOT_SBR, ///< N (in progress) Spectral Band Replication
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
57 AOT_AAC_SCALABLE, ///< N Scalable
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
58 AOT_TWINVQ, ///< N Twin Vector Quantizer
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
59 AOT_CELP, ///< N Code Excited Linear Prediction
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
60 AOT_HVXC, ///< N Harmonic Vector eXcitation Coding
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
61 AOT_TTSI = 12, ///< N Text-To-Speech Interface
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
62 AOT_MAINSYNTH, ///< N Main Synthesis
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
63 AOT_WAVESYNTH, ///< N Wavetable Synthesis
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
64 AOT_MIDI, ///< N General MIDI
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
65 AOT_SAFX, ///< N Algorithmic Synthesis and Audio Effects
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
66 AOT_ER_AAC_LC, ///< N Error Resilient Low Complexity
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
67 AOT_ER_AAC_LTP = 19, ///< N Error Resilient Long Term Prediction
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
68 AOT_ER_AAC_SCALABLE, ///< N Error Resilient Scalable
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
69 AOT_ER_TWINVQ, ///< N Error Resilient Twin Vector Quantizer
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
70 AOT_ER_BSAC, ///< N Error Resilient Bit-Sliced Arithmetic Coding
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
71 AOT_ER_AAC_LD, ///< N Error Resilient Low Delay
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
72 AOT_ER_CELP, ///< N Error Resilient Code Excited Linear Prediction
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
73 AOT_ER_HVXC, ///< N Error Resilient Harmonic Vector eXcitation Coding
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
74 AOT_ER_HILN, ///< N Error Resilient Harmonic and Individual Lines plus Noise
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
75 AOT_ER_PARAM, ///< N Error Resilient Parametric
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
76 AOT_SSC, ///< N SinuSoidal Coding
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
77 };
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
78
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
79 enum ExtensionPayloadID {
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
80 EXT_FILL,
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
81 EXT_FILL_DATA,
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
82 EXT_DATA_ELEMENT,
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
83 EXT_DYNAMIC_RANGE = 0xb,
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
84 EXT_SBR_DATA = 0xd,
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
85 EXT_SBR_DATA_CRC = 0xe,
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
86 };
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
87
7499
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
88 enum WindowSequence {
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
89 ONLY_LONG_SEQUENCE,
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
90 LONG_START_SEQUENCE,
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
91 EIGHT_SHORT_SEQUENCE,
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
92 LONG_STOP_SEQUENCE,
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
93 };
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
94
7523
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
95 enum BandType {
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
96 ZERO_BT = 0, ///< Scalefactors and spectral data are all zero.
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
97 FIRST_PAIR_BT = 5, ///< This and later band types encode two values (rather than four) with one code word.
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
98 ESC_BT = 11, ///< Spectral data are coded with an escape sequence.
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
99 NOISE_BT = 13, ///< Spectral data are scaled white noise not coded in the bitstream.
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
100 INTENSITY_BT2 = 14, ///< Scalefactor data are intensity stereo positions.
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
101 INTENSITY_BT = 15, ///< Scalefactor data are intensity stereo positions.
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
102 };
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
103
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
104 #define IS_CODEBOOK_UNSIGNED(x) ((x - 1) & 10)
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
105
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
106 enum ChannelPosition {
7499
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
107 AAC_CHANNEL_FRONT = 1,
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
108 AAC_CHANNEL_SIDE = 2,
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
109 AAC_CHANNEL_BACK = 3,
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
110 AAC_CHANNEL_LFE = 4,
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
111 AAC_CHANNEL_CC = 5,
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
112 };
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
113
7523
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
114 typedef struct {
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
115 int num_pulse;
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
116 int start;
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
117 int offset[4];
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
118 int amp[4];
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
119 } Pulse;
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
120
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
121 /**
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
122 * coupling parameters
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
123 */
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
124 typedef struct {
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
125
7499
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
126 /**
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
127 * main AAC context
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
128 */
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
129 typedef struct {
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
130 AVCodecContext * avccontext;
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
131
7523
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
132 MPEG4AudioConfig m4ac;
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
133
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
134 int is_saved; ///< Set if elements have stored overlap from previous frame.
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
135 DynamicRangeControl che_drc;
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
136
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
137 enum ChannelPosition che_pos[4][MAX_ELEM_ID]; /**< channel element channel mapping with the
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
138 * first index as the first 4 raw data block types
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
139 */
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
140
7499
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
141 /**
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
142 * @defgroup tables Computed / set up during initialization.
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
143 * @{
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
144 */
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
145 MDCTContext mdct;
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
146 MDCTContext mdct_small;
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
147 DSPContext dsp;
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
148 /** @} */
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
149
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
150 /**
7523
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
151 * @defgroup output Members used for output interleaving.
7499
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
152 * @{
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
153 */
7523
a3f7ffdb676d Sync already committed code with that in SoC and commit more OKed hunks of code
superdump
parents: 7499
diff changeset
154 float *output_data[MAX_CHANNELS]; ///< Points to each element's 'ret' buffer (PCM output).
7499
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
155 float add_bias; ///< offset for dsp.float_to_int16
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
156 float sf_scale; ///< Pre-scale for correct IMDCT and dsp.float_to_int16.
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
157 int sf_offset; ///< offset into pow2sf_tab as appropriate for dsp.float_to_int16
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
158 /** @} */
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
159
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
160 } AACContext;
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
161
3eec98e5ab8f AAC definitions and structures that have been OKed from the SoC AAC decoder
superdump
parents:
diff changeset
162 #endif /* FFMPEG_AAC_H */