32#ifndef AVCODEC_AAC_AACDEC_FLOAT_COUPLING_H
33#define AVCODEC_AAC_AACDEC_FLOAT_COUPLING_H
48 float *dest = target->coeffs;
49 const float *
src = cce->ch[0].coeffs;
50 int g,
i, group, k, idx = 0;
53 "Dependent coupling is not supported together with LTP\n");
58 if (cce->ch[0].band_type[idx] !=
ZERO_BT) {
59 const float gain = cce->coup.gain[
index][idx];
60 for (group = 0; group < ics->
group_len[
g]; group++) {
63 dest[group * 128 + k] += gain *
src[group * 128 + k];
82 const float gain = cce->coup.gain[
index][0];
83 const float *
src = cce->ch[0].output;
84 float *dest = target->output;
85 const int len = 1024 << (ac->oc[1].m4ac.sbr == 1);
87 ac->fdsp->vector_fmac_scalar(dest,
src, gain,
len);
@ ZERO_BT
Scalefactors and spectral data are all zero.
AAC decoder definitions and structures.
static void AAC_RENAME apply_dependent_coupling(AACDecContext *ac, SingleChannelElement *target, ChannelElement *cce, int index)
Apply dependent channel coupling (applied before IMDCT).
static void AAC_RENAME apply_independent_coupling(AACDecContext *ac, SingleChannelElement *target, ChannelElement *cce, int index)
Apply independent channel coupling (applied after IMDCT).
#define i(width, name, range_min, range_max)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
static const int offsets[]
@ AOT_AAC_LTP
Y Long Term Prediction.
main AAC decoding context
channel element - generic struct for SCE/CPE/CCE/LFE
Individual Channel Stream.
uint8_t max_sfb
number of scalefactor bands per group
const uint16_t * swb_offset
table of offsets to the lowest spectral coefficient of a scalefactor band, sfb, for a particular wind...
Single Channel Element - used for both SCE and LFE elements.