swr: fix assert failure
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 20 Dec 2011 10:23:46 +0000 (11:23 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 3 Jan 2012 18:54:33 +0000 (19:54 +0100)
Bug found by: Oana Stratulat
GCI-id: 7211207

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit aa1c590b29d30b11c2f4830e6bc08e8f936f557f)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libswresample/swresample.c

index 0575f7d..f97a2c1 100644 (file)
@@ -202,7 +202,12 @@ int swr_init(struct SwrContext *s){
     if(!s->out.ch_count)
         s->out.ch_count= av_get_channel_layout_nb_channels(s->out_ch_layout);
 
-av_assert0(s-> in.ch_count);
+    if(!s-> in.ch_count){
+        av_assert0(!s->in_ch_layout);
+        av_log(s, AV_LOG_ERROR, "Input channel count and layout are unset\n");
+        return -1;
+    }
+
 av_assert0(s->used_ch_count);
 av_assert0(s->out.ch_count);
     s->resample_first= RSC*s->out.ch_count/s->in.ch_count - RSC < s->out_sample_rate/(float)s-> in_sample_rate - 1.0;