FFmpeg
Loading...
Searching...
No Matches
aac.h File Reference

AAC definitions and structures. More...

Go to the source code of this file.

Data Structures

struct  Pulse
 

Macros

#define MAX_CHANNELS   64
 
#define MAX_ELEM_ID   64
 
#define TNS_MAX_ORDER   20
 
#define MAX_LTP_LONG_SFB   40
 
#define MPS_MAX_PARAM_SETS   9
 
#define MPS_MAX_PARAM_BANDS   28
 
#define MPS_MAX_TIME_SLOTS   16 /* 64 in non-AAC MPEG Surround */
 
#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
 

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
}
 

Functions

static int ff_aac_sample_rate_idx (int rate)
 

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

◆ MAX_CHANNELS

◆ MAX_ELEM_ID

◆ TNS_MAX_ORDER

◆ MAX_LTP_LONG_SFB

#define MAX_LTP_LONG_SFB   40

Definition at line 37 of file aac.h.

Referenced by apply_ltp(), and decode_ltp().

◆ MPS_MAX_PARAM_SETS

#define MPS_MAX_PARAM_SETS   9

Definition at line 39 of file aac.h.

Referenced by ff_aac_ec_data_dec(), and ff_aac_map_index_data().

◆ MPS_MAX_PARAM_BANDS

#define MPS_MAX_PARAM_BANDS   28

Definition at line 40 of file aac.h.

Referenced by create_mapping(), ec_pair_dec(), ff_aac_ec_data_dec(), and ff_aac_map_index_data().

◆ MPS_MAX_TIME_SLOTS

#define MPS_MAX_TIME_SLOTS   16 /* 64 in non-AAC MPEG Surround */

Definition at line 41 of file aac.h.

◆ MAX_PREDICTORS

#define MAX_PREDICTORS   672

Definition at line 89 of file aac.h.

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

◆ SCALE_DIV_512

#define SCALE_DIV_512   36

scalefactor difference that corresponds to scale difference in 512 times

Definition at line 91 of file aac.h.

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

◆ SCALE_ONE_POS

#define SCALE_ONE_POS   140

scalefactor index that corresponds to scale=1.0

Definition at line 92 of file aac.h.

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

◆ SCALE_MAX_POS

#define SCALE_MAX_POS   255

scalefactor index maximum value

Definition at line 93 of file aac.h.

Referenced by nmr_band_curve(), nmr_commit_channel(), nmr_setup_channel(), nmr_solve_group(), search_for_ms(), and search_for_quantizers_twoloop().

◆ SCALE_MAX_DIFF

#define SCALE_MAX_DIFF   60

◆ SCALE_DIFF_ZERO

#define SCALE_DIFF_ZERO   60

codebook index corresponding to zero scalefactor indices difference

Definition at line 95 of file aac.h.

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

◆ POW_SF2_ZERO

#define POW_SF2_ZERO   200

ff_aac_pow2sf_tab index corresponding to pow(2, 0);

Definition at line 97 of file aac.h.

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

◆ NOISE_PRE

#define NOISE_PRE   256

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

Definition at line 99 of file aac.h.

Referenced by decode_scalefactors(), and encode_scale_factors().

◆ NOISE_PRE_BITS

#define NOISE_PRE_BITS   9

length of preamble

Definition at line 100 of file aac.h.

Referenced by decode_scalefactors(), and encode_scale_factors().

◆ NOISE_OFFSET

#define NOISE_OFFSET   90

subtracted from global gain, used as offset for the preamble

Definition at line 101 of file aac.h.

Referenced by decode_scalefactors(), and encode_scale_factors().

Enumeration Type Documentation

◆ RawDataBlockType

Enumerator
TYPE_SCE 
TYPE_CPE 
TYPE_CCE 
TYPE_LFE 
TYPE_DSE 
TYPE_PCE 
TYPE_FIL 
TYPE_END 

Definition at line 43 of file aac.h.

◆ ExtensionPayloadID

Enumerator
EXT_FILL 
EXT_FILL_DATA 
EXT_DATA_ELEMENT 
EXT_DYNAMIC_RANGE 
EXT_SBR_DATA 
EXT_SBR_DATA_CRC 

Definition at line 54 of file aac.h.

◆ WindowSequence

Enumerator
ONLY_LONG_SEQUENCE 
LONG_START_SEQUENCE 
EIGHT_SHORT_SEQUENCE 
LONG_STOP_SEQUENCE 

Definition at line 63 of file aac.h.

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

Definition at line 70 of file aac.h.

◆ ChannelPosition

Enumerator
AAC_CHANNEL_OFF 
AAC_CHANNEL_FRONT 
AAC_CHANNEL_SIDE 
AAC_CHANNEL_BACK 
AAC_CHANNEL_LFE 
AAC_CHANNEL_CC 

Definition at line 80 of file aac.h.

Function Documentation

◆ ff_aac_sample_rate_idx()

static int ff_aac_sample_rate_idx ( int rate)
inlinestatic

Definition at line 110 of file aac.h.

Referenced by ff_aac_decode_init(), and ff_aac_usac_config_decode().