FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
aac.h File Reference

AAC definitions and structures. More...

#include "aac_defines.h"
#include "libavutil/float_dsp.h"
#include "libavutil/fixed_dsp.h"
#include "avcodec.h"
#include "imdct15.h"
#include "fft.h"
#include "mpeg4audio.h"
#include "sbr.h"
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  OutputConfiguration
 
struct  PredictorState
 Predictor State. More...
 
struct  LongTermPrediction
 Long Term Prediction. More...
 
struct  IndividualChannelStream
 Individual Channel Stream. More...
 
struct  TemporalNoiseShaping
 Temporal Noise Shaping. More...
 
struct  DynamicRangeControl
 Dynamic Range Control - decoded from the bitstream but not processed further. More...
 
struct  Pulse
 
struct  ChannelCoupling
 coupling parameters More...
 
struct  SingleChannelElement
 Single Channel Element - used for both SCE and LFE elements. More...
 
struct  ChannelElement
 channel element - generic struct for SCE/CPE/CCE/LFE More...
 
struct  AACContext
 main AAC context More...
 

Macros

#define MAX_CHANNELS   64
 
#define MAX_ELEM_ID   16
 
#define TNS_MAX_ORDER   20
 
#define MAX_LTP_LONG_SFB   40
 
#define CLIP_AVOIDANCE_FACTOR   0.95f
 
#define IS_CODEBOOK_UNSIGNED(x)   (((x) - 1) & 10)
 
#define MAX_PREDICTORS   672
 
#define SCALE_DIV_512   36
 scalefactor difference that corresponds to scale difference in 512 times More...
 
#define SCALE_ONE_POS   140
 scalefactor index that corresponds to scale=1.0 More...
 
#define SCALE_MAX_POS   255
 scalefactor index maximum value More...
 
#define SCALE_MAX_DIFF   60
 maximum scalefactor difference allowed by standard More...
 
#define SCALE_DIFF_ZERO   60
 codebook index corresponding to zero scalefactor indices difference More...
 
#define POW_SF2_ZERO   200
 ff_aac_pow2sf_tab index corresponding to pow(2, 0); More...
 
#define NOISE_PRE   256
 preamble for NOISE_BT, put in bitstream with the first noise band More...
 
#define NOISE_PRE_BITS   9
 length of preamble More...
 
#define NOISE_OFFSET   90
 subtracted from global gain, used as offset for the preamble More...
 

Enumerations

enum  RawDataBlockType {
  TYPE_SCE, TYPE_CPE, TYPE_CCE, TYPE_LFE,
  TYPE_DSE, TYPE_PCE, TYPE_FIL, TYPE_END
}
 
enum  ExtensionPayloadID {
  EXT_FILL, EXT_FILL_DATA, EXT_DATA_ELEMENT, EXT_DYNAMIC_RANGE = 0xb,
  EXT_SBR_DATA = 0xd, EXT_SBR_DATA_CRC = 0xe
}
 
enum  WindowSequence { ONLY_LONG_SEQUENCE, LONG_START_SEQUENCE, EIGHT_SHORT_SEQUENCE, LONG_STOP_SEQUENCE }
 
enum  BandType {
  ZERO_BT = 0, FIRST_PAIR_BT = 5, ESC_BT = 11, RESERVED_BT = 12,
  NOISE_BT = 13, INTENSITY_BT2 = 14, INTENSITY_BT = 15
}
 
enum  ChannelPosition {
  AAC_CHANNEL_OFF = 0, AAC_CHANNEL_FRONT = 1, AAC_CHANNEL_SIDE = 2, AAC_CHANNEL_BACK = 3,
  AAC_CHANNEL_LFE = 4, AAC_CHANNEL_CC = 5
}
 
enum  CouplingPoint { BEFORE_TNS, BETWEEN_TNS_AND_IMDCT, AFTER_IMDCT = 3 }
 The point during decoding at which channel coupling is applied. More...
 
enum  OCStatus {
  OC_NONE, OC_TRIAL_PCE, OC_TRIAL_FRAME, OC_GLOBAL_HDR,
  OC_LOCKED
}
 Output configuration status. More...
 

Functions

void ff_aacdec_init_mips (AACContext *c)
 

Detailed Description

AAC definitions and structures.

Author
Oded Shimon ( ods15 ods15 dyndns org )
Maxim Gavrilov ( maxim.gavrilov gmail com )

Definition in file aac.h.

Macro Definition Documentation

#define MAX_CHANNELS   64
#define MAX_ELEM_ID   16
#define TNS_MAX_ORDER   20

Definition at line 50 of file aac.h.

Referenced by aac_encode_init(), apply_tns(), ff_aac_apply_tns(), and ff_aac_search_for_tns().

#define MAX_LTP_LONG_SFB   40
#define CLIP_AVOIDANCE_FACTOR   0.95f

Definition at line 53 of file aac.h.

Referenced by aac_encode_frame().

