Go to the documentation of this file.
   40    -0.00001461907, -0.00009205479,-0.000056157569,0.00030117269,
 
   41     0.0002422519,  -0.00085293897,-0.0005205574,  0.0020340169,
 
   42     0.00078333891, -0.0042153862, -0.00075614988, 0.0078402944,
 
   43    -0.000061169922,-0.01344162,    0.0024626821,  0.021736089,
 
   44    -0.007801671,   -0.034090221,   0.01880949,    0.054326009,
 
   45    -0.043596379,   -0.099384367,   0.13207909,    0.46424159
 
   51     for (
int i = 0; 
i < 64; 
i++)
 
   55     for (
int i = 0; 
i < 24; 
i++) {
 
   77     for (
i = 0; 
i < 16; 
i++)
 
   81     for (
i = -15; 
i < 16; 
i++)
 
   87                                 int num_samples, 
float *
out)
 
   89     float lev, gc_scale, gain_inc;
 
  120         for (; 
pos < num_samples; 
pos++)
 
  125     memcpy(prev, &in[num_samples], num_samples * 
sizeof(
float));
 
  129                    float *delayBuf, 
float *
temp)
 
  134     memcpy(
temp, delayBuf, 46*
sizeof(
float));
 
  139     for(
i=0; 
i<nIn; 
i+=2){
 
  140         p3[2*
i+0] = inlo[
i  ] + inhi[
i  ];
 
  141         p3[2*
i+1] = inlo[
i  ] - inhi[
i  ];
 
  142         p3[2*
i+2] = inlo[
i+1] + inhi[
i+1];
 
  143         p3[2*
i+3] = inlo[
i+1] - inhi[
i+1];
 
  148     for (j = nIn; j != 0; j--) {
 
  152         for (
i = 0; 
i < 48; 
i += 2) {
 
  165     memcpy(delayBuf, 
temp + nIn*2, 46*
sizeof(
float));
 
  
float gain_tab2[31]
gain compensation interpolation table
static float qmf_window[48]
av_cold void ff_atrac_init_gain_compensation(AtracGCContext *gctx, int id2exp_offset, int loc_scale)
Initialize gain compensation context.
static int ff_thread_once(char *control, void(*routine)(void))
int num_points
number of gain control points
Gain compensation context structure.
float ff_atrac_sf_table[64]
Gain control parameters for one subband.
int loc_scale
scale of location code = 2^loc_scale samples
int loc_code[7]
location of gain control points
av_cold void ff_atrac_generate_tables(void)
Generate common tables.
int loc_size
size of location code in samples
#define i(width, name, range_min, range_max)
float gain_tab1[16]
gain compensation level table
static LevelCodes lev[4+3+3]
static av_cold void atrac_generate_tables(void)
int id2exp_offset
offset for converting level index into level exponent
int lev_code[7]
level at corresponding control point
void ff_atrac_gain_compensation(AtracGCContext *gctx, float *in, float *prev, AtracGainInfo *gc_now, AtracGainInfo *gc_next, int num_samples, float *out)
Apply gain compensation and perform the MDCT overlapping part.
static const float qmf_48tap_half[24]
void ff_atrac_iqmf(float *inlo, float *inhi, unsigned int nIn, float *pOut, float *delayBuf, float *temp)
Quadrature mirror synthesis filter.