mpv-player / mpv-player/mpv

Frame doubling (to better support FreeSync/G-Sync)

Open
#6,137 64 comments 17 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

core:video filter meta:feature-request
Dominant language
C
Stars
37k
Forks
3.5k
Avg merge
1d 10h
Merged PRs (30d)
22

Description

mpv version and platform

N/A, Windows 10 x64

Reproduction steps

Play a 24fps video using a monitor which has adaptive sync but which does not have built-in low-framerate compensation. (Most 4K monitors fall under this, for example. A 40-60hz freesync range is typical with no LFC.)

Expected behavior

Each frame should be presented twice, resulting in a 48fps effective framerate and allowing freesync to kick in. The video should therefore play free of typical 24-on-60 judder.

Win10's built-in "Films & TV" player can do this, and so can Edge. Verified using my monitor's OSD. No other player that I've tested can do it. I think it would be a great feature to add for owners of adaptive sync displays.

I would suggest that the video's actual framerate should be multiplied by the largest integer such that the result does not exceed the monitor's reported refresh rate. For example, 24fps content would be doubled to 48 on 60hz displays, and tripled to 72 on 75hz displays. This maximises the likelihood that adaptive sync will kick in.

Actual behavior

The video is presented at 24fps (confirmed with Afterburner's OSD), and freesync does not kick in. The monitor remains at 60fps, and the expected judder is present.

Log file

N/A

Sample files

N/A, any 24fps file

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by reproducing 24fps playback on a Windows 10 adaptive-sync monitor without low-framerate compensation, then trace how mpv selects presentation timing and refresh-rate behavior. Done means frame doubling or tripling follows the monitor's reported refresh rate and removes the described judder.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
audio-video-rtc
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.