Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Change #286507

Category ffmpeg
Changed by Zhao Zhili <zhilizhaoohnoyoudont@tencent.com>
Changed at Fri 16 Oct 2026 15:13:51
Repository https://git.ffmpeg.org/ffmpeg.git
Project ffmpeg
Branch master
Revision 9bbe8397e2c0e58e5bbe1e1e45ef10052b44b165

Comments

avfilter/vf_scale_cuda: add RGB to YUV color space conversion
The output YCbCr matrix and range are negotiated, and selectable via
the new out_color_matrix and out_range options. Without them, the
output prefers BT.601 (SMPTE 170M) limited range, matching swscale
behavior, while still following a single matrix and range negotiated
for the input, as buffersrc does for ordinary YUV. Since RGB input is
not constrained, RGB to YUV conversion defaults to BT.601 limited
range; RGB output prefers full range without forcing it, so that it
does not carry over into YUV output converted from it again. The
output frames are tagged with the negotiated properties, and YUV output
never carries the RGB tag of the input. As without a requested format
the options are negotiated before the output is known to be RGB, they
are rejected for RGB output.

Without RGB to YUV conversion, the output description must not
contradict that of the input, as the samples cannot be converted; an
unspecified input takes on the negotiated description, also when
frames are passed through.

Chroma is averaged over each subsampled block before clamping, high bit
depth output uses the code maximum for full range and keeps padding
bits clear, and limited range YCgCo uses the luma excursion for chroma.
The averaging centers the chroma samples, so with a requested format,
the chroma location is negotiated independently of the input, and
subsampled output must allow centered chroma.

Co-authored-by: Timo Rothenpieler <timo@rothenpieler.org>
Co-authored-by: Reinhard Nißl <rnissl@gmx.de>
Assisted-By: Claude Opus 5.5

Changed files