AC3EncodeContext Struct Reference

AC-3 encoder private context. More...

#include <ac3enc.h>

Data Fields

AVClassav_class
 AVClass used for AVOption.
AC3EncOptions options
 encoding options
AVCodecContextavctx
 parent AVCodecContext
PutBitContext pb
 bitstream writer context
DSPContext dsp
AC3DSPContext ac3dsp
 AC-3 optimized functions.
FFTContext mdct
 FFT context for MDCT calculation.
const SampleTypemdct_window
 MDCT window function array.
AC3Block blocks [AC3_MAX_BLOCKS]
 per-block info
int fixed_point
 indicates if fixed-point encoder is being used
int eac3
 indicates if this is E-AC-3 vs. AC-3
int bitstream_id
 bitstream id (bsid)
int bitstream_mode
 bitstream mode (bsmod)
int bit_rate
 target bit rate, in bits-per-second
int sample_rate
 sampling frequency, in Hz
int num_blks_code
 number of blocks code (numblkscod)
int num_blocks
 number of blocks per frame
int frame_size_min
 minimum frame size in case rounding is necessary
int frame_size
 current frame size in bytes
int frame_size_code
 frame size code (frmsizecod)
uint16_t crc_inv [2]
int64_t bits_written
 bit count (used to avg. bitrate)
int64_t samples_written
 sample count (used to avg. bitrate)
int fbw_channels
 number of full-bandwidth channels (nfchans)
int channels
 total number of channels (nchans)
int lfe_on
 indicates if there is an LFE channel (lfeon)
int lfe_channel
 channel index of the LFE channel
int has_center
 indicates if there is a center channel
int has_surround
 indicates if there are one or more surround channels
int channel_mode
 channel mode (acmod)
const uint8_t * channel_map
 channel map used to reorder channels
int center_mix_level
 center mix level code
int surround_mix_level
 surround mix level code
int ltrt_center_mix_level
 Lt/Rt center mix level code.
int ltrt_surround_mix_level
 Lt/Rt surround mix level code.
int loro_center_mix_level
 Lo/Ro center mix level code.
int loro_surround_mix_level
 Lo/Ro surround mix level code.
int cutoff
 user-specified cutoff frequency, in Hz
int bandwidth_code
 bandwidth code (0 to 60) (chbwcod)
int start_freq [AC3_MAX_CHANNELS]
 start frequency bin (strtmant)
int cpl_end_freq
 coupling channel end frequency bin
int cpl_on
 coupling turned on for this frame
int cpl_enabled
 coupling enabled for all frames
int num_cpl_subbands
 number of coupling subbands (ncplsubnd)
int num_cpl_bands
 number of coupling bands (ncplbnd)
uint8_t cpl_band_sizes [AC3_MAX_CPL_BANDS]
 number of coeffs in each coupling band
int rematrixing_enabled
 stereo rematrixing enabled
int slow_gain_code
 slow gain code (sgaincod)
int slow_decay_code
 slow decay code (sdcycod)
int fast_decay_code
 fast decay code (fdcycod)
int db_per_bit_code
 dB/bit code (dbpbcod)
int floor_code
 floor code (floorcod)
AC3BitAllocParameters bit_alloc
 bit allocation parameters
int coarse_snr_offset
 coarse SNR offsets (csnroffst)
int fast_gain_code [AC3_MAX_CHANNELS]
 fast gain codes (signal-to-mask ratio) (fgaincod)
int fine_snr_offset [AC3_MAX_CHANNELS]
 fine SNR offsets (fsnroffst)
int frame_bits_fixed
 number of non-coefficient bits for fixed parameters
int frame_bits
 all frame bits except exponents and mantissas
int exponent_bits
 number of bits used for exponents
SampleTypewindowed_samples
SampleType ** planar_samples
uint8_t * bap_buffer
uint8_t * bap1_buffer
CoefTypemdct_coef_buffer
int32_t * fixed_coef_buffer
uint8_t * exp_buffer
uint8_t * grouped_exp_buffer
int16_t * psd_buffer
int16_t * band_psd_buffer
int16_t * mask_buffer
int16_t * qmant_buffer
uint8_t * cpl_coord_exp_buffer
uint8_t * cpl_coord_mant_buffer
uint8_t exp_strategy [AC3_MAX_CHANNELS][AC3_MAX_BLOCKS]
 exponent strategies
