From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 3B9BF4F38C for ; Mon, 23 Feb 2026 23:18:15 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'O5vhqTHsBruVk1+SJqS3TUcFgrPGGyiOVE8cBLGCYaA=', expected b'LNSK8eiSFVDOf3RD07MTOM9OPMlszymzcQ6NtllDos8=')) header.d=gmail.com header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1771874549; h=to : date : message-id : mime-version : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=2ap5kSM0VfRuHz0eC78Z5unQE8H3gFLQE/Om0qKniek=; b=FYvsekngCuOpaLOQ68L1wZ5fmxaG7iGMJavoaHqUIFRSxMe5e0bTyXvzx9nqM0RVOo9aH YLaabDNWLZ4zfa8EIY1ruGbYtxhqEps8ZM0V0WeWKp2WaimQdLTMgxEmrvr496vSNHkdqf6 3uqqZlZ5xZ+PhAkLtOD03A5Uu62OpNJO7E/wVuRxyDhWuFJUDtUVT+rWVta+3O9JgujixSK Q+FiGF7EyhSBWJ/ajGQaKV5PgGZVdkxWcmdes6LdAoCyj4K+7ytonzyTxj7elJYunknHLPB D5ZWx47zQovjurouCKi8EYirs8xvMt+JSAnSUfQjjVOsqKUqpxPtx5z44RdA== Received: from [172.18.0.3] (unknown [172.18.0.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id A210569129B; Mon, 23 Feb 2026 21:22:29 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1771874534; b=gkpYPRwRBYDPFqjYnOoCQNIUOTpch8lwzf2kD90c6yRa62bx2wWLzzeInOCRAZOumAg62 aemJj1a/xc6+s3d+yG4hB255kUlleS++0z1LrRiag6Y+1PTPjwo6nOGjx0U1DMv0x/EoW0v FYOwQvOuLNKbL3kOBdffMVPXb6BMAlS1cF/b9ZUYtbvin7fIar9xp1jj8IwaM5nls4mVzAo mktsIVurpz+LhwLRxM5MItUqiWCns/VqV10ldRcHFbi61F81s90SWPoS1d1YannXNyEU4jz u7sqPSG7vTAa/Z9Rpo2y9VWeh+DqkwI1x+EWIMwSvH5WY/qBL85w0QAsJdwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1771874534; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=O5vhqTHsBruVk1+SJqS3TUcFgrPGGyiOVE8cBLGCYaA=; b=LaUL2HN9xxiIVVUF72LvGmxmlNQn2ycq3RDI10ilO6Mvds0r7Dvkc0XQHsXJnT7duXvu4 +w3n5EHG4xFn9xSQRhL+9xP8ows6Vyrv8Qywe9ZfIx5VW2bsKWsrWZal+rm0NzakovLFoBj dhMd/m33ZW/Jw8QLqcY/gAoxnEJUEZkwDFqceN9vxwlmyxdVYsIZiOwaYa/0BZdzlZEaYg8 nADye9Qj7f3fyHtMeRUu3/ztJGEL0zuBrXBk5D0tHtJ4M9mBFkPC9RAp2sINNA9z7SKI+Wb vW4UZIYpp0Jc6uCVYg4HSacpwb+WTpHOdanDOvfiEBmCKnNyT4v4npA+MV8w== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=gmail.com; arc=none; dmarc=pass header.from=gmail.com policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=gmail.com; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=gmail.com policy.dmarc=quarantine Received: from mail-dy1-f172.google.com (mail-dy1-f172.google.com [74.125.82.172]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id AEB11691183 for ; Mon, 23 Feb 2026 21:22:00 +0200 (EET) Received: by mail-dy1-f172.google.com with SMTP id 5a478bee46e88-2baaceb4613so2769193eec.0 for ; Mon, 23 Feb 2026 11:22:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771874518; x=1772479318; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=LNSK8eiSFVDOf3RD07MTOM9OPMlszymzcQ6NtllDos8=; b=TJ7qBM2KN3w2U1gXRFSZguXip1g+fkzbfc7YZn+yWqWrtJsfXt10IBamIqtAe7TM71 t95fD6QbptCpJAmyDL/40hrl2abYmi6v53Ma+1OV8Zi7bUHjuN5dvR/xnKnXPZzOflrQ 3b2c18JAUx4zZXsz+NcilwyKXEmmSafSjJ18qBIz+RsXyq09eimFdUdqWearDWWmsU5B ZVv8awqk02JzSjT7mKkbk5QQDaJkRkYSnA9UYs0l13Rp/NJgA8MjLfGYpja1NSm+LSvd ZsbhIK9huOqAvI6zdYH01JzCTib+tHjc53ZFAfHhSTiRo7MD0x55mzh2OIIwaQJn+uEw CIuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771874518; x=1772479318; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=LNSK8eiSFVDOf3RD07MTOM9OPMlszymzcQ6NtllDos8=; b=VPRi6np5FtbNY8bJO8VYQXUKRxySAZD9qoYlASfBzDNHR1Px1lCkt27CfpKCoMEqv9 kuOn9FXv28tEZMVSm9x3Fstq/iRsJQQ0KTaZ5ORi3bmcbeMxX2UV8t8iPYgqDSNzeYvH oPXebDiVorRZZ/zntjtn93yckkZlYRhlnTLexBPTIUMTvxZU9hyWyRJyZ+/5CxjJjJjn DZS06buOn9qJ0NuC/JlEFBj63Q3pVeGFwzGiLkOjvYRAiELYU8s6coox9l84ICTmv47b QLVnUXsFyP3reemz2JZ3kBWpZ0kl7MNJOO7Q2RAeqFAotvw4chx9qL44NOUpiObREzRE JEyA== X-Gm-Message-State: AOJu0YxTrG7jqPUbZ6a+XnafazLJcTbKMIjDkkLH6uIub8eRmYApB5UE TTKAhybWmRJHr0oZIFvGOwQwQIoMLeNWjPk/PCxhaOwvvrlH7KU1XWHA7JpFhQ== X-Gm-Gg: ATEYQzxzjbVHyXPp6mf5t9sGXsGjNGU9TeyPymnTYH8NAVdxxopO48RH+Nfp9bAZQ7z iSKx5wsDS8AA84tkGqIuLdW+vFwTTuqBvRPm0gAPE6ScBknfT2k6H5TNGJmcjS4YJq3oEBBS8/K VM+Xi/PX/N0fd8kNu6XyWW1tEe5wvNZPbcftseP2dqC+W04BqL79rNRbO4NpdgY+vx1TGlOvbnS Hlj+bf42JSj7QGR+1wSxJAzP88p7MlonhXHuTNib8xmCGfkpFHDGw9XDnHWdzWvBkMSLFhY1xSY pqZc+PinxsZh2JnJhusCMW4GPua5Ot3YSrk2et4zgIX0PdNt6rru9A0EwO2YPMe2yrRPaspkBVK hOOtKGUI9W/mfQoHgIDbpOlbOBAyyph77WHPf6Ss2WqXNtmLgGGjtE52H9Rsi+82+v4SGdxpBHQ 5JZi6BexHVBcYvNxK45+XVt5GLPBdlQ+sQxuY90hqgGDhi X-Received: by 2002:a05:7301:6505:b0:2ba:7c92:82fb with SMTP id 5a478bee46e88-2bd60769b84mr6363225eec.5.1771874517648; Mon, 23 Feb 2026 11:21:57 -0800 (PST) Received: from HQ-LDQQM144XL.rbxinfra.net ([204.9.184.14]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1276aeb1ee9sm7339149c88.0.2026.02.23.11.21.56 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 23 Feb 2026 11:21:57 -0800 (PST) X-Google-Original-From: Guangyu Sun To: ffmpeg-devel@ffmpeg.org Date: Mon, 23 Feb 2026 11:21:46 -0800 Message-ID: <20260223192155.27035-1-gsun@roblox.com> X-Mailer: git-send-email 2.52.0 MIME-Version: 1.0 Message-ID-Hash: XYUWVP27NK5NCNS7QMKL2TLDKT3KBH6I X-Message-ID-Hash: XYUWVP27NK5NCNS7QMKL2TLDKT3KBH6I X-MailFrom: SRS0=g5YN=A3=gmail.com=sunguangyucn@ffmpeg.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] avcodec/libvpxenc: fix sRGB colorspace for non-RGB pixel formats List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Guangyu Sun via ffmpeg-devel Cc: Guangyu Sun Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: When encoding VP9 with a YUV pixel format (e.g. yuv420p) and AVCOL_SPC_RGB colorspace metadata, libvpxenc unconditionally set VPX_CS_SRGB. This produced a spec-violating bitstream: Profile 0 (4:2:0) with sRGB colorspace, which is only valid for Profile 1/3 (4:4:4). The resulting file is undecodable. RGB pixel formats (GBRP, GBRP10, GBRP12) already correctly set ctx->vpx_cs to VPX_CS_SRGB in set_pix_fmt() and bypass the colorspace switch in set_colorspace(). So reaching the AVCOL_SPC_RGB case means the pixel format is YUV with incorrect RGB metadata. Log a warning and fall back to VPX_CS_BT_709. To reproduce: # generate a bad source ffmpeg -f lavfi -i testsrc=s=64x64:d=1:r=1 -pix_fmt yuv420p -colorspace rgb bad.mp4 # transcode with default parameters ffmpeg -i bad.mp4 bad.webm # check decoding ffmpeg -i bad.webm -f null - # -> 0 frames decoded, error Signed-off-by: Guangyu Sun --- libavcodec/libvpxenc.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 88c058c403..be731a014f 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -902,7 +902,17 @@ static void set_colorspace(AVCodecContext *avctx) vpx_cs = ctx->vpx_cs; } else { switch (avctx->colorspace) { - case AVCOL_SPC_RGB: vpx_cs = VPX_CS_SRGB; break; + case AVCOL_SPC_RGB: + // RGB pixel formats (GBRP, GBRP10, GBRP12) set ctx->vpx_cs + // to VPX_CS_SRGB in set_pix_fmt() and take the branch above, + // so reaching here means the pixel format is YUV with + // incorrect RGB colorspace metadata. + av_log(avctx, AV_LOG_WARNING, + "RGB colorspace is not compatible with pixel format %s, " + "using BT.709 instead.\n", + av_get_pix_fmt_name(avctx->pix_fmt)); + vpx_cs = VPX_CS_BT_709; + break; case AVCOL_SPC_BT709: vpx_cs = VPX_CS_BT_709; break; case AVCOL_SPC_UNSPECIFIED: vpx_cs = VPX_CS_UNKNOWN; break; case AVCOL_SPC_RESERVED: vpx_cs = VPX_CS_RESERVED; break; -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org