Commit 77f326dc authored by Michael Niedermayer's avatar Michael Niedermayer

ffmpeg: Make CFR frame drop threshold user adjustable

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 52f2adc0
...@@ -962,7 +962,9 @@ static void do_video_out(AVFormatContext *s, ...@@ -962,7 +962,9 @@ static void do_video_out(AVFormatContext *s,
} }
case VSYNC_CFR: case VSYNC_CFR:
// FIXME set to 0.5 after we fix some dts/pts bugs like in avidec.c // 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; nb_frames = 0;
else if (delta > 1.1) { else if (delta > 1.1) {
nb_frames = lrintf(delta); nb_frames = lrintf(delta);
......
...@@ -482,6 +482,7 @@ extern float dts_error_threshold; ...@@ -482,6 +482,7 @@ extern float dts_error_threshold;
extern int audio_volume; extern int audio_volume;
extern int audio_sync_method; extern int audio_sync_method;
extern int video_sync_method; extern int video_sync_method;
extern float frame_drop_threshold;
extern int do_benchmark; extern int do_benchmark;
extern int do_benchmark_all; extern int do_benchmark_all;
extern int do_deinterlace; extern int do_deinterlace;
......
...@@ -86,6 +86,7 @@ float dts_error_threshold = 3600*30; ...@@ -86,6 +86,7 @@ float dts_error_threshold = 3600*30;
int audio_volume = 256; int audio_volume = 256;
int audio_sync_method = 0; int audio_sync_method = 0;
int video_sync_method = VSYNC_AUTO; int video_sync_method = VSYNC_AUTO;
float frame_drop_threshold = 0;
int do_deinterlace = 0; int do_deinterlace = 0;
int do_benchmark = 0; int do_benchmark = 0;
int do_benchmark_all = 0; int do_benchmark_all = 0;
...@@ -2873,6 +2874,8 @@ const OptionDef options[] = { ...@@ -2873,6 +2874,8 @@ const OptionDef options[] = {
" \"dv\", \"dv50\", \"pal-vcd\", \"ntsc-svcd\", ...)", "type" }, " \"dv\", \"dv50\", \"pal-vcd\", \"ntsc-svcd\", ...)", "type" },
{ "vsync", HAS_ARG | OPT_EXPERT, { opt_vsync }, { "vsync", HAS_ARG | OPT_EXPERT, { opt_vsync },
"video sync method", "" }, "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 }, { "async", HAS_ARG | OPT_INT | OPT_EXPERT, { &audio_sync_method },
"audio sync method", "" }, "audio sync method", "" },
{ "adrift_threshold", HAS_ARG | OPT_FLOAT | OPT_EXPERT, { &audio_drift_threshold }, { "adrift_threshold", HAS_ARG | OPT_FLOAT | OPT_EXPERT, { &audio_drift_threshold },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment