summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/ra144.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/ra144.c b/libavcodec/ra144.c
index 01cbc86f3e..5661bdc6f6 100644
--- a/libavcodec/ra144.c
+++ b/libavcodec/ra144.c
@@ -138,8 +138,13 @@ static void add_wav(int16_t *dest, int n, int skip_first, int *m,
for (i=!skip_first; i<3; i++)
v[i] = (gain_val_tab[n][i] * m[i]) >> gain_exp_tab[n];
+ if (v[0]) {
for (i=0; i < BLOCKSIZE; i++)
dest[i] = (s1[i]*v[0] + s2[i]*v[1] + s3[i]*v[2]) >> 12;
+ } else {
+ for (i=0; i < BLOCKSIZE; i++)
+ dest[i] = (s2[i]*v[1] + s3[i]*v[2]) >> 12;
+ }
}
static unsigned int rescale_rms(unsigned int rms, unsigned int energy)