[FFmpeg-devel] [PATCH 2/2] fftools/ffprobe: 240M matrix is not the same as BT.601

Marton Balint cus at passwd.hu
Sun Jun 6 11:28:19 EEST 2021



On Sun, 6 Jun 2021, Valerii Zapodovnikov wrote:

> I am sorry, what? It converts to 420 always? Wow? But you are right.

Yes, because ffplay uses the default SDL renderer (may it be 
opengl/directx or anything else), and ffplay queries the hardware 
acccelerated pixel formats supported by that renderer (which usually is 
YUV420 and RGB, and SDL has a very limited list of pixel formats in 
the first place). -loglevel verbose shows you the texture format ffplay is 
using.

> is a problem that colors are wrong after YUV444 - > YUV420 -> RGB. It
> selects BT.709 matrix even if BT.601 matrix is requested,

YUV444 -> YUV420 happens in swscale. YUV420 -> RGB happens in SDL using 
hardware acceleration. If swscale passes the orignial color matrix info 
properly to the YUV420 frame, then I am not sure where the bug can be, 
because ffplay directly checks AVFrame->color_range for setting the SDL 
conversion mode.

Regards,
Marton

> this can be fixed
> by "ffplay -vf scale=in_color_matrix=auto,format=gbrp" or just by using
> mpv. Maybe I need to further test VUI vs -movflags +write_colr vs what my
> samples use.


More information about the ffmpeg-devel mailing list