ffmpeg: Make CFR frame drop threshold user adjustable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		
							
								
								
									
										4
									
								
								ffmpeg.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								ffmpeg.c
									
									
									
									
									
								
							@@ -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);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								ffmpeg.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								ffmpeg.h
									
									
									
									
									
								
							@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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 },
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user