Nevcairiel / LAVFilters

LAV Filters - Open-Source DirectShow Media Splitter and Decoders
GNU General Public License v2.0
7.23k stars 786 forks source link

Suggestion and Fix for Washed-Out Color and Automatic Brightness change when switching to Fullscreen problem many are having #551

Closed XSpark0 closed 11 months ago

XSpark0 commented 11 months ago

(The monitor i am on does not support HDR nor Adaptive Brightness so i know its not causing the problem.)

Problem i am dealing with since few years: Whenever i Fullscreen MPC-BE, brightness automatically changes and color becomes washed-out. Same thing happens on MPV Player so i assume this problem occurs on every Media Player.

This problem also occurs with Chrome Browser when watching Youtube videos but i managed to fix it by going to chrome://flags/#use-angle and changing it from "Default" to "D3D11on12". This fixed the washed-out color and automatic changing of brightness on Chrome Browser and also fixed occasional white flash before video plays when hovering mouse over Youtube video thumbnail.

Its all Microsoft's fault for messing up D3D11 and also DXVA2 as it has same problem (Even after doing clean install of Windows 11 22H2). Reason why Chrome Browser is also affected by this problem.

Solution: Implement "D3D11on12" option in Hardware Decoder to use in LAV Video Decoder. Would be great if you also implement "Vulkan" too in Hardware Decoder to use in LAV Video Decoder as Vulkan doesn't seem to have this problem while using MPV with Vulkan (gpu-api=vulkan in mpv.conf).

I use MPC-BE with LAV Filters and MPC Video Renderer.

clsid2 commented 11 months ago

The decoder is not the problem.

Content adaptive brightness is a Windows option.

But usually this problem is fault of the graphics driver. Doing wrong video processing. For example Intel driver can set different brightness level for fullscreen video. AMD driver can have issue where it uses wrong levels. That's different than changed brightness.

All your workaround/fixes are doing is bypass GPU driver bugs.

MPC Video Renderer has options to disable DXVA2/D3D11 video processor and use shaders instead.

XSpark0 commented 11 months ago

I switched back to MPV. Turns out it doesn't have this problem even if don't add any commands to mpv.conf.

XSpark0 commented 11 months ago

Using OpenGL on Chrome instead of D3D11on12 since it lets you keep Hardware Acceleration On. No washed-out color problem on OpenGL.

Can you add OpenGL to Hardware Decoder in LAV Video Decoder?

clsid2 commented 11 months ago

Report the problem to your GPU manufacturer. That is where the problem is. Not in LAV Filters.

There will not be an OpenGL decoder.

Nevcairiel commented 11 months ago

LAV just decodes the video. How it gets to your screen and looks on there is not in any way related.