uint8_t frame_exp_strategy [AC3_MAX_CHANNELS]
 frame exp strategy index
int use_frame_exp_strategy
 indicates use of frame exp strategy
uint8_t exp_ref_block [AC3_MAX_CHANNELS][AC3_MAX_BLOCKS]
 reference blocks for EXP_REUSE
uint8_t * ref_bap [AC3_MAX_CHANNELS][AC3_MAX_BLOCKS]
 bit allocation pointers (bap)
int ref_bap_set
 indicates if ref_bap pointers have been set
void(* mdct_end )(struct AC3EncodeContext *s)
int(* mdct_init )(struct AC3EncodeContext *s)
int(* allocate_sample_buffers )(struct AC3EncodeContext *s)
void(* output_frame_header )(struct AC3EncodeContext *s)

Detailed Description

AC-3 encoder private context.

Definition at line 155 of file ac3enc.h.

Field Documentation

int(* AC3EncodeContext::allocate_sample_buffers)(struct AC3EncodeContext *s)

Definition at line 254 of file ac3enc.h.

Referenced by allocate_buffers(), and ff_ac3_encode_init().

AVClass* AC3EncodeContext::av_class

AVClass used for AVOption.

Definition at line 156 of file ac3enc.h.

int16_t* AC3EncodeContext::band_psd_buffer

Definition at line 236 of file ac3enc.h.

Referenced by allocate_buffers(), and ff_ac3_encode_close().

int AC3EncodeContext::bandwidth_code

bandwidth code (0 to 60) (chbwcod)

Definition at line 201 of file ac3enc.h.

Referenced by count_mantissa_bits(), ff_ac3_compute_coupling_strategy(), output_audio_block(), and set_bandwidth().

uint8_t* AC3EncodeContext::bap1_buffer

Definition at line 230 of file ac3enc.h.

Referenced by allocate_buffers(), cbr_bit_allocation(), and ff_ac3_encode_close().

uint8_t* AC3EncodeContext::bap_buffer
int AC3EncodeContext::bit_rate

target bit rate, in bits-per-second

Definition at line 172 of file ac3enc.h.

Referenced by dprint_options(), ff_ac3_adjust_frame_size(), and validate_options().

int64_t AC3EncodeContext::bits_written

bit count (used to avg. bitrate)

Definition at line 181 of file ac3enc.h.

Referenced by ff_ac3_adjust_frame_size(), and ff_ac3_encode_init().

int AC3EncodeContext::bitstream_id
int AC3EncodeContext::bitstream_mode

bitstream mode (bsmod)

Definition at line 170 of file ac3enc.h.

Referenced by ac3_output_frame_header(), ff_ac3_encode_init(), and ff_eac3_output_frame_header().

int AC3EncodeContext::center_mix_level

center mix level code

Definition at line 193 of file ac3enc.h.

Referenced by ac3_output_frame_header(), dprint_options(), and ff_ac3_validate_metadata().

const uint8_t* AC3EncodeContext::channel_map

channel map used to reorder channels

Definition at line 191 of file ac3enc.h.

Referenced by deinterleave_input_samples(), and set_channel_info().

int AC3EncodeContext::coarse_snr_offset

coarse SNR offsets (csnroffst)

Definition at line 220 of file ac3enc.h.

Referenced by bit_alloc_init(), cbr_bit_allocation(), ff_eac3_output_frame_header(), and output_audio_block().

uint8_t AC3EncodeContext::cpl_band_sizes[AC3_MAX_CPL_BANDS]

number of coeffs in each coupling band

Definition at line 209 of file ac3enc.h.

Referenced by apply_channel_coupling(), and set_bandwidth().

uint8_t* AC3EncodeContext::cpl_coord_exp_buffer

Definition at line 239 of file ac3enc.h.

Referenced by allocate_buffers(), and ff_ac3_encode_close().

