diff --git a/libswresample/audioconvert.c b/libswresample/audioconvert.c index 2e5bd72234..d2e3722a40 100644 --- a/libswresample/audioconvert.c +++ b/libswresample/audioconvert.c @@ -179,6 +179,7 @@ int swri_audio_convert(AudioConvert *ctx, AudioData *out, AudioData *in, int len off = len&~15; av_assert1(off>=0); av_assert1(off<=len); + av_assert2(ctx->channels == SWR_CH_MAX || !in->ch[ctx->channels]); if(off>0){ if(out->planar == in->planar){ int planes = out->planar ? out->ch_count : 1; diff --git a/libswresample/swresample.c b/libswresample/swresample.c index fdd5aae43b..5d02aafb49 100644 --- a/libswresample/swresample.c +++ b/libswresample/swresample.c @@ -214,6 +214,8 @@ av_cold int swr_init(struct SwrContext *s){ free_temp(&s->preout); free_temp(&s->in_buffer); free_temp(&s->dither); + memset(s->in.ch, 0, sizeof(s->in.ch)); + memset(s->out.ch, 0, sizeof(s->out.ch)); swri_audio_convert_free(&s-> in_convert); swri_audio_convert_free(&s->out_convert); swri_audio_convert_free(&s->full_convert);