mpv-player / mpv-player/mpv

auto profile switches from `hwdec=auto-copy` to `hwdec=auto` and selects the wrong decoder.

Open
#16,671 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

mpv Information
mpv v0.40.0-216-g440f35a26 Copyright ?? 2000-2025 mpv/MPlayer/mplayer2 projects
 built on Jul 16 2025 14:07:05
libplacebo version: v7.351.0 (v7.351.0-23-g69653ce-dirty)
FFmpeg version: N-120302-gbfab02629
FFmpeg library versions:
   libavcodec      62.8.100
   libavdevice     62.0.100
   libavfilter     11.2.100
   libavformat     62.1.103
   libavutil       60.5.100
   libswresample   6.0.100
   libswscale      9.0.100
Other Information
- Windows version: Microsoft Windows [Version 10.0.26100.4946]
- GPU model, driver and version: GTX 1650, Studio, 580.97
- Source of mpv: https://github.com/zhongfly/mpv-winbuild/releases
- Latest known working version: Unknown
- Issue started after the following happened: Unknown
Reproduction Steps

Create portable_config
Add mpv.conf:

profile=high-quality
glsl-shader="~~/FSRCNNX_x2_16-0-4-1.glsl"
glsl-shader="~~/KrigBilateral.glsl"

fs=yes
keep-open=yes
hr-seek=yes
keep-open-pause=no
auto-window-resize=no
osd-bar-border-size=0.5
image-display-duration=0.4
input-default-bindings=no
watch-later-options-remove=pause

demuxer-max-bytes=1GiB
demuxer-max-back-bytes=1GiB
directory-mode=recursive
autocreate-playlist=filter

osd-bar-align-y=-0.98
osd-border-size=1
osd-font-size=30

alang=ja,en
volume-max=100

hwdec=auto-copy
target-colorspace-hint=yes
video-sync=display-resample

sub-auto=fuzzy
sub-fonts-dir=Fonts
sub-file-paths=Subs;eng;sub

screenshot-format=png
screenshot-png-compression=0

ytdl-raw-options=playlist-end=100

log-file=test.txt

# Profiles
[Switch from FSRCNNX x16 to FSRCNNX x8]
profile-cond=p["frame-drop-count"]>50 or p["mistimed-frame-count"]>50 or p["vo-delayed-frame-count"]>50
glsl-shaders-remove="~~/FSRCNNX_x2_16-0-4-1.glsl"
glsl-shaders-remove="~~/KrigBilateral.glsl"
glsl-shader="~~/FSRCNNX_x2_8-0-4-1.glsl"
glsl-shader="~~/KrigBilateral.glsl"
profile-restore=copy

[Turn off FSRCNNX x8 and KrigBilateral]
profile-cond=p["frame-drop-count"]>100 or p["mistimed-frame-count"]>100 or p["vo-delayed-frame-count"]>100
glsl-shaders-remove="~~/FSRCNNX_x2_8-0-4-1.glsl"
glsl-shaders-remove="~~/KrigBilateral.glsl"
profile-restore=copy

[Dropped frames]
profile-cond=p["frame-drop-count"]>30 or p["mistimed-frame-count"]>150 or p["vo-delayed-frame-count"]>150
hwdec=auto

Also add the correct user shaders.
Use yt-dlp to download https://www.youtube.com/watch?v=pQV8Xz2-SS0
Play the video.

Expected Behavior

hwdec=d3d11va

Actual Behavior

auto profile switches from hwdec=auto-copy to hwdec=auto and selects the wrong decoder.

[   0.181][v][vd] Requesting pixfmt 'd3d11' from decoder.
[   0.211][i][vd] Using hardware decoding (d3d11va-copy).
[   1.486][w][vd] Error while decoding frame (hardware decoding)!
[   1.489][v][vd] Attempting next decoding method after failure of vp9-d3d11va-copy.
[   1.489][d][vd] Skipping previously attempted hwdec: vp9-d3d11va
[   1.489][d][vd] Skipping previously attempted hwdec: vp9-vulkan
[   1.489][d][vd] Skipping previously attempted hwdec: vp9-nvdec
[   1.489][d][vd] Skipping previously attempted hwdec: vp9-vaapi
[   1.489][d][vd] Skipping previously attempted hwdec: vp9-d3d11va-copy
[   1.489][v][vd] Looking at hwdec vp9-vulkan-copy...
[   1.604][v][vd] Requesting pixfmt 'vulkan' from decoder.
[   1.606][d][ffmpeg/video] vp9: Vulkan decoder initialization successful
[   1.615][i][vd] Using hardware decoding (vulkan-copy).
Log File

test.txt

Sample Files

https://www.youtube.com/watch?v=pQV8Xz2-SS0

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 behavior with the listed portable_config/mpv.conf settings and inspect the attached test.txt log. Trace the profile transition from hwdec=auto-copy to hwdec=auto and the subsequent decoder fallback; done means the dropped-frames profile selects the expected decoder behavior instead of the wrong fallback.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
desktop
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.