summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/ra144.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libavcodec/ra144.c b/libavcodec/ra144.c
index 12eb96d544..b7e4c6fbc8 100644
--- a/libavcodec/ra144.c
+++ b/libavcodec/ra144.c
@@ -105,7 +105,7 @@ static void do_voice(const int *a1, int *a2)
static void do_output_subblock(Real144_internal *glob, const unsigned short *gsp, unsigned int gval, signed short *output_buffer, GetBitContext *gb)
{
unsigned short int buffer_a[40];
- unsigned short int buffer_d[40];
+ unsigned short int *buffer_d;
int e, f, g;
int a = get_bits(gb, 7);
int d = get_bits(gb, 8);
@@ -125,12 +125,12 @@ static void do_output_subblock(Real144_internal *glob, const unsigned short *gs
else
g = 0;
+ memmove(glob->buffer_2, glob->buffer_2 + BLOCKSIZE, (BUFFERSIZE - BLOCKSIZE) * 2);
+ buffer_d = glob->buffer_2 + BUFFERSIZE - BLOCKSIZE;
+
add_wav(d, a, g, e, f, buffer_a, etable1 + b*BLOCKSIZE,
etable2 + c*BLOCKSIZE, buffer_d);
- memmove(glob->buffer_2, glob->buffer_2 + BLOCKSIZE, (BUFFERSIZE - BLOCKSIZE) * 2);
- memcpy(glob->buffer_2 + BUFFERSIZE - BLOCKSIZE, buffer_d, BLOCKSIZE * 2);
-
final(gsp, buffer_d, output_buffer, glob->buffer, BLOCKSIZE);
}