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

Change History (1)

comment:1 by Balling, 8 days ago

Owner: set to Timo R.
Status: newopen

Assigning to Timo as owner of code in question.

Note: See TracTickets for help on using tickets.