diff --git a/libavcodec/wavpackenc.c b/libavcodec/wavpackenc.c index 3cc74bd88d..10e6e141aa 100644 --- a/libavcodec/wavpackenc.c +++ b/libavcodec/wavpackenc.c @@ -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);