Revision 427981c7 libavcodec/ra288.c
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