FFmpeg
aacdec.h
Go to the documentation of this file.
1 /*
2  * AAC decoder definitions and structures
3  * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org )
4  * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com )
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 /**
24  * @file
25  * AAC decoder definitions and structures
26  * @author Oded Shimon ( ods15 ods15 dyndns org )
27  * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
28  */
29 
30 #ifndef AVCODEC_AAC_AACDEC_H
31 #define AVCODEC_AAC_AACDEC_H
32 
33 #include <stdint.h>
34 
36 #include "libavutil/float_dsp.h"
37 #include "libavutil/fixed_dsp.h"
38 #include "libavutil/mem_internal.h"
39 #include "libavutil/tx.h"
40 
41 #include "libavcodec/aac.h"
42 #include "libavcodec/avcodec.h"
43 #include "libavcodec/mpeg4audio.h"
44 
45 #include "aacdec_ac.h"
46 #include "aacdec_usac_mps212.h"
47 
48 typedef struct AACDecContext AACDecContext;
49 
50 /**
51  * Output configuration status
52  */
53 enum OCStatus {
54  OC_NONE, ///< Output unconfigured
55  OC_TRIAL_PCE, ///< Output configuration under trial specified by an inband PCE
56  OC_TRIAL_FRAME, ///< Output configuration under trial specified by a frame header
57  OC_GLOBAL_HDR, ///< Output configuration set in a global header but not yet locked
58  OC_LOCKED, ///< Output configuration locked in place
59 };
60 
64 };
65 
66 /**
67  * The point during decoding at which channel coupling is applied.
68  */
73 };
74 
80 };
81 
86 };
87 
94 };
95 
99 };
100 
105 };
106 
107 // Supposed to be equal to AAC_RENAME() in case of USE_FIXED.
108 #define RENAME_FIXED(name) name ## _fixed
109 
110 #define INTFLOAT_UNION(name, elems) \
111  union { \
112  int RENAME_FIXED(name) elems; \
113  float name elems; \
114  }
115 
116 #define INTFLOAT_ALIGNED_UNION(alignment, name, nb_elems) \
117  union { \
118  DECLARE_ALIGNED(alignment, int, RENAME_FIXED(name))[nb_elems]; \
119  DECLARE_ALIGNED(alignment, float, name)[nb_elems]; \
120  }
121 /**
122  * Long Term Prediction
123  */
124 typedef struct LongTermPrediction {
125  int8_t present;
126  int16_t lag;
127  INTFLOAT_UNION(coef,);
130 
131 /* Per channel core mode */
132 typedef struct AACUsacElemData {
133  uint8_t core_mode;
136 
137  /* Timewarping ratio */
138 #define NUM_TW_NODES 16
140 
141  struct {
142  uint8_t acelp_core_mode : 3;
143  uint8_t lpd_mode : 5;
144 
145  uint8_t bpf_control_info : 1;
146  uint8_t core_mode_last : 1;
147  uint8_t fac_data_present : 1;
148 
150  } ldp;
151 
152  struct {
153  unsigned int seed;
154  uint8_t level : 3;
155  uint8_t offset : 5;
156  } noise;
157 
158  struct {
159  uint8_t gain;
160  uint32_t kv[8 /* (1024 / 16) / 8 */][8];
161  } fac;
162 
165 
166 /**
167  * Individual Channel Stream
168  */
169 typedef struct IndividualChannelStream {
170  uint8_t max_sfb; ///< number of scalefactor bands per group
172  uint8_t use_kb_window[2]; ///< If set, use Kaiser-Bessel window, otherwise use a sine window.
174  int prev_num_window_groups; ///< Previous frame's number of window groups
175  uint8_t group_len[8];
177  const uint16_t *swb_offset; ///< table of offsets to the lowest spectral coefficient of a scalefactor band, sfb, for a particular window
178  int num_swb; ///< number of scalefactor window bands
184  uint8_t prediction_used[41];
185  uint8_t window_clipping[8]; ///< set if a certain window is near clipping
187 
188 /**
189  * Temporal Noise Shaping
190  */
191 typedef struct TemporalNoiseShaping {
192  int present;
193  int n_filt[8];
194  int length[8][4];
195  int direction[8][4];
196  int order[8][4];
199 
200 /**
201  * coupling parameters
202  */
203 typedef struct ChannelCoupling {
204  enum CouplingPoint coupling_point; ///< The point during decoding at which coupling is applied.
205  int num_coupled; ///< number of target elements
206  enum RawDataBlockType type[8]; ///< Type of channel element to be coupled - SCE or CPE.
207  int id_select[8]; ///< element id
208  int ch_select[8]; /**< [0] shared list of gains; [1] list of gains for right channel;
209  * [2] list of gains for left channel; [3] lists of gains for both channels
210  */
211  INTFLOAT_UNION(gain, [16][120]);
213 
214 /**
215  * Single Channel Element - used for both SCE and LFE elements.
216  */
217 typedef struct SingleChannelElement {
219  AACUsacElemData ue; ///< USAC element data
221  enum BandType band_type[128]; ///< band types
222  int sfo[128]; ///< scalefactor offsets
223  INTFLOAT_UNION(sf, [128]); ///< scalefactors (8 windows * 16 sfb max)
224  INTFLOAT_ALIGNED_UNION(32, coeffs, 1024); ///< coefficients for IMDCT, maybe processed
225  INTFLOAT_ALIGNED_UNION(32, prev_coeffs, 1024); ///< unscaled previous contents of coeffs[] for USAC
226  INTFLOAT_ALIGNED_UNION(32, saved, 1536); ///< overlap
227  INTFLOAT_ALIGNED_UNION(32, ret_buf, 2048); ///< PCM output buffer
228  INTFLOAT_ALIGNED_UNION(16, ltp_state, 3072); ///< time signal for LTP
229  union {
230  struct PredictorStateFixed *RENAME_FIXED(predictor_state);
232  };
233  union {
234  float *output; ///< PCM output
235  int *RENAME_FIXED(output); ///< PCM output
236  };
238 
239 typedef struct AACUsacMPSData {
240  /* Framing */
244 
245  /* OTT */
249 
250  /* SMG */
255 
256  /* TSD */
261 
263  int tsd_phase_data[64];
265 
266 typedef struct AACUsacStereo {
267  uint8_t common_window;
268  uint8_t common_tw;
269  uint8_t tns_on_lr; ///< Apply TNS before M/S and stereo prediction
270 
271  uint8_t ms_mask_mode;
272  uint8_t config_idx;
273 
274  /* Complex prediction */
275  uint8_t use_prev_frame;
276  uint8_t pred_dir;
277  uint8_t complex_coef;
278 
279  uint8_t pred_used[128];
280 
282 
283  INTFLOAT_ALIGNED_UNION(32, alpha_q_re, 1024);
284  INTFLOAT_ALIGNED_UNION(32, alpha_q_im, 1024);
285  INTFLOAT_ALIGNED_UNION(32, prev_alpha_q_re, 1024);
286  INTFLOAT_ALIGNED_UNION(32, prev_alpha_q_im, 1024);
287 
288  INTFLOAT_ALIGNED_UNION(32, dmix_re, 1024);
289  INTFLOAT_ALIGNED_UNION(32, prev_dmix_re, 1024); /* Recalculated on every frame */
290  INTFLOAT_ALIGNED_UNION(32, dmix_im, 1024); /* Final prediction data */
291 } AACUsacStereo;
292 
293 /**
294  * channel element - generic struct for SCE/CPE/CCE/LFE
295  */
296 typedef struct ChannelElement {
297  int present;
298  // CPE specific
299  uint8_t max_sfb_ste; ///< (USAC) Maximum of both max_sfb values
300  uint8_t ms_mask[128]; ///< Set if mid/side stereo is used for each scalefactor window band
301  // shared
303  // CCE specific
305  // USAC stereo coupling data
308 
309 typedef struct AACUSACLoudnessInfo {
310  uint8_t drc_set_id : 6;
311  uint8_t downmix_id : 7;
312  struct {
313  uint16_t lvl : 12;
314  uint8_t present : 1;
315  } sample_peak;
316 
317  struct {
318  uint16_t lvl : 12;
319  uint8_t measurement : 4;
320  uint8_t reliability : 2;
321  uint8_t present : 1;
322  } true_peak;
323 
324  uint8_t nb_measurements : 4;
325  struct {
326  uint8_t method_def : 4;
327  uint8_t method_val;
328  uint8_t measurement : 4;
329  uint8_t reliability : 2;
330  } measurements[16];
332 
333 typedef struct AACUsacElemConfig {
335 
336  uint8_t tw_mdct : 1;
337  uint8_t noise_fill : 1;
338 
340 
341  struct {
342  int ratio;
343 
344  uint8_t harmonic_sbr : 1; /* harmonicSBR */
345  uint8_t bs_intertes : 1; /* bs_interTes */
346  uint8_t bs_pvc : 1; /* bs_pvc */
347 
348  struct {
349  uint8_t start_freq; /* dflt_start_freq */
350  uint8_t stop_freq; /* dflt_stop_freq */
351 
352  uint8_t freq_scale; /* dflt_freq_scale */
353  uint8_t alter_scale : 1; /* dflt_alter_scale */
354  uint8_t noise_bands; /* dflt_noise_bands */
355 
356  uint8_t limiter_bands; /* dflt_limiter_bands */
357  uint8_t limiter_gains; /* dflt_limiter_gains */
358  uint8_t interpol_freq : 1; /* dflt_interpol_freq */
359  uint8_t smoothing_mode : 1; /* dflt_smoothing_mode */
360  } dflt;
361  } sbr;
362 
363  struct {
364  uint8_t freq_res; /* bsFreqRes */
365  uint8_t fixed_gain; /* bsFixedGainDMX */
366  uint8_t temp_shape_config; /* bsTempShapeConfig */
367  uint8_t decorr_config; /* bsDecorrConfig */
368  uint8_t high_rate_mode : 1; /* bsHighRateMode */
369  uint8_t phase_coding : 1; /* bsPhaseCoding */
370 
371  uint8_t otts_bands_phase_present; /* bsOttBandsPhasePresent */
372  uint8_t otts_bands_phase; /* bsOttBandsPhase */
373  uint8_t residual_coding; /* bsResidualCoding */
374  uint8_t residual_bands; /* bsResidualBands */
375  uint8_t pseudo_lr : 1; /* bsPseudoLr */
376  uint8_t env_quant_mode : 1; /* bsEnvQuantMode */
377  } mps;
378 
379  struct {
381  uint8_t payload_frag;
382  uint32_t default_len;
383  uint32_t pl_data_offset;
384  uint8_t *pl_buf;
385  } ext;
386 
387  struct {
388  struct {
389  int lower;
390  int upper;
391  } loudness;
392  } drc;
394 
395 typedef struct AACUSACConfig {
396  uint8_t core_sbr_frame_len_idx; /* coreSbrFrameLengthIndex */
397  uint16_t core_frame_len;
399 
401  int nb_elems;
402 
403  struct {
404  uint8_t nb_album;
406  uint8_t nb_info;
408 
409  /**
410  * Raw bsMethodValue (μ) of the program/anchor-loudness measurement
411  * selected for normalization at config time. -1 == none found.
412  * L_LKFS = -57.75 + 0.25 * input_method_val.
413  */
415  } loudness;
416 } AACUSACConfig;
417 
418 typedef struct OutputConfiguration {
420  uint8_t layout_map[MAX_ELEM_ID*4][3];
426 
427 /**
428  * Dynamic Range Control - decoded from the bitstream but not processed further.
429  */
430 typedef struct DynamicRangeControl {
431  int pce_instance_tag; ///< Indicates with which program the DRC info is associated.
432  int dyn_rng_sgn[17]; ///< DRC sign information; 0 - positive, 1 - negative
433  int dyn_rng_ctl[17]; ///< DRC magnitude information
434  int exclude_mask[MAX_CHANNELS]; ///< Channels to be excluded from DRC processing.
435  int band_incr; ///< Number of DRC bands greater than 1 having DRC info.
436  int interpolation_scheme; ///< Indicates the interpolation scheme used in the SBR QMF domain.
437  int band_top[17]; ///< Indicates the top of the i-th DRC band in units of 4 spectral lines.
438  int prog_ref_level; /**< A reference level for the long-term program audio level for all
439  * channels combined.
440  */
442 
443 /**
444  * Decode-specific primitives
445  */
446 typedef struct AACDecProc {
448  GetBitContext *gb,
449  const Pulse *pulse,
450  SingleChannelElement *sce);
451 
453 
454  int (*sbr_ctx_alloc_init)(AACDecContext *ac, ChannelElement **che, int id_aac);
456  GetBitContext *gb, int crc, int cnt, int id_aac, int fl960);
457  void (*sbr_apply)(AACDecContext *ac, ChannelElement *che, int id_aac, int fl960,
458  void /* INTFLOAT */ *L, void /* INTFLOAT */ *R);
460 } AACDecProc;
461 
462 /**
463  * DSP-specific primitives
464  */
465 typedef struct AACDecDSP {
467 
470  int ms_present);
471 
472  void (*apply_tns)(void *_coef_param, TemporalNoiseShaping *tns,
473  IndividualChannelStream *ics, int decode);
474 
477 
479 
481  SingleChannelElement *target,
482  ChannelElement *cce, int index);
484  SingleChannelElement *target,
485  ChannelElement *cce, int index);
486 
492 
493  void (*clip_output)(AACDecContext *ac, ChannelElement *che, int type, int samples);
494 } AACDecDSP;
495 
496 /**
497  * main AAC decoding context
498  */
500  const struct AVClass *class;
502 
505 
506  struct AVFrame *frame;
507 
508  int is_saved; ///< Set if elements have stored overlap from previous frame.
510 
511  /**
512  * @name Channel element related data
513  * @{
514  */
519  /** @} */
520 
521  /**
522  * @name temporary aligned temporary buffers
523  * (We do not want to have these on the stack.)
524  * @{
525  */
526  INTFLOAT_ALIGNED_UNION(32, buf_mdct, 1024);
527  INTFLOAT_ALIGNED_UNION(32, temp, 128);
528  /** @} */
529 
530  /**
531  * @name Computed / set up during initialization
532  * @{
533  */
543 
553  union {
556  };
558  /** @} */
559 
560  /**
561  * @name Members used for output
562  * @{
563  */
564  SingleChannelElement *output_element[MAX_CHANNELS]; ///< Points to each SingleChannelElement
565  /** @} */
566 
567 
568  /**
569  * @name Japanese DTV specific extension
570  * @{
571  */
572  int force_dmono_mode;///< 0->not dmono, 1->use first channel, 2->use second channel
573  int dmono_mode; ///< 0->not dmono, 1->use first channel, 2->use second channel
574  /** @} */
575 
577 
578  /**
579  * Target output loudness in dBFS, used for xHE-AAC loudness normalization
580  * based on the parsed loudnessInfoSet() metadata. 0 disables normalization.
581  */
584 
587  unsigned warned_71_wide;
590 
591  int is_fixed;
592 };
593 
594 #if defined(USE_FIXED) && USE_FIXED
595 #define fdsp RENAME_FIXED(fdsp)
596 #endif
597 
601 
603  GetBitContext *gb, int common_window, int scale_flag);
604 
606  GetBitContext *gb, const IndividualChannelStream *ics);
607 
609  uint8_t (*layout_map)[3],
610  int *tags,
611  int channel_config);
612 
614  uint8_t layout_map[MAX_ELEM_ID * 4][3], int tags,
615  enum OCStatus oc_type, int get_new_frame);
616 
617 ChannelElement *ff_aac_get_che(AACDecContext *ac, int type, int elem_id);
618 
619 #endif /* AVCODEC_AAC_AACDEC_H */
ChannelCoupling::type
enum RawDataBlockType type[8]
Type of channel element to be coupled - SCE or CPE.
Definition: aacdec.h:206
AACUsacMPSData::nb_param_sets
int nb_param_sets
Definition: aacdec.h:242
CouplingPoint
CouplingPoint
The point during decoding at which channel coupling is applied.
Definition: aacdec.h:69
MAX_ELEM_ID
#define MAX_ELEM_ID
Definition: aac.h:34
AACUsacElemConfig::stereo_config_index
uint8_t stereo_config_index
Definition: aacdec.h:339
AACUsacStereo::tns_on_lr
uint8_t tns_on_lr
Apply TNS before M/S and stereo prediction.
Definition: aacdec.h:269
AACUsacElemData::ac
AACArithState ac
Definition: aacdec.h:163
AACDecProc::decode_spectrum_and_dequant
int(* decode_spectrum_and_dequant)(AACDecContext *ac, GetBitContext *gb, const Pulse *pulse, SingleChannelElement *sce)
Definition: aacdec.h:447
AACUSACConfig::input_method_val
int input_method_val
Raw bsMethodValue (μ) of the program/anchor-loudness measurement selected for normalization at config...
Definition: aacdec.h:414
AACUsacElemData::offset
uint8_t offset
Definition: aacdec.h:155
AACUsacElemConfig::limiter_gains
uint8_t limiter_gains
Definition: aacdec.h:357
AACDecContext::mdct960_fn
av_tx_fn mdct960_fn
Definition: aacdec.h:550
AACOutputChannelOrder
AACOutputChannelOrder
Definition: aacdec.h:61
SingleChannelElement::predictor_state
struct PredictorState * predictor_state
Definition: aacdec.h:231
BETWEEN_TNS_AND_IMDCT
@ BETWEEN_TNS_AND_IMDCT
Definition: aacdec.h:71
AACDecDSP::apply_intensity_stereo
void(* apply_intensity_stereo)(AACDecContext *ac, ChannelElement *cpe, int ms_present)
Definition: aacdec.h:469
aacdec_ac.h
AACUSACConfig
Definition: aacdec.h:395
ID_EXT_ELE_SAOC
@ ID_EXT_ELE_SAOC
Definition: aacdec.h:91
mem_internal.h
AACDecContext::mdct1024_fn
av_tx_fn mdct1024_fn
Definition: aacdec.h:551
AACUSACConfig::stream_identifier
uint16_t stream_identifier
Definition: aacdec.h:398
AACUSACConfig::nb_album
uint8_t nb_album
Definition: aacdec.h:404
AACDecContext::warned_he_aac_mono
int warned_he_aac_mono
Definition: aacdec.h:589
AACDecContext::mdct96
AVTXContext * mdct96
Definition: aacdec.h:534
AACUsacElemConfig::payload_frag
uint8_t payload_frag
Definition: aacdec.h:381
AACUsacMPSData::temp_shape_data
int16_t temp_shape_data[MPS_MAX_TIME_SLOTS]
Definition: aacdec.h:260
AACUsacStereo::mps
AACUsacMPSData mps
Definition: aacdec.h:281
MPS_MAX_TIME_SLOTS
#define MPS_MAX_TIME_SLOTS
Definition: aac.h:41
LongTermPrediction::INTFLOAT_UNION
INTFLOAT_UNION(coef,)
AVTXContext
Definition: tx_priv.h:235
AACDecProc::sbr_ctx_alloc_init
int(* sbr_ctx_alloc_init)(AACDecContext *ac, ChannelElement **che, int id_aac)
Definition: aacdec.h:454
ID_USAC_LFE
@ ID_USAC_LFE
Definition: aacdec.h:78
AACDecContext::mdct768
AVTXContext * mdct768
Definition: aacdec.h:539
AACUsacElemConfig::tw_mdct
uint8_t tw_mdct
Definition: aacdec.h:336
OC_TRIAL_PCE
@ OC_TRIAL_PCE
Output configuration under trial specified by an inband PCE.
Definition: aacdec.h:55
AACUsacElemData::acelp_core_mode
uint8_t acelp_core_mode
Definition: aacdec.h:142
AVFrame
This structure describes decoded (raw) audio or video data.
Definition: frame.h:466
aacdec_usac_mps212.h
AACUsacMPSData
Definition: aacdec.h:239
AACDecContext::mdct960
AVTXContext * mdct960
Definition: aacdec.h:540
AACUsacStereo::config_idx
uint8_t config_idx
Definition: aacdec.h:272
R
#define R
Definition: huffyuv.h:44
TemporalNoiseShaping::present
int present
Definition: aacdec.h:192
AACUsacElemData::scale_factor_grouping
uint8_t scale_factor_grouping
Definition: aacdec.h:134
AACDecContext::tag_che_map
ChannelElement * tag_che_map[4][MAX_ELEM_ID]
Definition: aacdec.h:516
AACUSACConfig::nb_info
uint8_t nb_info
Definition: aacdec.h:406
AVFixedDSPContext
Definition: fixed_dsp.h:55
LongTermPrediction::used
int8_t used[MAX_LTP_LONG_SFB]
Definition: aacdec.h:128
AACUSACLoudnessInfo::measurement
uint8_t measurement
Definition: aacdec.h:319
AACDecDSP::apply_tns
void(* apply_tns)(void *_coef_param, TemporalNoiseShaping *tns, IndividualChannelStream *ics, int decode)
Definition: aacdec.h:472
AACUsacElemConfig::noise_bands
uint8_t noise_bands
Definition: aacdec.h:354
AACDecContext::warned_remapping_once
int warned_remapping_once
Definition: aacdec.h:518
AACDecContext::proc
AACDecProc proc
Definition: aacdec.h:504
AACUsacElemConfig::bs_pvc
uint8_t bs_pvc
Definition: aacdec.h:346
AACUsacStereo::pred_dir
uint8_t pred_dir
Definition: aacdec.h:276
AACDecContext::mdct512_fn
av_tx_fn mdct512_fn
Definition: aacdec.h:548
AACDecDSP::apply_prediction
void(* apply_prediction)(AACDecContext *ac, SingleChannelElement *sce)
Definition: aacdec.h:478
AACUsacElemData::tns_data_present
uint8_t tns_data_present
Definition: aacdec.h:135
ChannelElement::ch
SingleChannelElement ch[2]
Definition: aacdec.h:302
AACUsacElemConfig::dflt
struct AACUsacElemConfig::@29::@33 dflt
AACUsacElemData::level
uint8_t level
Definition: aacdec.h:154
ChannelElement::present
int present
Definition: aacdec.h:297
ID_CONFIG_EXT_STREAM_ID
@ ID_CONFIG_EXT_STREAM_ID
Definition: aacdec.h:85
ID_USAC_EXT
@ ID_USAC_EXT
Definition: aacdec.h:79
ff_aac_decode_init_float
int ff_aac_decode_init_float(AVCodecContext *avctx)
Definition: aacdec_float.c:164
AACDecContext::dmono_mode
int dmono_mode
0->not dmono, 1->use first channel, 2->use second channel
Definition: aacdec.h:573
MPEG4AudioConfig
Definition: mpeg4audio.h:29
DynamicRangeControl
Dynamic Range Control - decoded from the bitstream but not processed further.
Definition: aacdec.h:430
AACUsacElemConfig::pseudo_lr
uint8_t pseudo_lr
Definition: aacdec.h:375
IndividualChannelStream::num_swb
int num_swb
number of scalefactor window bands
Definition: aacdec.h:178
ff_aac_decode_init_fixed
int ff_aac_decode_init_fixed(AVCodecContext *avctx)
Dequantization-related.
Definition: aacdec_fixed.c:87
ChannelCoupling::INTFLOAT_UNION
INTFLOAT_UNION(gain, [16][120])
ChannelCoupling::coupling_point
enum CouplingPoint coupling_point
The point during decoding at which coupling is applied.
Definition: aacdec.h:204
SingleChannelElement::coeffs
float coeffs[1024]
coefficients for IMDCT, maybe processed
Definition: aacenc.h:119
AACUsacElemData::core_mode
uint8_t core_mode
Definition: aacdec.h:133
AACDecContext::force_dmono_mode
int force_dmono_mode
0->not dmono, 1->use first channel, 2->use second channel
Definition: aacdec.h:572
AACDecContext::mdct480
AVTXContext * mdct480
Definition: aacdec.h:537
mpeg4audio.h
AACUsacElemConfig::ext
struct AACUsacElemConfig::@31 ext
AACUsacElemConfig::interpol_freq
uint8_t interpol_freq
Definition: aacdec.h:358
AACUsacElemData::gain
uint8_t gain
Definition: aacdec.h:159
ChannelElement::coup
ChannelCoupling coup
Definition: aacdec.h:304
ChannelCoupling::id_select
int id_select[8]
element id
Definition: aacdec.h:207
SingleChannelElement::ret_buf
float ret_buf[2048]
PCM output buffer.
Definition: aacenc.h:120
ID_EXT_ELE_AUDIOPREROLL
@ ID_EXT_ELE_AUDIOPREROLL
Definition: aacdec.h:92
AACDecContext::warned_71_wide
unsigned warned_71_wide
Definition: aacdec.h:587
AACUSACConfig::loudness
struct AACUSACConfig::@35 loudness
MPS_MAX_PARAM_BANDS
#define MPS_MAX_PARAM_BANDS
Definition: aac.h:40
GetBitContext
Definition: get_bits.h:109
AACUSACLoudnessInfo::method_def
uint8_t method_def
Definition: aacdec.h:326
IndividualChannelStream::window_clipping
uint8_t window_clipping[8]
set if a certain window is near clipping
Definition: aacdec.h:185
AACDecContext::tags_mapped
int tags_mapped
Definition: aacdec.h:517
AACUsacElemConfig::high_rate_mode
uint8_t high_rate_mode
Definition: aacdec.h:368
OutputConfiguration::status
enum OCStatus status
Definition: aacdec.h:423
type
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
Definition: writing_filters.txt:86
AACUsacElemConfig::freq_res
uint8_t freq_res
Definition: aacdec.h:364
IndividualChannelStream::prediction_used
uint8_t prediction_used[41]
Definition: aacdec.h:184
AACDecContext::che_drc
DynamicRangeControl che_drc
Definition: aacdec.h:509
MAX_LTP_LONG_SFB
#define MAX_LTP_LONG_SFB
Definition: aac.h:37
SingleChannelElement::ics
IndividualChannelStream ics
Definition: aacdec.h:218
AACUsacMPSData::smooth_time
int smooth_time[MPS_MAX_PARAM_SETS]
Definition: aacdec.h:252
AACDecContext::mdct480_fn
av_tx_fn mdct480_fn
Definition: aacdec.h:547
AACUsacElemConfig::pl_data_offset
uint32_t pl_data_offset
Definition: aacdec.h:383
ID_CONFIG_EXT_FILL
@ ID_CONFIG_EXT_FILL
Definition: aacdec.h:83
AACUsacElemConfig
Definition: aacdec.h:333
AACUsacElemData::kv
uint32_t kv[8][8]
Definition: aacdec.h:160
AACUsacMPSData::param_sets
int param_sets[MPS_MAX_PARAM_SETS]
Definition: aacdec.h:243
AACUsacElemData::last_lpd_mode
int last_lpd_mode
Definition: aacdec.h:149
AACDecDSP::dequant_scalefactors
void(* dequant_scalefactors)(SingleChannelElement *sce)
Definition: aacdec.h:466
AACUsacElemConfig::residual_bands
uint8_t residual_bands
Definition: aacdec.h:374
DynamicRangeControl::exclude_mask
int exclude_mask[MAX_CHANNELS]
Channels to be excluded from DRC processing.
Definition: aacdec.h:434
av_tx_fn
void(* av_tx_fn)(AVTXContext *s, void *out, void *in, ptrdiff_t stride)
Function pointer to a function to perform the transform.
Definition: tx.h:151
ff_aac_decode_init
int ff_aac_decode_init(AVCodecContext *avctx)
Definition: aacdec.c:1298
OC_GLOBAL_HDR
@ OC_GLOBAL_HDR
Output configuration set in a global header but not yet locked.
Definition: aacdec.h:57
AACDecContext::mdct_ltp
AVTXContext * mdct_ltp
Definition: aacdec.h:542
decode
static void decode(AVCodecContext *dec_ctx, AVPacket *pkt, AVFrame *frame, FILE *outfile)
Definition: decode_audio.c:72
AACUsacElemData::core_mode_last
uint8_t core_mode_last
Definition: aacdec.h:146
AACUsacElemConfig::harmonic_sbr
uint8_t harmonic_sbr
Definition: aacdec.h:344
AACDecDSP::apply_mid_side_stereo
void(* apply_mid_side_stereo)(AACDecContext *ac, ChannelElement *cpe)
Definition: aacdec.h:468
AACUSACDRCExt
AACUSACDRCExt
Definition: aacdec.h:101
ChannelCoupling::num_coupled
int num_coupled
number of target elements
Definition: aacdec.h:205
AACUsacMPSData::tsd_phase_data
int tsd_phase_data[64]
Definition: aacdec.h:263
AACUsacMPSData::tsd_num_tr_slots
int tsd_num_tr_slots
Definition: aacdec.h:262
TemporalNoiseShaping::direction
int direction[8][4]
Definition: aacdec.h:195
AACUsacElemConfig::mps
struct AACUsacElemConfig::@30 mps
AACDecProc::decode_cce
int(* decode_cce)(AACDecContext *ac, GetBitContext *gb, ChannelElement *che)
Definition: aacdec.h:452
AACUsacMPSData::tsd_enable
bool tsd_enable
Definition: aacdec.h:257
PredictorState
Predictor State.
Definition: aac_defines.h:130
AACUsacElemData
Definition: aacdec.h:132
AACDecDSP::imdct_and_windowing_ld
void(* imdct_and_windowing_ld)(AACDecContext *ac, SingleChannelElement *sce)
Definition: aacdec.h:490
AACUsacStereo::ms_mask_mode
uint8_t ms_mask_mode
Definition: aacdec.h:271
LongTermPrediction::present
int8_t present
Definition: aacdec.h:125
AACUSACConfig::core_sbr_frame_len_idx
uint8_t core_sbr_frame_len_idx
Definition: aacdec.h:396
fixed_dsp.h
ExtensionHeaderType
ExtensionHeaderType
Definition: aacdec.h:82
IndividualChannelStream
Individual Channel Stream.
Definition: aacdec.h:169
AACDecContext::che
ChannelElement * che[4][MAX_ELEM_ID]
Definition: aacdec.h:515
UNIDRCLOUDEXT_TERM
@ UNIDRCLOUDEXT_TERM
Definition: aacdec.h:97
ID_USAC_CPE
@ ID_USAC_CPE
Definition: aacdec.h:77
AACUSACLoudnessInfo::measurements
struct AACUSACLoudnessInfo::@28 measurements[16]
AACDecContext::fdsp
AVFloatDSPContext * fdsp
Definition: aacdec.h:555
AACDecContext::warned_num_aac_frames
int warned_num_aac_frames
Definition: aacdec.h:586
AACDecProc::sbr_apply
void(* sbr_apply)(AACDecContext *ac, ChannelElement *che, int id_aac, int fl960, void *L, void *R)
Definition: aacdec.h:457
UNIDRCCONFEXT_V1
@ UNIDRCCONFEXT_V1
Definition: aacdec.h:104
AVClass
Describe the class of an AVClass context structure.
Definition: log.h:76
AACDecContext::mdct96_fn
av_tx_fn mdct96_fn
Definition: aacdec.h:544
AACDecContext::target_level
int target_level
Target output loudness in dBFS, used for xHE-AAC loudness normalization based on the parsed loudnessI...
Definition: aacdec.h:582
AACUsacMPSData::ott
AACMPSLosslessData ott[MPS_ELE_NB]
Definition: aacdec.h:246
AACUsacElemData::seed
unsigned int seed
Definition: aacdec.h:153
AACUSACConfig::core_frame_len
uint16_t core_frame_len
Definition: aacdec.h:397
IndividualChannelStream::use_kb_window
uint8_t use_kb_window[2]
If set, use Kaiser-Bessel window, otherwise use a sine window.
Definition: aacdec.h:172
IndividualChannelStream::num_window_groups
int num_window_groups
Definition: aacdec.h:173
BEFORE_TNS
@ BEFORE_TNS
Definition: aacdec.h:70
ChannelElement::ms_mask
uint8_t ms_mask[128]
Set if mid/side stereo is used for each scalefactor window band.
Definition: aacdec.h:300
aac.h
IndividualChannelStream::predictor_present
int predictor_present
Definition: aacdec.h:181
DynamicRangeControl::band_top
int band_top[17]
Indicates the top of the i-th DRC band in units of 4 spectral lines.
Definition: aacdec.h:437
AACUsacElemConfig::noise_fill
uint8_t noise_fill
Definition: aacdec.h:337
AACUSACLoudnessInfo::drc_set_id
uint8_t drc_set_id
Definition: aacdec.h:310
AACUSACLoudnessInfo::lvl
uint16_t lvl
Definition: aacdec.h:313
SingleChannelElement::INTFLOAT_UNION
INTFLOAT_UNION(sf, [128])
scalefactors (8 windows * 16 sfb max)
AACUsacElemConfig::temp_shape_config
uint8_t temp_shape_config
Definition: aacdec.h:366
AACUSACLoudnessInfo::method_val
uint8_t method_val
Definition: aacdec.h:327
TNS_MAX_ORDER
#define TNS_MAX_ORDER
Definition: aac.h:36
AACDecContext::mdct120
AVTXContext * mdct120
Definition: aacdec.h:535
AACUsacStereo
Definition: aacdec.h:266
OC_LOCKED
@ OC_LOCKED
Output configuration locked in place.
Definition: aacdec.h:58
index
int index
Definition: gxfenc.c:90
IndividualChannelStream::prev_num_window_groups
int prev_num_window_groups
Previous frame's number of window groups.
Definition: aacdec.h:174
AACUsacElemConfig::default_len
uint32_t default_len
Definition: aacdec.h:382
float_dsp.h
OutputConfiguration::layout_map_tags
int layout_map_tags
Definition: aacdec.h:421
SingleChannelElement::ue
AACUsacElemData ue
USAC element data.
Definition: aacdec.h:219
AACUsacExtension
AACUsacExtension
Definition: aacdec.h:88
AACDecDSP
DSP-specific primitives.
Definition: aacdec.h:465
OutputConfiguration::layout_map
uint8_t layout_map[MAX_ELEM_ID *4][3]
Definition: aacdec.h:420
AACDecDSP::update_ltp
void(* update_ltp)(AACDecContext *ac, SingleChannelElement *sce)
Definition: aacdec.h:476
AACUsacMPSData::smg_data
bool smg_data[MPS_MAX_PARAM_SETS][MPS_MAX_PARAM_BANDS]
Definition: aacdec.h:254
AACUsacElemConfig::sbr
struct AACUsacElemConfig::@29 sbr
AACDecDSP::apply_independent_coupling
void(* apply_independent_coupling)(AACDecContext *ac, SingleChannelElement *target, ChannelElement *cce, int index)
Definition: aacdec.h:483
AACUsacElemConfig::bs_intertes
uint8_t bs_intertes
Definition: aacdec.h:345
ff_aac_get_che
ChannelElement * ff_aac_get_che(AACDecContext *ac, int type, int elem_id)
Definition: aacdec.c:623
IndividualChannelStream::window_sequence
enum WindowSequence window_sequence[2]
Definition: aacdec.h:171
AACUsacMPSData::ott_idx
int ott_idx[MPS_ELE_NB][MPS_MAX_PARAM_SETS][MPS_MAX_PARAM_BANDS]
Definition: aacdec.h:247
AACDecContext::dsp
AACDecDSP dsp
Definition: aacdec.h:503
AACDecDSP::clip_output
void(* clip_output)(AACDecContext *ac, ChannelElement *che, int type, int samples)
Definition: aacdec.h:493
MPS_ELE_NB
@ MPS_ELE_NB
Definition: aacdec_usac_mps212.h:34
MPS_MAX_PARAM_SETS
#define MPS_MAX_PARAM_SETS
Definition: aac.h:39
OC_NONE
@ OC_NONE
Output unconfigured.
Definition: aacdec.h:54
AACDecDSP::apply_dependent_coupling
void(* apply_dependent_coupling)(AACDecContext *ac, SingleChannelElement *target, ChannelElement *cce, int index)
Definition: aacdec.h:480
AACUsacElemConfig::otts_bands_phase_present
uint8_t otts_bands_phase_present
Definition: aacdec.h:371
AACUsacMPSData::framing_type
int framing_type
Definition: aacdec.h:241
AVChannelLayout
An AVChannelLayout holds information about the channel layout of audio data.
Definition: channel_layout.h:319
AACDecContext::mdct1024
AVTXContext * mdct1024
Definition: aacdec.h:541
BandType
BandType
Definition: aac.h:70
AACDecDSP::imdct_and_windowing
void(* imdct_and_windowing)(AACDecContext *ac, SingleChannelElement *sce)
Definition: aacdec.h:487
ChannelElement::max_sfb_ste
uint8_t max_sfb_ste
(USAC) Maximum of both max_sfb values
Definition: aacdec.h:299
OCStatus
OCStatus
Output configuration status.
Definition: aacdec.h:53
AACUsacElem
AACUsacElem
Definition: aacdec.h:75
SingleChannelElement::sfo
int sfo[128]
scalefactor offsets
Definition: aacdec.h:222
AACDecContext::warned_loudness_missing
int warned_loudness_missing
Definition: aacdec.h:583
DynamicRangeControl::prog_ref_level
int prog_ref_level
A reference level for the long-term program audio level for all channels combined.
Definition: aacdec.h:438
AACUSACLoudnessInfo::nb_measurements
uint8_t nb_measurements
Definition: aacdec.h:324
AACDecContext::output_element
SingleChannelElement * output_element[MAX_CHANNELS]
Points to each SingleChannelElement.
Definition: aacdec.h:564
ChannelElement::us
AACUsacStereo us
Definition: aacdec.h:306
AVFloatDSPContext
Definition: float_dsp.h:24
AACDecContext::output_channel_order
enum AACOutputChannelOrder output_channel_order
Definition: aacdec.h:576
OutputConfiguration
Definition: aacdec.h:418
AACUSACLoudnessInfo::present
uint8_t present
Definition: aacdec.h:314
AACUsacMPSData::freq_res_stride_smg
int freq_res_stride_smg[MPS_MAX_PARAM_SETS]
Definition: aacdec.h:253
AACMPSLosslessData
Definition: aacdec_usac_mps212.h:37
AACDecContext::INTFLOAT_ALIGNED_UNION
INTFLOAT_ALIGNED_UNION(32, buf_mdct, 1024)
AACUsacElemConfig::stop_freq
uint8_t stop_freq
Definition: aacdec.h:350
AACUsacElemData::noise
struct AACUsacElemData::@20 noise
SingleChannelElement::band_type
enum BandType band_type[128]
band types
Definition: aacdec.h:221
MAX_CHANNELS
#define MAX_CHANNELS
Definition: aac.h:33
AACDecContext::mdct128
AVTXContext * mdct128
Definition: aacdec.h:536
DynamicRangeControl::dyn_rng_ctl
int dyn_rng_ctl[17]
DRC magnitude information.
Definition: aacdec.h:433
AACUsacElemConfig::fixed_gain
uint8_t fixed_gain
Definition: aacdec.h:365
ID_CONFIG_EXT_LOUDNESS_INFO
@ ID_CONFIG_EXT_LOUDNESS_INFO
Definition: aacdec.h:84
AACUSACLoudnessInfo::sample_peak
struct AACUSACLoudnessInfo::@26 sample_peak
AACDecDSP::apply_ltp
void(* apply_ltp)(AACDecContext *ac, SingleChannelElement *sce)
Definition: aacdec.h:475
SingleChannelElement::output
float * output
PCM output.
Definition: aacdec.h:234
AACDecContext::mdct768_fn
av_tx_fn mdct768_fn
Definition: aacdec.h:549
AACDecDSP::imdct_and_windowing_960
void(* imdct_and_windowing_960)(AACDecContext *ac, SingleChannelElement *sce)
Definition: aacdec.h:489
ff_aac_decode_tns
int ff_aac_decode_tns(AACDecContext *ac, TemporalNoiseShaping *tns, GetBitContext *gb, const IndividualChannelStream *ics)
Decode Temporal Noise Shaping data; reference: table 4.48.
Definition: aacdec.c:1678
ff_aac_output_configure
int ff_aac_output_configure(AACDecContext *ac, uint8_t layout_map[MAX_ELEM_ID *4][3], int tags, enum OCStatus oc_type, int get_new_frame)
Configure output channel order based on the current program configuration element.
Definition: aacdec.c:487
ff_aac_decode_ics
int ff_aac_decode_ics(AACDecContext *ac, SingleChannelElement *sce, GetBitContext *gb, int common_window, int scale_flag)
Decode an individual_channel_stream payload; reference: table 4.44.
Definition: aacdec.c:1785
AACUsacStereo::pred_used
uint8_t pred_used[128]
Definition: aacdec.h:279
AACUSACLoudnessInfo::downmix_id
uint8_t downmix_id
Definition: aacdec.h:311
ff_aac_set_default_channel_config
int ff_aac_set_default_channel_config(AACDecContext *ac, AVCodecContext *avctx, uint8_t(*layout_map)[3], int *tags, int channel_config)
Set up channel positions based on a default channel configuration as specified in table 1....
Definition: aacdec.c:583
CHANNEL_ORDER_CODED
@ CHANNEL_ORDER_CODED
Definition: aacdec.h:63
RawDataBlockType
RawDataBlockType
Definition: aac.h:43
SingleChannelElement
Single Channel Element - used for both SCE and LFE elements.
Definition: aacdec.h:217
AACDecContext::is_fixed
int is_fixed
Definition: aacdec.h:591
IndividualChannelStream::num_windows
int num_windows
Definition: aacdec.h:179
OutputConfiguration::usac
AACUSACConfig usac
Definition: aacdec.h:424
AACDecContext::warned_gain_control
int warned_gain_control
Definition: aacdec.h:588
AACDecContext::random_state
int random_state
Definition: aacdec.h:557
AACUsacElemConfig::drc
struct AACUsacElemConfig::@32 drc
ChannelElement
channel element - generic struct for SCE/CPE/CCE/LFE
Definition: aacdec.h:296
IndividualChannelStream::swb_offset
const uint16_t * swb_offset
table of offsets to the lowest spectral coefficient of a scalefactor band, sfb, for a particular wind...
Definition: aacdec.h:177
AACUsacElemConfig::type
enum AACUsacElem type
Definition: aacdec.h:334
RENAME_FIXED
#define RENAME_FIXED(name)
Definition: aacdec.h:108
LongTermPrediction::lag
int16_t lag
Definition: aacdec.h:126
AACUsacElemConfig::decorr_config
uint8_t decorr_config
Definition: aacdec.h:367
TemporalNoiseShaping::order
int order[8][4]
Definition: aacdec.h:196
NUM_TW_NODES
#define NUM_TW_NODES
Definition: aacdec.h:138
AACUsacStereo::use_prev_frame
uint8_t use_prev_frame
Definition: aacdec.h:275
AACDecContext::oc
OutputConfiguration oc[2]
Definition: aacdec.h:585
AACUsacStereo::common_tw
uint8_t common_tw
Definition: aacdec.h:268
IndividualChannelStream::tns_max_bands
int tns_max_bands
Definition: aacdec.h:180
TemporalNoiseShaping::length
int length[8][4]
Definition: aacdec.h:194
AACDecDSP::imdct_and_windowing_eld
void(* imdct_and_windowing_eld)(AACDecContext *ac, SingleChannelElement *sce)
Definition: aacdec.h:491
AACUsacElemConfig::limiter_bands
uint8_t limiter_bands
Definition: aacdec.h:356
AACUSACConfig::nb_elems
int nb_elems
Definition: aacdec.h:401
AACUsacElemConfig::lower
int lower
Definition: aacdec.h:389
AACUsacElemConfig::start_freq
uint8_t start_freq
Definition: aacdec.h:349
avcodec.h
ID_EXT_ELE_UNI_DRC
@ ID_EXT_ELE_UNI_DRC
Definition: aacdec.h:93
SingleChannelElement::INTFLOAT_ALIGNED_UNION
INTFLOAT_ALIGNED_UNION(32, coeffs, 1024)
coefficients for IMDCT, maybe processed
DynamicRangeControl::pce_instance_tag
int pce_instance_tag
Indicates with which program the DRC info is associated.
Definition: aacdec.h:431
AACUsacStereo::common_window
uint8_t common_window
Definition: aacdec.h:267
AACUsacElemConfig::freq_scale
uint8_t freq_scale
Definition: aacdec.h:352
AACUsacMPSData::temp_shape_enable
bool temp_shape_enable
Definition: aacdec.h:258
AACUsacStereo::complex_coef
uint8_t complex_coef
Definition: aacdec.h:277
AACUsacElemConfig::upper
int upper
Definition: aacdec.h:390
AACDecContext::frame
struct AVFrame * frame
Definition: aacdec.h:506
UNIDRCLOUDEXT_EQ
@ UNIDRCLOUDEXT_EQ
Definition: aacdec.h:98
TemporalNoiseShaping::coef
float coef[8][4][TNS_MAX_ORDER]
Definition: aacenc.h:101
CHANNEL_ORDER_DEFAULT
@ CHANNEL_ORDER_DEFAULT
Definition: aacdec.h:62
ChannelCoupling::ch_select
int ch_select[8]
[0] shared list of gains; [1] list of gains for right channel; [2] list of gains for left channel; [3...
Definition: aacdec.h:208
SingleChannelElement::tns
TemporalNoiseShaping tns
Definition: aacdec.h:220
TemporalNoiseShaping::INTFLOAT_UNION
INTFLOAT_UNION(coef, [8][4][TNS_MAX_ORDER])
AACDecProc::sbr_decode_extension
int(* sbr_decode_extension)(AACDecContext *ac, ChannelElement *che, GetBitContext *gb, int crc, int cnt, int id_aac, int fl960)
Definition: aacdec.h:455
AACDecContext
main AAC decoding context
Definition: aacdec.h:499
AACUSACConfig::info
AACUSACLoudnessInfo info[64]
Definition: aacdec.h:407
AVCodecContext
main external API structure.
Definition: avcodec.h:443
AACUsacElemData::fac_data_present
uint8_t fac_data_present
Definition: aacdec.h:147
AACUsacMPSData::temp_shape_enable_ch
bool temp_shape_enable_ch[2]
Definition: aacdec.h:259
LongTermPrediction
Long Term Prediction.
Definition: aacdec.h:124
AACUsacElemConfig::loudness
struct AACUsacElemConfig::@32::@34 loudness
channel_layout.h
smooth_mode
smooth_mode
Definition: vf_deflicker.c:36
AACDecContext::avctx
struct AVCodecContext * avctx
Definition: aacdec.h:501
AACUsacElemConfig::smoothing_mode
uint8_t smoothing_mode
Definition: aacdec.h:359
AACUSACLoudnessInfo
Definition: aacdec.h:309
TemporalNoiseShaping
Temporal Noise Shaping.
Definition: aacdec.h:191
AACUsacElemConfig::env_quant_mode
uint8_t env_quant_mode
Definition: aacdec.h:376
temp
else temp
Definition: vf_mcdeint.c:271
L
#define L(x)
Definition: vpx_arith.h:36
samples
Filter the word “frame” indicates either a video frame or a group of audio samples
Definition: filter_design.txt:8
AACUsacElemData::fac
struct AACUsacElemData::@21 fac
DynamicRangeControl::band_incr
int band_incr
Number of DRC bands greater than 1 having DRC info.
Definition: aacdec.h:435
AACDecContext::mdct_ltp_fn
av_tx_fn mdct_ltp_fn
Definition: aacdec.h:552
AACUsacElemConfig::ratio
int ratio
Definition: aacdec.h:342
OutputConfiguration::m4ac
MPEG4AudioConfig m4ac
Definition: aacdec.h:419
AACUSACConfig::elems
AACUsacElemConfig elems[MAX_ELEM_ID]
Definition: aacdec.h:400
AACUSACLoudnessInfo::true_peak
struct AACUSACLoudnessInfo::@27 true_peak
UNIDRCCONFEXT_PARAM_DRC
@ UNIDRCCONFEXT_PARAM_DRC
Definition: aacdec.h:103
OutputConfiguration::ch_layout
AVChannelLayout ch_layout
Definition: aacdec.h:422
AACDecDSP::imdct_and_windowing_768
void(* imdct_and_windowing_768)(AACDecContext *ac, SingleChannelElement *sce)
Definition: aacdec.h:488
AACDecContext::is_saved
int is_saved
Set if elements have stored overlap from previous frame.
Definition: aacdec.h:508
ID_EXT_ELE_MPEGS
@ ID_EXT_ELE_MPEGS
Definition: aacdec.h:90
AACUsacMPSData::opd_smoothing_mode
bool opd_smoothing_mode
Definition: aacdec.h:248
DynamicRangeControl::dyn_rng_sgn
int dyn_rng_sgn[17]
DRC sign information; 0 - positive, 1 - negative.
Definition: aacdec.h:432
AACUsacElemData::tw_ratio
uint8_t tw_ratio[NUM_TW_NODES]
Definition: aacdec.h:139
AACUSACLoudnessInfo::reliability
uint8_t reliability
Definition: aacdec.h:320
ChannelCoupling
coupling parameters
Definition: aacdec.h:203
AACUsacStereo::INTFLOAT_ALIGNED_UNION
INTFLOAT_ALIGNED_UNION(32, alpha_q_re, 1024)
AACDecProc
Decode-specific primitives.
Definition: aacdec.h:446
IndividualChannelStream::max_sfb
uint8_t max_sfb
number of scalefactor bands per group
Definition: aacdec.h:170
Pulse
Definition: aac.h:103
AACDecContext::mdct512
AVTXContext * mdct512
Definition: aacdec.h:538
DynamicRangeControl::interpolation_scheme
int interpolation_scheme
Indicates the interpolation scheme used in the SBR QMF domain.
Definition: aacdec.h:436
WindowSequence
WindowSequence
Definition: aac.h:63
AFTER_IMDCT
@ AFTER_IMDCT
Definition: aacdec.h:72
AACUsacElemData::ldp
struct AACUsacElemData::@19 ldp
IndividualChannelStream::ltp
LongTermPrediction ltp
Definition: aacdec.h:176
AACUsacElemConfig::alter_scale
uint8_t alter_scale
Definition: aacdec.h:353
AACArithState
Definition: aacdec_ac.h:27
AACUsacElemConfig::residual_coding
uint8_t residual_coding
Definition: aacdec.h:373
AACUsacElemConfig::otts_bands_phase
uint8_t otts_bands_phase
Definition: aacdec.h:372
AACUSACLoudnessExt
AACUSACLoudnessExt
Definition: aacdec.h:96
IndividualChannelStream::group_len
uint8_t group_len[8]
Definition: aacdec.h:175
UNIDRCCONFEXT_TERM
@ UNIDRCCONFEXT_TERM
Definition: aacdec.h:102
AACUsacElemConfig::pl_buf
uint8_t * pl_buf
Definition: aacdec.h:384
TemporalNoiseShaping::n_filt
int n_filt[8]
Definition: aacdec.h:193
AACUsacElemData::lpd_mode
uint8_t lpd_mode
Definition: aacdec.h:143
OC_TRIAL_FRAME
@ OC_TRIAL_FRAME
Output configuration under trial specified by a frame header.
Definition: aacdec.h:56
AACUsacElemData::bpf_control_info
uint8_t bpf_control_info
Definition: aacdec.h:145
AACUsacElemConfig::phase_coding
uint8_t phase_coding
Definition: aacdec.h:369
AACDecProc::sbr_ctx_close
void(* sbr_ctx_close)(ChannelElement *che)
Definition: aacdec.h:459
ID_EXT_ELE_FILL
@ ID_EXT_ELE_FILL
Definition: aacdec.h:89
IndividualChannelStream::predictor_reset_group
int predictor_reset_group
Definition: aacdec.h:183
tx.h
AACUSACConfig::album_info
AACUSACLoudnessInfo album_info[64]
Definition: aacdec.h:405
AACDecContext::mdct120_fn
av_tx_fn mdct120_fn
Definition: aacdec.h:545
AACDecContext::mdct128_fn
av_tx_fn mdct128_fn
Definition: aacdec.h:546
IndividualChannelStream::predictor_initialized
int predictor_initialized
Definition: aacdec.h:182
ID_USAC_SCE
@ ID_USAC_SCE
Definition: aacdec.h:76