mirror of https://git.ffmpeg.org/ffmpeg.git
alac: simplify 1st order prediction and reading of warm-up samples
This commit is contained in:
parent
d0c0bf0d3e
commit
01880d287b
|
@ -186,25 +186,17 @@ static void predictor_decompress_fir_adapt(int32_t *error_buffer,
|
||||||
/* simple 1st-order prediction */
|
/* simple 1st-order prediction */
|
||||||
if (output_size <= 1)
|
if (output_size <= 1)
|
||||||
return;
|
return;
|
||||||
for (i = 0; i < output_size - 1; i++) {
|
for (i = 1; i < output_size; i++) {
|
||||||
int32_t prev_value;
|
buffer_out[i] = sign_extend(buffer_out[i - 1] + error_buffer[i],
|
||||||
int32_t error_value;
|
readsamplesize);
|
||||||
|
|
||||||
prev_value = buffer_out[i];
|
|
||||||
error_value = error_buffer[i+1];
|
|
||||||
buffer_out[i+1] =
|
|
||||||
sign_extend((prev_value + error_value), readsamplesize);
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* read warm-up samples */
|
/* read warm-up samples */
|
||||||
for (i = 0; i < predictor_coef_num; i++) {
|
for (i = 0; i < predictor_coef_num; i++) {
|
||||||
int32_t val;
|
buffer_out[i + 1] = sign_extend(buffer_out[i] + error_buffer[i + 1],
|
||||||
|
readsamplesize);
|
||||||
val = buffer_out[i] + error_buffer[i+1];
|
|
||||||
val = sign_extend(val, readsamplesize);
|
|
||||||
buffer_out[i+1] = val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NOTE: 4 and 8 are very common cases that could be optimized. */
|
/* NOTE: 4 and 8 are very common cases that could be optimized. */
|
||||||
|
|
Loading…
Reference in New Issue