uint8_t* AC3EncodeContext::cpl_coord_mant_buffer

Definition at line 240 of file ac3enc.h.

Referenced by allocate_buffers(), and ff_ac3_encode_close().

int AC3EncodeContext::cpl_enabled

coupling enabled for all frames

Definition at line 206 of file ac3enc.h.

Referenced by allocate_buffers(), count_mantissa_bits(), encode_frame(), set_bandwidth(), and validate_options().

int AC3EncodeContext::cpl_end_freq

coupling channel end frequency bin

Definition at line 203 of file ac3enc.h.

Referenced by apply_channel_coupling(), output_audio_block(), and set_bandwidth().

uint16_t AC3EncodeContext::crc_inv[2]

Definition at line 180 of file ac3enc.h.

Referenced by ff_ac3_encode_init(), and output_frame_end().

int AC3EncodeContext::cutoff

user-specified cutoff frequency, in Hz

Definition at line 200 of file ac3enc.h.

Referenced by dprint_options(), set_bandwidth(), and validate_options().

int AC3EncodeContext::db_per_bit_code

dB/bit code (dbpbcod)

Definition at line 217 of file ac3enc.h.

Referenced by bit_alloc_init(), and output_audio_block().

DSPContext AC3EncodeContext::dsp
uint8_t* AC3EncodeContext::exp_buffer

Definition at line 233 of file ac3enc.h.

Referenced by allocate_buffers(), and ff_ac3_encode_close().

uint8_t AC3EncodeContext::exp_ref_block[AC3_MAX_CHANNELS][AC3_MAX_BLOCKS]

reference blocks for EXP_REUSE

Definition at line 245 of file ac3enc.h.

Referenced by encode_exponents(), ff_ac3_quantize_mantissas(), and reset_block_bap().

int AC3EncodeContext::exponent_bits

number of bits used for exponents

Definition at line 225 of file ac3enc.h.

Referenced by cbr_bit_allocation(), and ff_ac3_compute_bit_allocation().

int AC3EncodeContext::fast_decay_code

fast decay code (fdcycod)

Definition at line 216 of file ac3enc.h.

Referenced by bit_alloc_init(), and output_audio_block().

int AC3EncodeContext::fast_gain_code[AC3_MAX_CHANNELS]

fast gain codes (signal-to-mask ratio) (fgaincod)

Definition at line 221 of file ac3enc.h.

Referenced by bit_alloc_init(), bit_alloc_masking(), and output_audio_block().

int AC3EncodeContext::fbw_channels
int AC3EncodeContext::fine_snr_offset[AC3_MAX_CHANNELS]

fine SNR offsets (fsnroffst)

Definition at line 222 of file ac3enc.h.

Referenced by cbr_bit_allocation(), ff_eac3_output_frame_header(), and output_audio_block().

int32_t* AC3EncodeContext::fixed_coef_buffer

Definition at line 232 of file ac3enc.h.

Referenced by allocate_buffers(), ff_ac3_encode_close(), and scale_coefficients().

int AC3EncodeContext::fixed_point

indicates if fixed-point encoder is being used

Definition at line 167 of file ac3enc.h.

Referenced by ac3_fixed_encode_init(), allocate_buffers(), apply_mdct(), encode_frame(), and ff_ac3_encode_init().

int AC3EncodeContext::floor_code

floor code (floorcod)

Definition at line 218 of file ac3enc.h.

Referenced by bit_alloc_init(), and output_audio_block().

int AC3EncodeContext::frame_bits

all frame bits except exponents and mantissas

Definition at line 224 of file ac3enc.h.

Referenced by cbr_bit_allocation(), and count_frame_bits().

int AC3EncodeContext::frame_bits_fixed

number of non-coefficient bits for fixed parameters

Definition at line 223 of file ac3enc.h.

Referenced by count_frame_bits(), and count_frame_bits_fixed().

uint8_t AC3EncodeContext::frame_exp_strategy[AC3_MAX_CHANNELS]

frame exp strategy index

Definition at line 243 of file ac3enc.h.

