diff --git a/libavutil/samplefmt.c b/libavutil/samplefmt.c index fc077f6444..c7428940e1 100644 --- a/libavutil/samplefmt.c +++ b/libavutil/samplefmt.c @@ -160,13 +160,20 @@ int av_samples_fill_arrays(uint8_t **audio_data, int *linesize, if (buf_size < 0) return buf_size; + if (linesize) + *linesize = line_size; + + memset(audio_data, 0, planar + ? sizeof(*audio_data) * nb_channels + : sizeof(*audio_data)); + + if (!buf) + return buf_size; + audio_data[0] = (uint8_t *)buf; for (ch = 1; planar && ch < nb_channels; ch++) audio_data[ch] = audio_data[ch-1] + line_size; - if (linesize) - *linesize = line_size; - return buf_size; }