Opened 8 days ago
Last modified 8 days ago
#11235 open defect
P010 unscaled converter from yuv420p is broken
Reported by: | Balling | Owned by: | Timo R. |
---|---|---|---|
Priority: | important | Component: | swscale |
Version: | git-master | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | yes |
Description
Summary of the bug: that was obvious in e3fd1857fb9e230de089820f77367ec320188c9c when it was added by Timo since FATE changed (patch from Intel brings back FATE changes) and those changes are in gray, making gray no longer gray, YCbCr 420 to 444 and its chroma siting cannot affect gray colors, as it is encoded by Y component only.
Patch is here from Intel, but since p010 supported by Nvidia hevc_nvenc if you force that, Nvidia is also affected. https://github.com/jellyfin/jellyfin-ffmpeg/pull/45
How to reproduce:
ffmpeg -f lavfi -i color=c=gray:s=1920x1080 \ -vf format=yuv420p,format=p010le -vframes 1 -y /tmp/yuv420p_p010.yuv \ -vf format=yuv422p,format=p010le -vframes 1 -y /tmp/yuv422p_p010.yuv \ -vf format=yuv444p,format=p010le -vframes 1 -y /tmp/yuv444p_p010.yuv \ -vf format=nv12,format=p010le -vframes 1 -y /tmp/nv12_p010.yuv \ -vf format=nv16,format=p010le -vframes 1 -y /tmp/nv16_p010.yuv \ -vf format=nv24,format=p010le -vframes 1 -y /tmp/nv24_p010.yuv sha256sum /tmp/*_p010.yuv 8836c7ea7086f1d3c0f193c5a47ec203a57fb48d838c9d1180e252ced388f7f6 /tmp/nv12_p010.yuv 8836c7ea7086f1d3c0f193c5a47ec203a57fb48d838c9d1180e252ced388f7f6 /tmp/nv16_p010.yuv 8836c7ea7086f1d3c0f193c5a47ec203a57fb48d838c9d1180e252ced388f7f6 /tmp/nv24_p010.yuv c4d2b32028354545ff5bd212e12def79085b9808b9623a6bc96aa72ae25604ec /tmp/yuv420p_p010.yuv 8836c7ea7086f1d3c0f193c5a47ec203a57fb48d838c9d1180e252ced388f7f6 /tmp/yuv422p_p010.yuv 8836c7ea7086f1d3c0f193c5a47ec203a57fb48d838c9d1180e252ced388f7f6 /tmp/yuv444p_p010.yuv
Note:
See TracTickets
for help on using tickets.
Assigning to Timo as owner of code in question.