mpv-player / mpv

🎥 Command line video player
https://mpv.io
Other
27.78k stars 2.86k forks source link

command 'change-list glsl-shaders toggle' only resolve the first path #14579

Open ahaoboy opened 1 month ago

ahaoboy commented 1 month ago

mpv Information

mpv v0.38.0-601-gf470b63a Copyright © 2000-2024 mpv/MPlayer/mplayer2 projects
 built on Jul 12 2024 00:10:02
libplacebo version: v7.349.0 (v7.349.0-dirty)
FFmpeg version: N-116241-g70c6b904b
FFmpeg library versions:
   libavcodec      61.10.100
   libavdevice     61.2.100
   libavfilter     10.2.102
   libavformat     61.5.101
   libavutil       59.28.100
   libswresample   5.2.100
   libswscale      8.2.100

Other Information

Reproduction Steps

Use shortcut key binding and script execution commands respectively. The shortcut key binding can be executed correctly, but the script execution error occurs

This problem only occurs after version 0.38. The script can run correctly in version 0.37.

mpv 1c9c2f5 Copyright © 2000-2023 mpv/MPlayer/mplayer2 projects
 built on Dec 10 2023 12:02:48
libplacebo version: v6.338.0-62-g52314e0-dirty
FFmpeg version: N-112938-g12e25af7a
FFmpeg library versions:
   libavutil       58.32.100
   libavcodec      60.35.100
   libavformat     60.18.100
   libswscale      7.6.100
   libavfilter     9.14.100
   libswresample   4.13.100
Ctrl+0  change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_VL.glsl"
function cb() {
  mp.command('change-list glsl-shaders toggle "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_VL.glsl"')
}
setTimeout(cb, 1000)

From the error report, we can see that only the ~~ of the first shader path is processed.

[file] Cannot open file 'C:/Users/Ace/Downloads/mpv-x86_64-v3-20240718-git-ed77616/portable_config/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_Restore_CNN_M.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl': Invalid argument

Expected Behavior

All shader paths in script execution commands are processed correctly

Actual Behavior

Only the first path is processed

Log File

log.log

Sample Files

No response

I carefully read all instruction and confirm that I did the following:

hooke007 commented 1 month ago

I don't remember toggle had ever allowed to handle multi shaders.

guidocella commented 1 month ago

change-list toggle is documented to toggle a single item but vf toggle is documented to accept several filters, so it is unclear if this was supposed to work.

ahaoboy commented 1 month ago

It does seem to accept only one path, and even using an absolute path gives an error, so is there an alternative?

  mp.command('change-list glsl-shaders toggle "C:/app/mpv-test/portable_config/shaders/Anime4K_Clamp_Highlights.glsl;C:/app/mpv-test/portable_config/shaders/Anime4K_Restore_CNN_VL.glsl"')
[file] Cannot open file 'C:/app/mpv-test/portable_config/shaders/Anime4K_Clamp_Highlights.glsl;C:/app/mpv-test/portable_config/shaders/Anime4K_Restore_CNN_VL.glsl': Invalid argument
Failed to open C:/app/mpv-test/portable_config/shaders/Anime4K_Clamp_Highlights.glsl;C:/app/mpv-test/portable_config/shaders/Anime4K_Restore_CNN_VL.glsl.
hooke007 commented 1 month ago

Why not merging cmds instead?

change-list glsl-shaders toggle A ; change-list glsl-shaders toggle B
monarc99 commented 1 month ago

I'm not sure, but do you have to use ; or : to separate the parameters?

ahaoboy commented 1 month ago

change-list glsl-shaders toggle A ; change-list glsl-shaders toggle B

Thanks

ahaoboy commented 1 month ago

I'm not sure, but do you have to use ; or : to separate the parameters?

Separators do not work This works

change-list glsl-shaders toggle A ; change-list glsl-shaders toggle B