50 #ifndef AVCODEC_AC3DEC_H
51 #define AVCODEC_AC3DEC_H
61 #define AC3_OUTPUT_LFEON 8
63 #define SPX_MAX_BANDS 17
66 #define AC3_FRAME_BUFFER_SIZE 32768
147 float dynamic_range[2];
158 int rematrixing_flags[4];
225 int out_ch,
int in_ch,
int len);
int spx_in_use
spectral extension in use (spxinu)
void ff_ac3_downmix_c(float(*samples)[256], float(*matrix)[2], int out_ch, int in_ch, int len)
Downmix the output to mono or stereo.
AVFrame frame
AVFrame for decoded output.
int channels
number of total channels
#define DECLARE_ALIGNED(n, t, v)
int spx_dst_end_freq
spx end frequency bin
int lfe_on
lfe channel in use
int dba_syntax
delta bit allocation syntax enabled (dbaflde)
int spx_src_start_freq
spx start frequency bin
#define AC3_FRAME_BUFFER_SIZE
Large enough for maximum possible frame size when the specification limit is ignored.
static const int fixed_coeffs[3][3]
int num_rematrixing_bands
number of rematrixing bands (nrematbnd)
int ff_eac3_parse_header(AC3DecodeContext *s)
Parse the E-AC-3 frame header.
bitstream reader API header.
int bit_allocation_syntax
bit allocation model syntax enabled (bamode)
int phase_flags_in_use
phase flags in use (phsflginu)
int out_channels
number of output channels
int channel_map
custom channel map
int substreamid
substream identification
FFTContext imdct_256
for 256 sample IMDCT
DSPContext dsp
for optimization
int bit_rate
stream bit rate, in bits-per-second
static const uint16_t mask[17]
int lfe_ch
index of LFE channel
AC3BitAllocParameters bit_alloc_params
bit allocation parameters
GetBitContext gbc
bitstream reader
#define AC3_MAX_CHANNELS
maximum number of channels, including coupling channel
int block_switch_syntax
block switch syntax enabled (blkswe)
int fast_gain_syntax
fast gain codes enabled (frmfgaincode)
int dither_flag_syntax
dither flag syntax enabled (dithflage)
FFTContext imdct_512
for 512 sample IMDCT
void ff_eac3_decode_transform_coeffs_aht_ch(AC3DecodeContext *s, int ch)
Decode mantissas in a single channel for the entire frame.
float drc_scale
percentage of dynamic range compression to be applied
AVCodecContext * avctx
parent context
int fbw_channels
number of full-bandwidth channels
main external API structure.
#define AC3_CRITICAL_BANDS
int num_cpl_bands
number of coupling bands (ncplbnd)
void ff_eac3_apply_spectral_extension(AC3DecodeContext *s)
Apply spectral extension to each channel by copying lower frequency coefficients to higher frequency ...
Describe the class of an AVClass context structure.
int bitstream_mode
bitstream mode (bsmod)
int frame_type
frame type (strmtyp)
#define FF_INPUT_BUFFER_PADDING_SIZE
Required number of additionally allocated bytes at the end of the input bitstream for decoding...
int eac3
indicates if current frame is E-AC-3
int firstchincpl
first channel in coupling
int first_cpl_leak
first coupling leak state (firstcplleak)
int surround_mix_level
Surround mix level index.
int downmixed
indicates if coeffs are currently downmixed
float mul_bias
scaling for float_to_int16 conversion
#define AC3_MAX_CPL_BANDS
int num_blocks
number of audio blocks
FmtConvertContext fmt_conv
optimized conversion functions
int snr_offset_strategy
SNR offset strategy (snroffststr)
int sample_rate
sample frequency, in Hz
int center_mix_level
Center mix level index.
int output_mode
output channel configuration
int frame_size
current frame size, in bytes
int channel_layout
channel layout
AVLFG dith_state
for dither generation
Common code between the AC-3 encoder and decoder.
int channel_mode
channel mode (acmod)
int spx_dst_start_freq
spx starting frequency bin for copying (copystartmant) the copy region ends at the start of the spx r...
int skip_syntax
skip field syntax enabled (skipflde)