From 553735f5a83316f4963e9f37b87830664f139905 Mon Sep 17 00:00:00 2001 From: Alex Converse Date: Tue, 16 Aug 2011 19:06:46 -0700 Subject: [PATCH] avconv: Factorize combining auto vsync with format. --- avconv.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/avconv.c b/avconv.c index 6fa3e9426f..9017d489d8 100644 --- a/avconv.c +++ b/avconv.c @@ -1098,7 +1098,7 @@ static void do_video_out(AVFormatContext *s, AVFrame *in_picture, int *frame_size, float quality) { - int nb_frames, i, ret; + int nb_frames, i, ret, format_video_sync; AVFrame *final_picture; AVCodecContext *enc, *dec; double sync_ipts; @@ -1113,12 +1113,16 @@ static void do_video_out(AVFormatContext *s, *frame_size = 0; - if(video_sync_method){ + format_video_sync = video_sync_method; + if (format_video_sync < 0) + format_video_sync = (s->oformat->flags & AVFMT_VARIABLE_FPS) ? 2 : 1; + + if (format_video_sync) { double vdelta = sync_ipts - ost->sync_opts; //FIXME set to 0.5 after we fix some dts/pts bugs like in avidec.c if (vdelta < -1.1) nb_frames = 0; - else if (video_sync_method == 2 || (video_sync_method<0 && (s->oformat->flags & AVFMT_VARIABLE_FPS))){ + else if (format_video_sync == 2) { if(vdelta<=-0.6){ nb_frames=0; }else if(vdelta>0.6)