Revision 427981c7 libavcodec/ra288.c

View differences:

libavcodec/ra288.c
137 137

  
138 138
}
139 139

  
140
static void co(int n, int i, int j, const float *in, float *out, float *st1,
140
static void do_hybrid_window(int n, int i, int j, const float *in, float *out, float *st1,
141 141
               float *st2, const float *table)
142 142
{
143 143
    unsigned int x;
......
158 158
        st2[x] = st2[x] * 0.5625 + buffer1[x];
159 159
        out[x] = st2[x]          + buffer2[x];
160 160
    }
161
    *out *= 257./256.; /* to prevent clipping */
161

  
162
    /* Multiply by the white noise correcting factor (WNCF) */
163
    *out *= 257./256.;
162 164
}
163 165

  
164 166
static void update(Real288_internal *glob)
......
169 171
    memcpy(buffer1     , glob->output + 20, 20*sizeof(*buffer1));
170 172
    memcpy(buffer1 + 20, glob->output     , 20*sizeof(*buffer1));
171 173

  
172
    co(36, 40, 35, buffer1, temp1, glob->st1a, glob->st1b, table1);
174
    do_hybrid_window(36, 40, 35, buffer1, temp1, glob->st1a, glob->st1b, table1);
173 175

  
174 176
    if (pred(temp1, glob->st1, 36))
175 177
        colmult(glob->pr1, glob->st1, table1a, 36);
......
177 179
    memcpy(buffer2    , glob->history + 4, 4*sizeof(*buffer2));
178 180
    memcpy(buffer2 + 4, glob->history    , 4*sizeof(*buffer2));
179 181

  
180
    co(10, 8, 20, buffer2, temp2, glob->st2a, glob->st2b, table2);
182
    do_hybrid_window(10, 8, 20, buffer2, temp2, glob->st2a, glob->st2b, table2);
181 183

  
182 184
    if (pred(temp2, glob->st2, 10))
183 185
        colmult(glob->pr2, glob->st2, table2a, 10);

Also available in: Unified diff