mxfenc: Don't allow muxing audio-only since it's not supported
authorTomas Härdin <tomas.hardin@codemill.se>
Thu, 29 Mar 2012 09:48:45 +0000 (11:48 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 3 Apr 2012 08:11:27 +0000 (10:11 +0200)
This fixes muxing audio-only output resulting in SIGFPE due to lack of EditRate.

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

index 810c566..b2ef1f3 100644 (file)
@@ -1412,12 +1412,13 @@ static int mxf_write_header(AVFormatContext *s)
             return AVERROR(ENOMEM);
         st->priv_data = sc;
 
+        if ((i == 0) ^ (st->codec->codec_type == AVMEDIA_TYPE_VIDEO)) {
+            av_log(s, AV_LOG_ERROR, "there must be exactly one video stream and it must be the first one\n");
+            return -1;
+        }
+
         if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
             AVRational rate;
-            if (i != 0) {
-                av_log(s, AV_LOG_ERROR, "video stream must be first track\n");
-                return -1;
-            }
             if (fabs(av_q2d(st->codec->time_base) - 1/25.0) < 0.0001) {
                 samples_per_frame = PAL_samples_per_frame;
                 mxf->time_base = (AVRational){ 1, 25 };