21 #ifndef AVCODEC_DCA_LBR_H
22 #define AVCODEC_DCA_LBR_H
36 #define DCA_LBR_CHANNELS 6
37 #define DCA_LBR_CHANNELS_TOTAL 32
38 #define DCA_LBR_SUBBANDS 32
39 #define DCA_LBR_TONES 512
41 #define DCA_LBR_TIME_SAMPLES 128
42 #define DCA_LBR_TIME_HISTORY 8
int ntones
Circular buffer head position.
float window[DCA_LBR_SUBBANDS *4]
Long window for IMDCT.
This structure describes decoded (raw) audio or video data.
int bit_rate_scaled
Scaled bit rate.
ptrdiff_t const GLvoid * data
uint8_t grid_2_scf[DCA_LBR_CHANNELS][3][64]
Grid 2 scale factors.
uint32_t ch_pres[DCA_LBR_CHANNELS]
Subband allocation flags.
Memory handling functions.
int max_mono_subband
Subband index where mono encoding ends.
unsigned int ts_size
Time sample buffer size.
int nchannels_total
Total number of fullband channels.
int freq_range
Frequency range of LBR audio.
uint8_t x_freq
Spectral line offset.
av_cold int ff_dca_lbr_init(DCALbrDecoder *s)
int bit_rate_orig
Original bit rate.
float * ts_buffer
Time sample buffer base.
float sb_scf[DCA_LBR_SUBBANDS]
Subband randomization scale factors.
float lfe_scale
Scale factor of LFE samples before IIR filter.
int ch_mask
LBR speaker mask.
uint8_t part_stereo_pres
Partial stereo coefficients presence flags.
int ff_dca_lbr_parse(DCALbrDecoder *s, uint8_t *data, DCAExssAsset *asset)
uint8_t phs[DCA_LBR_CHANNELS]
Per-channel phase.
#define DECLARE_ALIGNED(n, t, v)
Declare a variable that is aligned in memory.
bitstream reader API header.
int nchannels
Number of fullband channels to decode.
av_cold void ff_dca_lbr_flush(DCALbrDecoder *s)
av_cold void ff_dca_lbr_close(DCALbrDecoder *s)
int sample_rate
Sample rate of LBR audio.
DCALbrTone tones[DCA_LBR_TONES]
Circular buffer of tones.
uint8_t tonal_scf[6]
Tonal scale factors.
uint8_t ph_rot
Phase rotation.
int warned
Flags for warning suppression.
float lfe_history[5][2]
LFE IIR filter history.
uint8_t part_stereo[DCA_LBR_CHANNELS][DCA_LBR_SUBBANDS/4][5]
Partial stereo coefficients.
uint8_t amp[DCA_LBR_CHANNELS]
Per-channel amplitude.
uint16_t tonal_bounds[5][32][2]
Per-group per-subframe start/end positions of tones.
int lbr_rand
Seed for subband randomization.
uint8_t sec_ch_sbms[DCA_LBR_CHANNELS/2][DCA_LBR_SUBBANDS]
Right channel inversion or mid/side decoding flags.
int8_t grid_3_avg[DCA_LBR_CHANNELS][DCA_LBR_SUBBANDS-4]
Grid 3 average values.
int nsubbands
Number of encoded subbands.
uint8_t grid_1_scf[DCA_LBR_CHANNELS][12][8]
Grid 1 scale factors.
float lpc_coeff[2][DCA_LBR_CHANNELS][3][2][8]
Predictor coefficients.
float history[DCA_LBR_CHANNELS][DCA_LBR_SUBBANDS *4]
IMDCT history.
Libavcodec external API header.
int8_t grid_3_scf[DCA_LBR_CHANNELS][DCA_LBR_SUBBANDS-4][8]
Grid 3 scale factors.
int band_limit
Band limit factor.
main external API structure.
int res_profile
Resolution profile.
uint8_t sb_indices[DCA_LBR_SUBBANDS]
Subband reordering indices.
int limited_range
Band limited frequency range.
uint8_t f_delt
Difference between original and center frequency.
int framenum
Lower 5 bits of current frame number.
int limited_rate
Band limited sample rate.
uint8_t sec_ch_lrms[DCA_LBR_CHANNELS/2][DCA_LBR_SUBBANDS]
Flags indicating if left/right channel are swapped.
float lfe_data[64]
Decimated LFE samples.
common internal api header.
common internal and external API header
uint32_t grid_3_pres[DCA_LBR_CHANNELS]
Grid 3 scale factors presence flags.
int ff_dca_lbr_filter_frame(DCALbrDecoder *s, AVFrame *frame)
float * time_samples[DCA_LBR_CHANNELS][DCA_LBR_SUBBANDS]
Time samples.
uint8_t pad
Padding field.
int flags
Flags for LBR decoder initialization.
uint8_t quant_levels[DCA_LBR_CHANNELS/2][DCA_LBR_SUBBANDS]
Quantization levels.
int min_mono_subband
Subband index where mono encoding starts.
int g3_avg_only_start_sb
Subband index where grid 3 scale factors end.
uint8_t high_res_scf[DCA_LBR_CHANNELS][DCA_LBR_SUBBANDS][8]
High-frequency resolution scale factors.