aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/ra288.c
diff options
context:
space:
mode:
authorVitor Sessak <vitor1001@gmail.com>2008-07-28 02:53:07 +0000
committerVitor Sessak <vitor1001@gmail.com>2008-07-28 02:53:07 +0000
commitaed39f6c020f00bd3e25e0b553425cb3f5ef9aa7 (patch)
tree8b08ef006459d8c3703bd9aa060bea7bfa183d77 /libavcodec/ra288.c
parent452a398fd6bdca3f301c5c8af3bc241bc16a777e (diff)
downloadffmpeg-aed39f6c020f00bd3e25e0b553425cb3f5ef9aa7.tar.gz
Remove RA288Context.output buffer. This buffer is just RA288Context.sb
backwards (output[i] == sb[N-i], where N is the buffer length). This makes the code slower, this will be fixed in my next commit. Originally committed as revision 14446 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/ra288.c')
-rw-r--r--libavcodec/ra288.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libavcodec/ra288.c b/libavcodec/ra288.c
index 36d0b6097c..a7bd06426f 100644
--- a/libavcodec/ra288.c
+++ b/libavcodec/ra288.c
@@ -25,7 +25,6 @@
#include "ra288.h"
typedef struct {
- float output[40];
float sp_lpc[36]; ///< LPC coefficients for speech data (spec: A)
float gain_lpc[10]; ///< LPC coefficients for gain (spec: GB)
int phase;
@@ -101,7 +100,7 @@ static void decode(RA288Context *ractx, float gain, int cb_coef)
/* output */
for (x=0; x < 5; x++) {
- ractx->output[ractx->phase*5+x] = ractx->sb[4-x] =
+ ractx->sb[4-x] =
av_clipf(ractx->sb[4-x] + buffer[x], -4095, 4095);
}
}
@@ -200,12 +199,16 @@ static void backward_filter(RA288Context *ractx)
float temp1[37]; // RTMP in the spec
float temp2[11]; // GPTPMP in the spec
float history[8];
+ float speech[40];
int i;
for (i=0 ; i < 8; i++)
history[i] = ractx->lhist[7-i];
- do_hybrid_window(36, 40, 35, ractx->output, temp1, ractx->sp_hist,
+ for (i=0; i < 40; i++)
+ speech[i] = ractx->sb[39-i];
+
+ do_hybrid_window(36, 40, 35, speech, temp1, ractx->sp_hist,
ractx->sp_rec, syn_window);
if (!eval_lpc_coeffs(temp1, ractx->sp_lpc, 36))
@@ -244,7 +247,7 @@ static int ra288_decode_frame(AVCodecContext * avctx, void *data,
decode(ractx, gain, cb_coef);
for (y=0; y < 5; y++)
- *(out++) = 8 * ractx->output[ractx->phase*5 + y];
+ *(out++) = 8 * ractx->sb[4 - y];
if (ractx->phase == 7)
backward_filter(ractx);