mpv-player / mpv-player/mpv

IPC only fires percent-pos 100 event on input

Open
#16,592 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

mpv Information
mpv v0.40.0-dirty Copyright © 2000-2025 mpv/MPlayer/mplayer2 projects
 built on Jul 14 2025 14:00:27
libplacebo version: v7.351.0
FFmpeg version: n7.1.1
FFmpeg library versions:
   libavcodec      61.19.101
   libavdevice     61.3.100
   libavfilter     10.4.100
   libavformat     61.7.100
   libavutil       59.39.100
   libswresample   5.3.100
   libswscale      8.3.100
Other Information
- Linux version: Arch Linux
- Kernel Version: 6.12.32-1-lts
- GPU Model: Advanced Micro Devices, Inc. [AMD/ATI] Lucienne [1002:164c] (rev c2)
- Mesa/GPU Driver Version: Mesa 25.1.6-arch1.1
- Window Manager and Version: i3wm 4.24
- Source of mpv: Arch repository
- Latest known working version:
- Issue started after the following happened:
Reproduction Steps
  • Launched mpv with --input-ipc-server.
  • Sent observe_property for percent-pos and pause.
  • Sent loadfile.
  • Waited for the playback to finish.

Config used:

idle=yes
force-window=yes
keep-open=yes
input-default-bindings=no
Expected Behavior

Expected to receive {"event":"property-change","id":1,"name":"percent-pos","data":"100.000000"} immediately before or after receiving one for pause

Actual Behavior

Only last percent-pos before completion gets sent, while "100%" one isn't getting sent.

At least not until there's any keyboard/mouse input sent to mpv, such as moving mouse over the window or pressing any key (even without a binding).

If no input is provided (as is my case, with playback being controlled programmatically) - 100% event is never getting sent. Log below illustrates me waiting a full minute after playback finished, before i moved the mouse to trigger the evetn being sent

2025-07-28T09:23:19.442231Z DEBUG mpv_ctl_server::mpv: Received message: {"event":"property-change","id":1,"name":"percent-pos","data":"99.775561"}
2025-07-28T09:23:19.475551Z DEBUG mpv_ctl_server::mpv: Received message: {"event":"property-change","id":1,"name":"percent-pos","data":"99.851114"}
2025-07-28T09:23:19.543107Z DEBUG mpv_ctl_server::mpv: Received message: {"event":"property-change","id":1,"name":"pause","data":"yes"}
2025-07-28T09:24:30.916297Z DEBUG mpv_ctl_server::mpv: Received message: {"event":"property-change","id":1,"name":"percent-pos","data":"100.000000"}
Log File

mpv-output.txt

Sample Files

No response

I carefully read all instruction and confirm that I did the following:
  • I tested with the latest mpv version to validate that the issue is not already fixed.
  • I provided all required information including system and mpv version.
  • I produced the log file with the exact same set of files, parameters, and conditions used in "Reproduction Steps", with the addition of --log-file=output.txt.
  • I produced the log file while the behaviors described in "Actual Behavior" were actively observed.
  • I attached the full, untruncated log file.
  • I attached the backtrace in the case of a crash.

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 reproducing the issue with --input-ipc-server, observe_property for percent-pos and pause, and loadfile using the configuration shown. Trace how percent-pos and pause notifications are queued when playback finishes, then verify that the 100.000000 percent-pos event is delivered without keyboard or mouse input.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
api, cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.