summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorLaserEyess <lasereyess@users.noreply.github.com>2021-03-16 21:44:29 -0400
committerJan Ekström <jeebjp@gmail.com>2021-03-28 20:26:41 +0300
commitdd86f195a671887fd192a0257dc2f4e7e3cdcd20 (patch)
treefd6baad253d698aeee59bc969b62b6388d263b56 /video
parente5551f775dcdd1ab535f34171eb7f352443332fd (diff)
downloadmpv-dd86f195a671887fd192a0257dc2f4e7e3cdcd20.tar.bz2
mpv-dd86f195a671887fd192a0257dc2f4e7e3cdcd20.tar.xz
vo_gpu: adjust interpolation_threshold's default
When mpv attempts to play a video that is, on average, 60 FPS on a display that is not exactly 60.00 Hz, two options try to fight each other: `video-sync-max-video-change` and `interpolation-threshold`. Normally, container FPS in something such as an .mp4 or a .mkv is precise enough such that the video can be retimed exactly to the display Hz and interpolation is not activated. In the case of something like certain live streaming videos or other scenario where container FPS is not known, the default option of 0.0001 for `interpolation-threshold` is extremely low, and while `video-sync-max-video-change` retimes the video to what it approximately knows as the "real" FPS, this may or may not be outside of `interpolation-threshold`'s logic at any given time, which causes interpolation to be frequently flipped on and off giving an appearance of stuttering or repeated frames that is oftern quite jarring and makes a video unwatchable. This commit changes the default of `interpolation-threshold` to 0.01, which is the same value as `video-sync-max-video-change`, and guarantees that if the user accepts a video being retimed to match the display, they do not additionally have to worry about a much more precise interpolation threshold randomly flipping on or off. No internal logic is changed so setting `interpolation-threshold` to -1 will still disable this logic entirely and always enable interpolation. The documentation has been updated to reflect this change and give context to the user for which scenarios they might want to disable `interpolation-threshold` logic or change it to a smaller value.
Diffstat (limited to 'video')
-rw-r--r--video/out/gpu/video.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/video/out/gpu/video.c b/video/out/gpu/video.c
index 732d0a07eb..597286a550 100644
--- a/video/out/gpu/video.c
+++ b/video/out/gpu/video.c
@@ -317,7 +317,7 @@ static const struct gl_video_opts gl_video_opts_def = {
},
.scaler_resizes_only = 1,
.scaler_lut_size = 6,
- .interpolation_threshold = 0.0001,
+ .interpolation_threshold = 0.01,
.alpha_mode = ALPHA_BLEND_TILES,
.background = {0, 0, 0, 255},
.gamma = 1.0f,