Referenced by ff_eac3_get_frame_exp_strategy(), and ff_eac3_output_frame_header().

int AC3EncodeContext::frame_size
int AC3EncodeContext::frame_size_code

frame size code (frmsizecod)

Definition at line 179 of file ac3enc.h.

Referenced by ac3_output_frame_header(), set_bandwidth(), and validate_options().

int AC3EncodeContext::frame_size_min

minimum frame size in case rounding is necessary

Definition at line 177 of file ac3enc.h.

Referenced by ac3_output_frame_header(), ff_ac3_adjust_frame_size(), output_frame_end(), and validate_options().

uint8_t* AC3EncodeContext::grouped_exp_buffer

Definition at line 234 of file ac3enc.h.

Referenced by allocate_buffers(), and ff_ac3_encode_close().

int AC3EncodeContext::has_center

indicates if there is a center channel

Definition at line 188 of file ac3enc.h.

Referenced by count_frame_bits(), dprint_options(), ff_ac3_validate_metadata(), ff_eac3_output_frame_header(), and set_channel_info().

int AC3EncodeContext::has_surround

indicates if there are one or more surround channels

Definition at line 189 of file ac3enc.h.

Referenced by count_frame_bits(), dprint_options(), ff_ac3_validate_metadata(), ff_eac3_output_frame_header(), and set_channel_info().

int AC3EncodeContext::lfe_channel

channel index of the LFE channel

Definition at line 187 of file ac3enc.h.

Referenced by bit_alloc_masking(), compute_exp_strategy(), ff_eac3_output_frame_header(), output_audio_block(), set_bandwidth(), and set_channel_info().

int AC3EncodeContext::lfe_on
int AC3EncodeContext::loro_center_mix_level

Lo/Ro center mix level code.

Definition at line 197 of file ac3enc.h.

Referenced by ac3_output_frame_header(), dprint_options(), ff_ac3_validate_metadata(), and ff_eac3_output_frame_header().

int AC3EncodeContext::loro_surround_mix_level

Lo/Ro surround mix level code.

Definition at line 198 of file ac3enc.h.

Referenced by ac3_output_frame_header(), dprint_options(), ff_ac3_validate_metadata(), and ff_eac3_output_frame_header().

int AC3EncodeContext::ltrt_center_mix_level

Lt/Rt center mix level code.

Definition at line 195 of file ac3enc.h.

Referenced by ac3_output_frame_header(), dprint_options(), ff_ac3_validate_metadata(), and ff_eac3_output_frame_header().

int AC3EncodeContext::ltrt_surround_mix_level

Lt/Rt surround mix level code.

Definition at line 196 of file ac3enc.h.

Referenced by ac3_output_frame_header(), dprint_options(), ff_ac3_validate_metadata(), and ff_eac3_output_frame_header().

int16_t* AC3EncodeContext::mask_buffer

Definition at line 237 of file ac3enc.h.

Referenced by allocate_buffers(), and ff_ac3_encode_close().

FFTContext AC3EncodeContext::mdct

FFT context for MDCT calculation.

Definition at line 162 of file ac3enc.h.

Referenced by apply_mdct(), ff_ac3_float_mdct_end(), and ff_ac3_float_mdct_init().

CoefType* AC3EncodeContext::mdct_coef_buffer

Definition at line 231 of file ac3enc.h.

Referenced by allocate_buffers(), ff_ac3_encode_close(), and scale_coefficients().

void(* AC3EncodeContext::mdct_end)(struct AC3EncodeContext *s)

Definition at line 250 of file ac3enc.h.

Referenced by ff_ac3_encode_close(), and ff_ac3_encode_init().

int(* AC3EncodeContext::mdct_init)(struct AC3EncodeContext *s)

Definition at line 251 of file ac3enc.h.

Referenced by ff_ac3_encode_init().

const SampleType* AC3EncodeContext::mdct_window

MDCT window function array.

Definition at line 163 of file ac3enc.h.

Referenced by apply_mdct(), ff_ac3_float_mdct_end(), and ff_ac3_float_mdct_init().

int AC3EncodeContext::num_blks_code

number of blocks code (numblkscod)

