[FFmpeg-cvslog] truespeech: decode directly to output buffer instead of a temp buffer

Justin Ruggles git at videolan.org
Fri Oct 14 03:58:30 CEST 2011


ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Wed Oct 12 23:27:32 2011 -0400| [5e5ce70f192274ab8d1564170f7f9dc12d503311] | committer: Justin Ruggles

truespeech: decode directly to output buffer instead of a temp buffer

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5e5ce70f192274ab8d1564170f7f9dc12d503311
---

 libavcodec/truespeech.c |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/libavcodec/truespeech.c b/libavcodec/truespeech.c
index 555ec87..eec77ea 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;



More information about the ffmpeg-cvslog mailing list