diff --git a/libswresample/swresample.c b/libswresample/swresample.c
index c0a1893cabc92f1aaec4c34e32caa47e94686af0..584c74b6d980935178b439fe7e72cc91975689bf 100644
--- a/libswresample/swresample.c
+++ b/libswresample/swresample.c
@@ -166,7 +166,7 @@ int swr_init(SwrContext *s){
         return -1;
     }
 
-    if(s-> in.ch_count && s->in.ch_count != av_get_channel_layout_nb_channels(s-> in_ch_layout)){
+    if(s-> in.ch_count && s-> in_ch_layout && s->in.ch_count != av_get_channel_layout_nb_channels(s-> in_ch_layout)){
         av_log(s, AV_LOG_WARNING, "Input channel layout has a different number of channels than there actually is, ignoring layout\n");
         s-> in_ch_layout= 0;
     }