diff options
author | Alex Converse <alex.converse@gmail.com> | 2011-08-16 19:06:46 -0700 |
---|---|---|
committer | Alex Converse <alex.converse@gmail.com> | 2011-08-17 10:16:52 -0700 |
commit | 553735f5a83316f4963e9f37b87830664f139905 (patch) | |
tree | 1f81d6a64ad33ee18068c4dab349b2eceff098ba | |
parent | 87ef060c3b0425d520ae42cd3dd61dd6574a5c26 (diff) | |
download | ffmpeg-553735f5a83316f4963e9f37b87830664f139905.tar.gz |
avconv: Factorize combining auto vsync with format.
-rw-r--r-- | avconv.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -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) |