Do not reject rawvideo without a frame rate but use 25 instead.
authorLaurent Aimar <fenrir@videolan.org>
Fri, 7 Nov 2008 10:52:32 +0000 (11:52 +0100)
committerLaurent Aimar <fenrir@videolan.org>
Fri, 7 Nov 2008 10:52:32 +0000 (11:52 +0100)
 The rawvideo stream may not be CFR but has a timestamp for every frame.
 Anyway I prefer that we try to display the stream even with small glitches
than rejecting it.

modules/codec/rawvideo.c

index cfb4934..f0ed573 100644 (file)
@@ -153,16 +153,16 @@ static int OpenDecoder( vlc_object_t *p_this )
 
     es_format_Copy( &p_dec->fmt_out, &p_dec->fmt_in );
 
+    date_Init( &p_sys->pts, p_dec->fmt_out.video.i_frame_rate,
+               p_dec->fmt_out.video.i_frame_rate_base );
     if( p_dec->fmt_out.video.i_frame_rate == 0 ||
         p_dec->fmt_out.video.i_frame_rate_base == 0)
     {
-        msg_Err( p_dec, "invalid frame rate %d/%d",
-                 p_dec->fmt_out.video.i_frame_rate,
-                 p_dec->fmt_out.video.i_frame_rate_base);
-        return VLC_EGENERIC;
+        msg_Warn( p_dec, "invalid frame rate %d/%d, using 25 fps instead",
+                  p_dec->fmt_out.video.i_frame_rate,
+                  p_dec->fmt_out.video.i_frame_rate_base);
+        date_Init( &p_sys->pts, 25, 1 );
     }
-    date_Init( &p_sys->pts, p_dec->fmt_out.video.i_frame_rate,
-               p_dec->fmt_out.video.i_frame_rate_base);
 
     /* Find out p_vdec->i_raw_size */
     vout_InitFormat( &p_dec->fmt_out.video, p_dec->fmt_in.i_codec,