Mercurial > libavcodec.hg
comparison aac.h @ 11401:e340262ba532 libavcodec
Add an HE-AAC v1 decoder.
A large portion of this code was orignally authored by Robert Swain. The rest
was written by me. Full history is available at:
svn://svn.ffmpeg.org/soc/aac-sbr
http://github.com/aconverse/ffmpeg-heaac/tree/sbr_pub
author | alexc |
---|---|
date | Mon, 08 Mar 2010 04:33:02 +0000 |
parents | 4b3da727d832 |
children | 7dd2a45249a9 |
comparison
equal
deleted
inserted
replaced
11400:c166792100a0 | 11401:e340262ba532 |
---|---|
32 | 32 |
33 #include "avcodec.h" | 33 #include "avcodec.h" |
34 #include "dsputil.h" | 34 #include "dsputil.h" |
35 #include "fft.h" | 35 #include "fft.h" |
36 #include "mpeg4audio.h" | 36 #include "mpeg4audio.h" |
37 #include "sbr.h" | |
37 | 38 |
38 #include <stdint.h> | 39 #include <stdint.h> |
39 | 40 |
40 #define AAC_INIT_VLC_STATIC(num, size) \ | 41 #define AAC_INIT_VLC_STATIC(num, size) \ |
41 INIT_VLC_STATIC(&vlc_spectral[num], 8, ff_aac_spectral_sizes[num], \ | 42 INIT_VLC_STATIC(&vlc_spectral[num], 8, ff_aac_spectral_sizes[num], \ |
215 float sf[120]; ///< scalefactors | 216 float sf[120]; ///< scalefactors |
216 int sf_idx[128]; ///< scalefactor indices (used by encoder) | 217 int sf_idx[128]; ///< scalefactor indices (used by encoder) |
217 uint8_t zeroes[128]; ///< band is not coded (used by encoder) | 218 uint8_t zeroes[128]; ///< band is not coded (used by encoder) |
218 DECLARE_ALIGNED(16, float, coeffs)[1024]; ///< coefficients for IMDCT | 219 DECLARE_ALIGNED(16, float, coeffs)[1024]; ///< coefficients for IMDCT |
219 DECLARE_ALIGNED(16, float, saved)[1024]; ///< overlap | 220 DECLARE_ALIGNED(16, float, saved)[1024]; ///< overlap |
220 DECLARE_ALIGNED(16, float, ret)[1024]; ///< PCM output | 221 DECLARE_ALIGNED(16, float, ret)[2048]; ///< PCM output |
221 PredictorState predictor_state[MAX_PREDICTORS]; | 222 PredictorState predictor_state[MAX_PREDICTORS]; |
222 } SingleChannelElement; | 223 } SingleChannelElement; |
223 | 224 |
224 /** | 225 /** |
225 * channel element - generic struct for SCE/CPE/CCE/LFE | 226 * channel element - generic struct for SCE/CPE/CCE/LFE |
231 uint8_t ms_mask[128]; ///< Set if mid/side stereo is used for each scalefactor window band | 232 uint8_t ms_mask[128]; ///< Set if mid/side stereo is used for each scalefactor window band |
232 // shared | 233 // shared |
233 SingleChannelElement ch[2]; | 234 SingleChannelElement ch[2]; |
234 // CCE specific | 235 // CCE specific |
235 ChannelCoupling coup; | 236 ChannelCoupling coup; |
237 SpectralBandReplication sbr; | |
236 } ChannelElement; | 238 } ChannelElement; |
237 | 239 |
238 /** | 240 /** |
239 * main AAC context | 241 * main AAC context |
240 */ | 242 */ |