[playback] Seamless branching files drop frames on merging spot
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 37k
- Forks
- 3.5k
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 22
Description
Important Information
Information:
- mpv version: 0.35.0-348-g0f13c38e
- Windows Version: Win11 x64
- Source of the mpv binary: shinchiro mpv-winbuild
Reproduction steps
Use any file that was stitched together (two or more small file parts) in the process of creation. In my case, this is a 4k blu ray where the movie is split into many small parts due to having both an extended and theatrical version on one disc. Playing back such a file leads to unexpected behavior. In my case whenever such a "merging spot" (the spot where the first part ends and the second part starts) is hit the frame drop counter gets reset. This happens regardless of displaying framerate. The other issue comes when you play the file at its own (resolution)framerate. In this case 2160@23pHDR. In this scenario, many/visible frame drops occur when the merging spot is being hit in addition to the frame drop counter reset.
I created a small sample, that shows the issue.
mpv.com file-reset-framedrop.mkv -vo=gpu-next -hwdec=d3d11va -v -msg-level=all=v,ffmpeg/video=status
In the log you can see this one
[cplayer] VO: Description: Video output based on libplacebo
[vo/gpu-next] reconfig to 3840x2160 d3d11[p010] bt.2020-ncl/bt.2020/pq/limited/display SP=4.359606 CL=uhd
[vo/gpu-next/win32] reset window bounds: 961:31:958:1000
[vo/gpu-next] Window size: 958x1000 (Borders: l=0 t=0 r=0 b=0)
[vo/gpu-next] Video source: 3840x2160 (1:1)
[vo/gpu-next] Video display: (0, 0) 3840x2160 -> (0, 231) 958x538
[vo/gpu-next] Video scale: 0.249479/0.249074
[vo/gpu-next] OSD borders: l=0 t=231 r=0 b=231
[vo/gpu-next] Video borders: l=0 t=231 r=0 b=231
[statusline] AV: 00:00:03 / 00:00:06 (51%) A-V: 0.004
It looks like a completely new file has been opened...
Expected behavior
Just play the file without introducing additional frame drops and do not reset counters.
Actual behavior
When the merging spot is reached and played, frame drops occur and the framedrop counter is reset.
Log file
file-reset.txt
(I just cleaned it a bit, I only deleted some [ffmpeg/video] hevc: Skipping NAL unit 63 messages...)
Sample files
I hope file.io is okay... The link will expire in about 4 months.
Inside the zip, you will find the mkv file
file-reset-framedrop.zip
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
Start by reproducing the issue with mpv.com file-reset-framedrop.mkv -vo=gpu-next -hwdec=d3d11va -v -msg-level=all=v,ffmpeg/video=status and inspect the verbose log around the merging spot. Done means stitched files play through joins without additional frame drops or resetting the frame-drop counter.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- audio-video-rtc
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100