From 5e5ce70f192274ab8d1564170f7f9dc12d503311 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Wed, 12 Oct 2011 23:27:32 -0400 Subject: [PATCH] truespeech: decode directly to output buffer instead of a temp buffer --- libavcodec/truespeech.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/libavcodec/truespeech.c b/libavcodec/truespeech.c index 555ec87f00f..eec77eac9f0 100644 --- a/libavcodec/truespeech.c +++ b/libavcodec/truespeech.c @@ -346,7 +346,6 @@ static int truespeech_decode_frame(AVCodecContext *avctx, int i, j; short *samples = data; int consumed = 0; - int16_t out_buf[240]; int iterations, out_size; iterations = buf_size / 32; @@ -363,6 +362,8 @@ static int truespeech_decode_frame(AVCodecContext *avctx, return AVERROR(EINVAL); } + memset(samples, 0, out_size); + for(j = 0; j < iterations; j++) { truespeech_read_frame(c, buf + consumed); consumed += 32; @@ -370,20 +371,15 @@ static int truespeech_decode_frame(AVCodecContext *avctx, truespeech_correlate_filter(c); truespeech_filters_merge(c); - memset(out_buf, 0, 240 * 2); for(i = 0; i < 4; i++) { truespeech_apply_twopoint_filter(c, i); - truespeech_place_pulses(c, out_buf + i * 60, i); - truespeech_update_filters(c, out_buf + i * 60, i); - truespeech_synth(c, out_buf + i * 60, i); + truespeech_place_pulses (c, samples, i); + truespeech_update_filters(c, samples, i); + truespeech_synth (c, samples, i); + samples += 60; } truespeech_save_prevvec(c); - - /* finally output decoded frame */ - for(i = 0; i < 240; i++) - *samples++ = out_buf[i]; - } *data_size = out_size; -- 2.39.2