PR #22872 opened by Diego de Souza (ddesouza) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22872 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22872.patch
Monochrome formats (gray, gray10le) have log2_chroma_w == 0 and log2_chroma_h == 0 because they have no chroma planes — the same values as YUV444. This caused them to be misclassified as YUV444 by the is_yuv444 detection introduced in bcea693f75. After fed6612415 changed cuvid_test_capabilities to use is_yuv444 instead of hardcoding cudaVideoChromaFormat_420, monochrome AV1 streams were rejected with "Codec av1_cuvid is not supported with this chroma format". Add an nb_components > 1 guard to exclude single-component formats from the YUV444 path. Patch by: Aniket Dhok <[email protected]> Signed-off-by: Diego de Souza <[email protected]> From 0bba4603e2503d2f72024343d91cbe0ef085dd31 Mon Sep 17 00:00:00 2001 From: Diego de Souza <[email protected]> Date: Tue, 21 Apr 2026 16:50:20 +0200 Subject: [PATCH] avcodec/cuviddec: fix monochrome formats misclassified as YUV444 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Monochrome formats (gray, gray10le) have log2_chroma_w == 0 and log2_chroma_h == 0 because they have no chroma planes — the same values as YUV444. This caused them to be misclassified as YUV444 by the is_yuv444 detection introduced in bcea693f75. After fed6612415 changed cuvid_test_capabilities to use is_yuv444 instead of hardcoding cudaVideoChromaFormat_420, monochrome AV1 streams were rejected with "Codec av1_cuvid is not supported with this chroma format". Add an nb_components > 1 guard to exclude single-component formats from the YUV444 path. Patch by: Aniket Dhok <[email protected]> Signed-off-by: Diego de Souza <[email protected]> --- libavcodec/cuviddec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/cuviddec.c b/libavcodec/cuviddec.c index fa1494cad4..a1d7cc17a9 100644 --- a/libavcodec/cuviddec.c +++ b/libavcodec/cuviddec.c @@ -916,7 +916,7 @@ static av_cold int cuvid_decode_init(AVCodecContext *avctx) if (probe_desc && probe_desc->nb_components) probed_bit_depth = probe_desc->comp[0].depth; - if (probe_desc && !probe_desc->log2_chroma_w && !probe_desc->log2_chroma_h) + if (probe_desc && probe_desc->nb_components > 1 && !probe_desc->log2_chroma_w && !probe_desc->log2_chroma_h) is_yuv444 = 1; #ifdef NVDEC_HAVE_422_SUPPORT -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
