Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(281)

Side by Side Diff: patched-ffmpeg-mt/libavcodec/aac.h

Issue 789004: ffmpeg roll of source to mar 9 version... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/ffmpeg/
Patch Set: '' Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * AAC definitions and structures 2 * AAC definitions and structures
3 * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org ) 3 * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org )
4 * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com ) 4 * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com )
5 * 5 *
6 * This file is part of FFmpeg. 6 * This file is part of FFmpeg.
7 * 7 *
8 * FFmpeg is free software; you can redistribute it and/or 8 * FFmpeg is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public 9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 14 matching lines...) Expand all
25 * AAC definitions and structures 25 * AAC definitions and structures
26 * @author Oded Shimon ( ods15 ods15 dyndns org ) 26 * @author Oded Shimon ( ods15 ods15 dyndns org )
27 * @author Maxim Gavrilov ( maxim.gavrilov gmail com ) 27 * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
28 */ 28 */
29 29
30 #ifndef AVCODEC_AAC_H 30 #ifndef AVCODEC_AAC_H
31 #define AVCODEC_AAC_H 31 #define AVCODEC_AAC_H
32 32
33 #include "avcodec.h" 33 #include "avcodec.h"
34 #include "dsputil.h" 34 #include "dsputil.h"
35 #include "fft.h"
35 #include "mpeg4audio.h" 36 #include "mpeg4audio.h"
37 #include "sbr.h"
36 38
37 #include <stdint.h> 39 #include <stdint.h>
38 40
39 #define AAC_INIT_VLC_STATIC(num, size) \ 41 #define AAC_INIT_VLC_STATIC(num, size) \
40 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], \
41 ff_aac_spectral_bits[num], sizeof( ff_aac_spectral_bits[num][0]), sizeo f( ff_aac_spectral_bits[num][0]), \ 43 ff_aac_spectral_bits[num], sizeof( ff_aac_spectral_bits[num][0]), sizeo f( ff_aac_spectral_bits[num][0]), \
42 ff_aac_spectral_codes[num], sizeof(ff_aac_spectral_codes[num][0]), sizeo f(ff_aac_spectral_codes[num][0]), \ 44 ff_aac_spectral_codes[num], sizeof(ff_aac_spectral_codes[num][0]), sizeo f(ff_aac_spectral_codes[num][0]), \
43 size); 45 size);
44 46
45 #define MAX_CHANNELS 64 47 #define MAX_CHANNELS 64
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 */ 209 */
208 typedef struct { 210 typedef struct {
209 IndividualChannelStream ics; 211 IndividualChannelStream ics;
210 TemporalNoiseShaping tns; 212 TemporalNoiseShaping tns;
211 Pulse pulse; 213 Pulse pulse;
212 enum BandType band_type[128]; ///< band types 214 enum BandType band_type[128]; ///< band types
213 int band_type_run_end[120]; ///< band type run end points 215 int band_type_run_end[120]; ///< band type run end points
214 float sf[120]; ///< scalefactors 216 float sf[120]; ///< scalefactors
215 int sf_idx[128]; ///< scalefactor indices (used by encoder) 217 int sf_idx[128]; ///< scalefactor indices (used by encoder)
216 uint8_t zeroes[128]; ///< band is not coded (used by en coder) 218 uint8_t zeroes[128]; ///< band is not coded (used by en coder)
217 DECLARE_ALIGNED_16(float, coeffs)[1024]; ///< coefficients for IMDCT 219 DECLARE_ALIGNED(16, float, coeffs)[1024]; ///< coefficients for IMDCT
218 DECLARE_ALIGNED_16(float, saved)[1024]; ///< overlap 220 DECLARE_ALIGNED(16, float, saved)[1024]; ///< overlap
219 DECLARE_ALIGNED_16(float, ret)[1024]; ///< PCM output 221 DECLARE_ALIGNED(16, float, ret)[2048]; ///< PCM output
220 PredictorState predictor_state[MAX_PREDICTORS]; 222 PredictorState predictor_state[MAX_PREDICTORS];
221 } SingleChannelElement; 223 } SingleChannelElement;
222 224
223 /** 225 /**
224 * channel element - generic struct for SCE/CPE/CCE/LFE 226 * channel element - generic struct for SCE/CPE/CCE/LFE
225 */ 227 */
226 typedef struct { 228 typedef struct {
227 // CPE specific 229 // CPE specific
228 int common_window; ///< Set if channels share a common 'IndividualCha nnelStream' in bitstream. 230 int common_window; ///< Set if channels share a common 'IndividualCha nnelStream' in bitstream.
229 int ms_mode; ///< Signals mid/side stereo flags coding mode (us ed by encoder) 231 int ms_mode; ///< Signals mid/side stereo flags coding mode (us ed by encoder)
230 uint8_t ms_mask[128]; ///< Set if mid/side stereo is used for each scale factor window band 232 uint8_t ms_mask[128]; ///< Set if mid/side stereo is used for each scale factor window band
231 // shared 233 // shared
232 SingleChannelElement ch[2]; 234 SingleChannelElement ch[2];
233 // CCE specific 235 // CCE specific
234 ChannelCoupling coup; 236 ChannelCoupling coup;
237 SpectralBandReplication sbr;
235 } ChannelElement; 238 } ChannelElement;
236 239
237 /** 240 /**
238 * main AAC context 241 * main AAC context
239 */ 242 */
240 typedef struct { 243 typedef struct {
241 AVCodecContext * avccontext; 244 AVCodecContext * avccontext;
242 245
243 MPEG4AudioConfig m4ac; 246 MPEG4AudioConfig m4ac;
244 247
245 int is_saved; ///< Set if elements have stored overlap from previous frame. 248 int is_saved; ///< Set if elements have stored overlap from previous frame.
246 DynamicRangeControl che_drc; 249 DynamicRangeControl che_drc;
247 250
248 /** 251 /**
249 * @defgroup elements Channel element related data. 252 * @defgroup elements Channel element related data.
250 * @{ 253 * @{
251 */ 254 */
252 enum ChannelPosition che_pos[4][MAX_ELEM_ID]; /**< channel element channel m apping with the 255 enum ChannelPosition che_pos[4][MAX_ELEM_ID]; /**< channel element channel m apping with the
253 * first index as the first 4 raw data block types 256 * first index as the first 4 raw data block types
254 */ 257 */
255 ChannelElement * che[4][MAX_ELEM_ID]; 258 ChannelElement * che[4][MAX_ELEM_ID];
256 ChannelElement * tag_che_map[4][MAX_ELEM_ID]; 259 ChannelElement * tag_che_map[4][MAX_ELEM_ID];
257 int tags_mapped; 260 int tags_mapped;
258 /** @} */ 261 /** @} */
259 262
260 /** 263 /**
261 * @defgroup temporary aligned temporary buffers (We do not want to have the se on the stack.) 264 * @defgroup temporary aligned temporary buffers (We do not want to have the se on the stack.)
262 * @{ 265 * @{
263 */ 266 */
264 DECLARE_ALIGNED_16(float, buf_mdct)[1024]; 267 DECLARE_ALIGNED(16, float, buf_mdct)[1024];
265 /** @} */ 268 /** @} */
266 269
267 /** 270 /**
268 * @defgroup tables Computed / set up during initialization. 271 * @defgroup tables Computed / set up during initialization.
269 * @{ 272 * @{
270 */ 273 */
271 FFTContext mdct; 274 FFTContext mdct;
272 FFTContext mdct_small; 275 FFTContext mdct_small;
273 DSPContext dsp; 276 DSPContext dsp;
274 int random_state; 277 int random_state;
275 /** @} */ 278 /** @} */
276 279
277 /** 280 /**
278 * @defgroup output Members used for output interleaving. 281 * @defgroup output Members used for output interleaving.
279 * @{ 282 * @{
280 */ 283 */
281 float *output_data[MAX_CHANNELS]; ///< Points to each elemen t's 'ret' buffer (PCM output). 284 float *output_data[MAX_CHANNELS]; ///< Points to each elemen t's 'ret' buffer (PCM output).
282 float add_bias; ///< offset for dsp.float_ to_int16 285 float add_bias; ///< offset for dsp.float_ to_int16
283 float sf_scale; ///< Pre-scale for correct IMDCT and dsp.float_to_int16. 286 float sf_scale; ///< Pre-scale for correct IMDCT and dsp.float_to_int16.
284 int sf_offset; ///< offset into pow2sf_ta b as appropriate for dsp.float_to_int16 287 int sf_offset; ///< offset into pow2sf_ta b as appropriate for dsp.float_to_int16
285 /** @} */ 288 /** @} */
286 289
287 DECLARE_ALIGNED(16, float, temp)[128]; 290 DECLARE_ALIGNED(16, float, temp)[128];
288 291
289 enum OCStatus output_configured; 292 enum OCStatus output_configured;
290 } AACContext; 293 } AACContext;
291 294
292 #endif /* AVCODEC_AAC_H */ 295 #endif /* AVCODEC_AAC_H */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698