You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	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