aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/alac.c
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2012-07-09 11:12:25 -0400
committerJustin Ruggles <justin.ruggles@gmail.com>2012-07-19 13:26:46 -0400
commit01880d287be6e2269b92eee8d9dc442532d277ea (patch)
treee94b2c23b2b7b5f065ae4ec1aa18218bf46f0b67 /libavcodec/alac.c
parentd0c0bf0d3e1bdb58188a2006bb24d83fae01236b (diff)
downloadffmpeg-01880d287be6e2269b92eee8d9dc442532d277ea.tar.gz
alac: simplify 1st order prediction and reading of warm-up samples
Diffstat (limited to 'libavcodec/alac.c')
-rw-r--r--libavcodec/alac.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/libavcodec/alac.c b/libavcodec/alac.c
index 9a3ca51054..b19973db50 100644
--- a/libavcodec/alac.c
+++ b/libavcodec/alac.c
@@ -186,25 +186,17 @@ static void predictor_decompress_fir_adapt(int32_t *error_buffer,
/* simple 1st-order prediction */
if (output_size <= 1)
return;
- for (i = 0; i < output_size - 1; i++) {
- int32_t prev_value;
- int32_t error_value;
-
- prev_value = buffer_out[i];
- error_value = error_buffer[i+1];
- buffer_out[i+1] =
- sign_extend((prev_value + error_value), readsamplesize);
+ for (i = 1; i < output_size; i++) {
+ buffer_out[i] = sign_extend(buffer_out[i - 1] + error_buffer[i],
+ readsamplesize);
}
return;
}
/* read warm-up samples */
for (i = 0; i < predictor_coef_num; i++) {
- int32_t val;
-
- val = buffer_out[i] + error_buffer[i+1];
- val = sign_extend(val, readsamplesize);
- buffer_out[i+1] = val;
+ buffer_out[i + 1] = sign_extend(buffer_out[i] + error_buffer[i + 1],
+ readsamplesize);
}
/* NOTE: 4 and 8 are very common cases that could be optimized. */