0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 03:52:22 +02:00

vo: delay vsync samples by at least 10 refreshes

This filters out vastly inaccurate values from presentation feedback
that can happen shortly after restarting playback or seeking.

Makes estimated vsync converge almost instantly instead of waiting
until those outliers are dropped from the past samples.
This commit is contained in:
Kacper Michajłow 2023-11-12 22:31:29 +01:00 committed by Dudemanguy
parent 4420dfee2a
commit 39cab760b3

View File

@ -423,6 +423,7 @@ static double vsync_stddef(struct vo *vo, double ref_vsync)
}
#define MAX_VSYNC_SAMPLES 1000
#define DELAY_VSYNC_SAMPLES 10
// Check if we should switch to measured average display FPS if it seems
// "better" then the system-reported one. (Note that small differences are
@ -507,7 +508,7 @@ static void update_vsync_timing_after_swap(struct vo *vo,
}
in->num_successive_vsyncs++;
if (in->num_successive_vsyncs <= vo->opts->swapchain_depth)
if (in->num_successive_vsyncs <= DELAY_VSYNC_SAMPLES)
return;
if (vsync_time <= 0 || vsync_time <= prev_vsync) {