From 9a3f10695a011861dcf5a649e3e72580b1a4eed4 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Wed, 21 Dec 2011 16:09:11 -0500 Subject: ra144enc: zero the reflection coeffs if the filter is unstable fixes use of uninitialized values if the filter is still unstable after using the previous frame lpc coefficients. --- libavcodec/ra144enc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libavcodec/ra144enc.c') diff --git a/libavcodec/ra144enc.c b/libavcodec/ra144enc.c index 1d260b7a22..ee38bd5c54 100644 --- a/libavcodec/ra144enc.c +++ b/libavcodec/ra144enc.c @@ -477,7 +477,10 @@ static int ra144_encode_frame(AVCodecContext *avctx, uint8_t *frame, * The filter is unstable: use the coefficients of the previous frame. */ ff_int_to_int16(block_coefs[NBLOCKS - 1], ractx->lpc_coef[1]); - ff_eval_refl(lpc_refl, block_coefs[NBLOCKS - 1], avctx); + if (ff_eval_refl(lpc_refl, block_coefs[NBLOCKS - 1], avctx)) { + /* the filter is still unstable. set reflection coeffs to zero. */ + memset(lpc_refl, 0, sizeof(lpc_refl)); + } } init_put_bits(&pb, frame, buf_size); for (i = 0; i < LPC_ORDER; i++) { -- cgit v1.2.3