Skip to content

Conversation

@Dudemanguy
Copy link
Member

27a7827 almost got it but it should be an and condition not an or. When we unlock VO to draw the core, the OSD can update after we flip the page and the player can also pause itself in that time. That means that we will clear the redraw request but due to the OSD update it actually needs to draw again. Because the player paused itself in that time frame, this redraw gets lost and you have the mismatch. The simplest way to avoid that case is to only clear the redraw_request while mpv is playing. The paused case will always get handled later in do_redraw so it does not get missed. The slight downside is that it's technically possible to do a redundant redraw (e.g. what if you pause before draw_frame), but this theoretical inefficiency is deemed not really relevant or important enough to add more confusing code to avoid. Fixes #17288.

@somerandoname does this fix it for you?

27a7827 almost got it but it should be
an and condition not an or. When we unlock VO to draw the core, the OSD
can update after we flip the page and the player can also pause itself
in that time. That means that we will clear the redraw request but due
to the OSD update it actually needs to draw again. Because the player
paused itself in that time frame, this redraw gets lost and you have the
mismatch. The simplest way to avoid that case is to only clear the
redraw_request while mpv is playing. The paused case will always get
handled later in do_redraw so it does not get missed. The slight
downside is that it's technically possible to do a redundant redraw
(e.g. what if you pause before draw_frame), but this theoretical
inefficiency is deemed not really relevant or important enough to add
more confusing code to avoid. Fixes mpv-player#17288.
@somerandoname
Copy link

It does indeed, thank you 😄

@Dudemanguy Dudemanguy merged commit d5bc615 into mpv-player:master Feb 9, 2026
29 checks passed
@Dudemanguy Dudemanguy deleted the redraw-requests branch February 9, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

OSC UI does not always update during frame foward stepping

3 participants