ffmpeg: rewrite vsync / notimestamps handling
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 24 Nov 2011 03:57:38 +0000 (04:57 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 24 Nov 2011 03:57:38 +0000 (04:57 +0100)
The qatar implementation makes no sense.
a muxer without timestamps is constant fps thus needs vsync.
the crc/mp5 are special cases that have timestamps yet allow any
nonsensical timestamps.
raw (yuv/rgb) video is constant fps thus needs vsync too.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
ffmpeg.c
tests/ref/lavf/gxf

index f6a9765..577425b 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1246,8 +1246,7 @@ static void do_video_out(AVFormatContext *s,
 
     format_video_sync = video_sync_method;
     if (format_video_sync < 0)
-        format_video_sync = (s->oformat->flags & AVFMT_NOTIMESTAMPS) ? 0 :
-                            (s->oformat->flags & AVFMT_VARIABLE_FPS) ? 2 : 1;
+        format_video_sync = (s->oformat->flags & AVFMT_VARIABLE_FPS) ? ((s->oformat->flags & AVFMT_NOTIMESTAMPS) ? 0 : 2) : 1;
 
     if (format_video_sync) {
         double vdelta = sync_ipts - ost->sync_opts + duration;
index 6b39c2f..68bc978 100644 (file)
@@ -1,3 +1,3 @@
 346d38d330ab5cb0caa6b5537167bc0d *./tests/data/lavf/lavf.gxf
 796392 ./tests/data/lavf/lavf.gxf
-./tests/data/lavf/lavf.gxf CRC=0x345f86eb
+./tests/data/lavf/lavf.gxf CRC=0x102918fd