]> git.sesse.net Git - vlc/commitdiff
AVFormat Muxer : Don't create AVStreams for unsupported ES types.
authorJai Menon <jmenon86@gmail.com>
Wed, 16 Jun 2010 11:25:07 +0000 (16:55 +0530)
committerJean-Baptiste Kempf <jb@videolan.org>
Wed, 16 Jun 2010 16:36:22 +0000 (18:36 +0200)
Currently, the libavformat based muxer supports audio and video streams
properly. Subtitle muxing is still a work-in-progress. Till those are
verified to work as well, we need to ensure that we don't create AVStreams
with invalid codec type.

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
modules/demux/avformat/mux.c

index cd4049251cab4659026a80dc812397f68bfeed8c..00c2277fdc8b7df80c06d2c67c77bf6522a6a3fa 100644 (file)
@@ -214,6 +214,12 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
     p_input->p_sys = malloc( sizeof( int ) );
     *((int *)p_input->p_sys) = p_sys->oc->nb_streams;
 
+    if( p_input->p_fmt->i_cat != VIDEO_ES && p_input->p_fmt->i_cat != AUDIO_ES)
+    {
+        msg_Warn( p_mux, "Unhandled ES category" );
+        return VLC_EGENERIC;
+    }
+
     stream = av_new_stream( p_sys->oc, p_sys->oc->nb_streams);
     if( !stream )
     {
@@ -257,8 +263,6 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
         codec->time_base.num = p_input->p_fmt->video.i_frame_rate_base;
         break;
 
-    default:
-        msg_Warn( p_mux, "Unhandled ES category" );
     }
 
     codec->bit_rate = p_input->p_fmt->i_bitrate;