Frame doubling (to better support FreeSync/G-Sync)
Nobody has claimed this yet.
- 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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