#define IS_CODEBOOK_UNSIGNED (   x)    (((x) - 1) & 10)

Definition at line 92 of file aac.h.

#define MAX_PREDICTORS   672

Definition at line 146 of file aac.h.

Referenced by ff_aac_search_for_pred(), reset_all_predictors(), and reset_predictor_group().

#define SCALE_DIV_512   36

scalefactor difference that corresponds to scale difference in 512 times

Definition at line 148 of file aac.h.

Referenced by coef2maxsf(), coef2minsf(), find_min_book(), quantize_and_encode_band_cost_template(), search_for_ms(), search_for_quantizers_anmr(), and search_for_quantizers_twoloop().

#define SCALE_ONE_POS   140
#define SCALE_MAX_POS   255

scalefactor index maximum value

Definition at line 150 of file aac.h.

Referenced by search_for_ms(), search_for_quantizers_anmr(), and search_for_quantizers_twoloop().

#define SCALE_MAX_DIFF   60

maximum scalefactor difference allowed by standard

Definition at line 151 of file aac.h.

Referenced by ff_sfdelta_can_remove_band(), ff_sfdelta_can_replace(), search_for_pns(), search_for_quantizers_fast(), search_for_quantizers_twoloop(), and set_special_band_scalefactors().

#define SCALE_DIFF_ZERO   60

codebook index corresponding to zero scalefactor indices difference

Definition at line 152 of file aac.h.

Referenced by decode_scalefactors(), encode_scale_factors(), search_for_pns(), search_for_quantizers_anmr(), search_for_quantizers_fast(), and search_for_quantizers_twoloop().

#define POW_SF2_ZERO   200

ff_aac_pow2sf_tab index corresponding to pow(2, 0);

Definition at line 154 of file aac.h.

Referenced by decode_scalefactors(), find_min_book(), quantize_and_encode_band_cost_template(), and search_for_pns().

#define NOISE_PRE   256

preamble for NOISE_BT, put in bitstream with the first noise band

Definition at line 156 of file aac.h.

Referenced by decode_scalefactors(), and encode_scale_factors().

#define NOISE_PRE_BITS   9

length of preamble

Definition at line 157 of file aac.h.

Referenced by decode_scalefactors(), and encode_scale_factors().

#define NOISE_OFFSET   90

subtracted from global gain, used as offset for the preamble

Definition at line 158 of file aac.h.

Referenced by decode_scalefactors(), and encode_scale_factors().

Enumeration Type Documentation

Enumerator
TYPE_SCE 
TYPE_CPE 
TYPE_CCE 
TYPE_LFE 
TYPE_DSE 
TYPE_PCE 
TYPE_FIL 
TYPE_END 

Definition at line 55 of file aac.h.

Enumerator
EXT_FILL 
EXT_FILL_DATA 
EXT_DATA_ELEMENT 
EXT_DYNAMIC_RANGE 
EXT_SBR_DATA 
EXT_SBR_DATA_CRC 

Definition at line 66 of file aac.h.

Enumerator
ONLY_LONG_SEQUENCE 
LONG_START_SEQUENCE 
EIGHT_SHORT_SEQUENCE 
LONG_STOP_SEQUENCE 

Definition at line 75 of file aac.h.

enum BandType
Enumerator
ZERO_BT 

Scalefactors and spectral data are all zero.

FIRST_PAIR_BT 

This and later band types encode two values (rather than four) with one code word.

ESC_BT 

Spectral data are coded with an escape sequence.

RESERVED_BT 

Band types following are encoded differently from others.

NOISE_BT 

Spectral data are scaled white noise not coded in the bitstream.

INTENSITY_BT2 

Scalefactor data are intensity stereo positions (out of phase).

INTENSITY_BT 

Scalefactor data are intensity stereo positions (in phase).

Definition at line 82 of file aac.h.

Enumerator
AAC_CHANNEL_OFF 
AAC_CHANNEL_FRONT 
AAC_CHANNEL_SIDE 
AAC_CHANNEL_BACK 
AAC_CHANNEL_LFE 
AAC_CHANNEL_CC 

Definition at line 94 of file aac.h.

The point during decoding at which channel coupling is applied.

Enumerator
BEFORE_TNS 
BETWEEN_TNS_AND_IMDCT 
AFTER_IMDCT 

Definition at line 106 of file aac.h.

enum OCStatus

Output configuration status.

Enumerator
OC_NONE 

Output unconfigured.

OC_TRIAL_PCE 

Output configuration under trial specified by an inband PCE.

OC_TRIAL_FRAME 

Output configuration under trial specified by a frame header.

OC_GLOBAL_HDR 

Output configuration set in a global header but not yet locked.

OC_LOCKED 

Output configuration locked in place.

Definition at line 115 of file aac.h.

Function Documentation

void ff_aacdec_init_mips ( AACContext c)

Definition at line 433 of file aacdec_mips.c.

Referenced by aacdec_init().