FFmpeg
Classes | Macros | Typedefs | 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 "mdct15.h"
#include "fft.h"
#include "mpeg4audio.h"
#include "sbr.h"
#include <stdint.h>

Go to the source code of this file.

Classes

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
 
#define SCALE_ONE_POS   140
 scalefactor index that corresponds to scale=1.0
 
#define SCALE_MAX_POS   255
 scalefactor index maximum value
 
#define SCALE_MAX_DIFF   60
 maximum scalefactor difference allowed by standard
 
#define SCALE_DIFF_ZERO   60
 codebook index corresponding to zero scalefactor indices difference
 
#define POW_SF2_ZERO   200
 ff_aac_pow2sf_tab index corresponding to pow(2, 0);
 
#define NOISE_PRE   256
 preamble for NOISE_BT, put in bitstream with the first noise band
 
#define NOISE_PRE_BITS   9
 length of preamble
 
#define NOISE_OFFSET   90
 subtracted from global gain, used as offset for the preamble
 

Typedefs

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

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.
 
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 )

Enumeration Type Documentation

§ BandType

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).

§ OCStatus

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.