diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-01-17 04:38:32 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-02-04 02:40:41 +0100 |
commit | 77f326dc36b7b600e5aef6b7dca83e8053d9954d (patch) | |
tree | fceb50f0aa9e9491378e2a14dbc9326af3c4b89b | |
parent | 52f2adc015ba4a05c3da730e87b63b343747424d (diff) | |
download | ffmpeg-77f326dc36b7b600e5aef6b7dca83e8053d9954d.tar.gz |
ffmpeg: Make CFR frame drop threshold user adjustable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | ffmpeg.c | 4 | ||||
-rw-r--r-- | ffmpeg.h | 1 | ||||
-rw-r--r-- | ffmpeg_opt.c | 3 |
3 files changed, 7 insertions, 1 deletions
@@ -962,7 +962,9 @@ static void do_video_out(AVFormatContext *s, } case VSYNC_CFR: // FIXME set to 0.5 after we fix some dts/pts bugs like in avidec.c - if (delta < -1.1) + if (frame_drop_threshold && delta < frame_drop_threshold && ost->frame_number) { + nb_frames = 0; + } else if (delta < -1.1) nb_frames = 0; else if (delta > 1.1) { nb_frames = lrintf(delta); @@ -482,6 +482,7 @@ extern float dts_error_threshold; extern int audio_volume; extern int audio_sync_method; extern int video_sync_method; +extern float frame_drop_threshold; extern int do_benchmark; extern int do_benchmark_all; extern int do_deinterlace; diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c index c5e38967fa..56b882eead 100644 --- a/ffmpeg_opt.c +++ b/ffmpeg_opt.c @@ -86,6 +86,7 @@ float dts_error_threshold = 3600*30; int audio_volume = 256; int audio_sync_method = 0; int video_sync_method = VSYNC_AUTO; +float frame_drop_threshold = 0; int do_deinterlace = 0; int do_benchmark = 0; int do_benchmark_all = 0; @@ -2873,6 +2874,8 @@ const OptionDef options[] = { " \"dv\", \"dv50\", \"pal-vcd\", \"ntsc-svcd\", ...)", "type" }, { "vsync", HAS_ARG | OPT_EXPERT, { opt_vsync }, "video sync method", "" }, + { "frame_drop_threshold", HAS_ARG | OPT_FLOAT | OPT_EXPERT, { &frame_drop_threshold }, + "frame drop threshold", "" }, { "async", HAS_ARG | OPT_INT | OPT_EXPERT, { &audio_sync_method }, "audio sync method", "" }, { "adrift_threshold", HAS_ARG | OPT_FLOAT | OPT_EXPERT, { &audio_drift_threshold }, |