mpv-player / mpv-player/mpv

Playback speed doubles when window is on two monitors

Open
#10,489 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

os:linux vo:gpu:wayland
Dominant language
C
Stars
37k
Forks
3.5k
Avg merge
1d 10h
Merged PRs (30d)
22

Description

  • mpv 0.34.0-395-g9add44b11a
  • Arch Linux
  • compiled from source (latest master)
  • KDE Plasma 5.25.4 on Wayland
  • Mesa 22.1.4 using AMD R9 380

I have two 60Hz monitors and when the window overlaps both monitors, the playback speed usually (but not always) gets doubled.

In this video it doesn't happen in the beginning, but then afterwards it does two times.
I only recorded the left monitor, as that's where where most of the window is, but moving it only a little bit onto the right one already triggers it.
I've added --osd-msg1="fps \${estimated-display-fps}\njitter \${vsync-jitter}" for the video.

https://user-images.githubusercontent.com/8932183/182983850-8b972924-158f-46cb-8c15-09d2d50e285d.mp4

Note how the estimated-display-fps and vsync-jitter increase when this happens.

Reproduction steps

mpv --no-config --video-sync=display-resample https://github.com/haasn/interpolation-samples/raw/master/60.000.mkv
Also happens with local files and files with different refresh rates.
Happens with all video-sync=display-* options.

Expected behavior

Always plays video at the same speed, regardless of position

Actual behavior

Playback at 2x speed when window is on two monitors

Log file

output.txt

Sample files

haasns 60 fps test video

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

Start by running the reported mpv command with --video-sync=display-resample while moving the window across both monitors, and compare the estimated-display-fps and vsync-jitter values from the OSD. Use output.txt and the video-sync=display-* options as the initial context. Done means playback remains at the same speed regardless of window position, including with local files and different refresh rates.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
desktop, operating-systems, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.