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 120 uint16_t tonal_bounds[5][32][2];
int ntones
Circular buffer head position.
This structure describes decoded (raw) audio or video data.
int bit_rate_scaled
Scaled bit rate.
ptrdiff_t const GLvoid * data
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 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.
uint8_t ph_rot
Phase rotation.
int warned
Flags for warning suppression.
uint8_t amp[DCA_LBR_CHANNELS]
Per-channel amplitude.
static SDL_Window * window
int lbr_rand
Seed for subband randomization.
int nsubbands
Number of encoded subbands.
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a frame
Libavcodec external API header.
int band_limit
Band limit factor.
main external API structure.
int res_profile
Resolution profile.
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.
common internal api header.
common internal and external API header
int ff_dca_lbr_filter_frame(DCALbrDecoder *s, AVFrame *frame)
uint8_t pad
Padding field.
int flags
Flags for LBR decoder initialization.
int min_mono_subband
Subband index where mono encoding starts.
int g3_avg_only_start_sb
Subband index where grid 3 scale factors end.