diff options
author | nanahi <130121847+na-na-hi@users.noreply.github.com> | 2024-03-02 20:33:02 -0500 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2024-03-11 21:29:57 +0100 |
commit | 27fb4c474f5ca850470cd07dfc789ba8bf94b35c (patch) | |
tree | 02b3c8d31a631fbc7e96bfc535b0b0079bc02ce8 /input | |
parent | 084a8782e39a80291817593c50f68633a2ab8ef0 (diff) | |
download | mpv-27fb4c474f5ca850470cd07dfc789ba8bf94b35c.tar.bz2 mpv-27fb4c474f5ca850470cd07dfc789ba8bf94b35c.tar.xz |
vo_gpu: fix broken chroma plane for rotated semi-planar formats
For image formats with 2 or more chroma planes such as YU12, there is
a plane merging pass for these planes calling finish_pass_tex which
does a format conversion. After this conversion, the cscale shader
afterwards works properly.
However, for image formats with only 1 chroma plane (semi-planar formats),
including NV12 and P010, this merging pass is never called, which breaks
the cscale shader afterwards if the video is rotated with subsampled
chroma.
Fix this by adding an explicit conversion pass if this situation is
detected after the pre-scale hooks, so if there are shaders hooking on
CHROMA (like the deband filter) and the conversion is done by pass_hook
already, this conversion won't be called.
Diffstat (limited to 'input')
0 files changed, 0 insertions, 0 deletions