bbbe08d0b0
Tell ffmpeg swscale to do accurate YUV->RGB conversion, instead of slightly faster but not really accurate one. Fixes banding and some color shifts in video files, particularly in dark regions. The accurate conversion is a bit slower though, on 4K resolution video, time taken to convert video frame from YUV to RGB: - x64 (Ryzen 5950X): 2.3ms -> 3.7ms - arm64 (M1 Max): 0.6ms -> 2.9ms My take is that paying 1-2ms per 4K video playback is acceptable since the result is obviously "more correct" and matches what VLC/ffplay produces. From what I can tell, "accurate conversion" turns off some dedicated assembly code paths within ffmpeg. Maybe someday ffmpeg would get accurate and assembly-optimized routines for that. With more accurate decoding, we can now lower the expected render test threshold again, since x64 & arm64 decoding is much closer now. Comparison screenshots in the PR. Pull Request: https://projects.blender.org/blender/blender/pulls/130383