wavpackenc: do not copy samples if they are not available
authorPaul B Mahol <onemda@gmail.com>
Sat, 17 Aug 2013 22:25:49 +0000 (22:25 +0000)
committerPaul B Mahol <onemda@gmail.com>
Sat, 17 Aug 2013 22:25:49 +0000 (22:25 +0000)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavcodec/wavpackenc.c

index 3cc74bd..10e6e14 100644 (file)
@@ -2531,9 +2531,11 @@ static int wavpack_encode_block(WavPackEncodeContext *s,
 
     if ((s->flags & WV_FLOAT_DATA) || (s->flags & MAG_MASK) >> MAG_LSB >= 24) {
         av_fast_padded_malloc(&s->orig_l, &s->orig_l_size, sizeof(int32_t) * nb_samples);
-        av_fast_padded_malloc(&s->orig_r, &s->orig_r_size, sizeof(int32_t) * nb_samples);
         memcpy(s->orig_l, samples_l, sizeof(int32_t) * nb_samples);
-        memcpy(s->orig_r, samples_r, sizeof(int32_t) * nb_samples);
+        if (!(s->flags & WV_MONO_DATA)) {
+            av_fast_padded_malloc(&s->orig_r, &s->orig_r_size, sizeof(int32_t) * nb_samples);
+            memcpy(s->orig_r, samples_r, sizeof(int32_t) * nb_samples);
+        }
 
         if (s->flags & WV_FLOAT_DATA)
             got_extra = scan_float(s, samples_l, samples_r, nb_samples);