Definition at line 175 of file ac3enc.h.

Referenced by compute_exp_strategy(), count_frame_bits_fixed(), dprint_options(), ff_eac3_output_frame_header(), and validate_options().

int AC3EncodeContext::num_cpl_bands

number of coupling bands (ncplbnd)

Definition at line 208 of file ac3enc.h.

Referenced by apply_channel_coupling(), count_frame_bits(), output_audio_block(), and set_bandwidth().

int AC3EncodeContext::num_cpl_subbands

number of coupling subbands (ncplsubnd)

Definition at line 207 of file ac3enc.h.

Referenced by apply_channel_coupling(), count_frame_bits(), and set_bandwidth().

void(* AC3EncodeContext::output_frame_header)(struct AC3EncodeContext *s)

Definition at line 257 of file ac3enc.h.

Referenced by ff_ac3_encode_init(), and ff_ac3_output_frame().

PutBitContext AC3EncodeContext::pb

bitstream writer context

Definition at line 159 of file ac3enc.h.

Referenced by ac3_output_frame_header(), ff_ac3_output_frame(), ff_eac3_output_frame_header(), output_audio_block(), and output_frame_end().

SampleType** AC3EncodeContext::planar_samples

Definition at line 228 of file ac3enc.h.

Referenced by apply_mdct(), deinterleave_input_samples(), and ff_ac3_encode_close().

int16_t* AC3EncodeContext::psd_buffer

Definition at line 235 of file ac3enc.h.

Referenced by allocate_buffers(), and ff_ac3_encode_close().

int16_t* AC3EncodeContext::qmant_buffer

Definition at line 238 of file ac3enc.h.

Referenced by allocate_buffers(), and ff_ac3_encode_close().

uint8_t* AC3EncodeContext::ref_bap[AC3_MAX_CHANNELS][AC3_MAX_BLOCKS]

bit allocation pointers (bap)

Definition at line 246 of file ac3enc.h.

Referenced by bit_alloc(), count_mantissa_bits_update_ch(), ff_ac3_quantize_mantissas(), output_audio_block(), and reset_block_bap().

int AC3EncodeContext::ref_bap_set

indicates if ref_bap pointers have been set

Definition at line 247 of file ac3enc.h.

Referenced by encode_exponents(), and reset_block_bap().

int AC3EncodeContext::rematrixing_enabled

stereo rematrixing enabled

Definition at line 211 of file ac3enc.h.

Referenced by compute_rematrixing_strategy(), ff_ac3_apply_rematrixing(), and validate_options().

int AC3EncodeContext::sample_rate

sampling frequency, in Hz

Definition at line 173 of file ac3enc.h.

Referenced by dprint_options(), ff_ac3_adjust_frame_size(), set_bandwidth(), and validate_options().

int64_t AC3EncodeContext::samples_written

sample count (used to avg. bitrate)

Definition at line 182 of file ac3enc.h.

Referenced by ff_ac3_adjust_frame_size(), and ff_ac3_encode_init().

int AC3EncodeContext::slow_decay_code

slow decay code (sdcycod)

Definition at line 215 of file ac3enc.h.

Referenced by bit_alloc_init(), and output_audio_block().

int AC3EncodeContext::slow_gain_code

slow gain code (sgaincod)

Definition at line 214 of file ac3enc.h.

Referenced by bit_alloc_init(), and output_audio_block().

int AC3EncodeContext::surround_mix_level

surround mix level code

Definition at line 194 of file ac3enc.h.

Referenced by ac3_output_frame_header(), dprint_options(), and ff_ac3_validate_metadata().

int AC3EncodeContext::use_frame_exp_strategy

indicates use of frame exp strategy

Definition at line 244 of file ac3enc.h.

Referenced by count_frame_bits(), count_frame_bits_fixed(), ff_eac3_get_frame_exp_strategy(), and ff_eac3_output_frame_header().

SampleType* AC3EncodeContext::windowed_samples

Definition at line 227 of file ac3enc.h.

Referenced by apply_mdct(), ff_ac3_encode_close(), and normalize_samples().


The documentation for this struct was generated from the following file: