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 1490B4D177 for ; Fri, 12 Dec 2025 05:21:17 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'bPKsllT9rVla/Gj3yV9XA4+5ZqxNp4js5bZmDjCpeRk=', expected b'dGQ1TtHOA8jYAGuK9VgcHkZtITrJ96STKhzmAh+1xoM=')) header.d=ffmpeg.org header.i=@ffmpeg.org 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=1765516849; h=mime-version : to : date : message-id : 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=bPKsllT9rVla/Gj3yV9XA4+5ZqxNp4js5bZmDjCpeRk=; b=EeX89jVWM+14TvcKOuWlFNJZK8L7RvfH4ERcNufPAi4347zoVgOWhHRAnk7FniT/m+UUz NWp5uI1oW/YDDOvLgTh06vDZtkfAES7qDRIU6dwY13iNGnCyK8AzWa6e9Sex850dpmp/dP5 60Uk0CTiX4Gyg7PiGHby0C/92K8kySfzcpFif6NeWYcWwHdgm4EH2tpFMrB6vwQRD7JekLj LOCQYwyOYCpCYJZ1AK0Ah+zEta/jdzoimUrBvpyGJjIhHnWdBhCxtT7BV6y9Q3OjqQxSOIE UheG/787XcxXQZwlIWCZnrt95vmE3GR3CTnjPyr317ay1r7GyXVQ2bXWE7kw== Received: from [172.19.0.3] (unknown [172.19.0.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id C11FC690840; Fri, 12 Dec 2025 07:20:49 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1765516819; b=MMjmaxtX0d9S9/kOGGpB8s9mQ8PuJbTJvOL0zi4Vqx+pSJt16Na4jVoX6ffhGNwYJOZwV cEm//2hLkfRY3VH2zwn3ysChKzDwXeiCwzTJyGZ1OmE0KmhcOHqQqXTqlD2wkr8/yw1xIOn QNipjqZTMPwRdGHyu2IZg1NO/sfQ3NdB7MxA4PQ583wqIG582HTkoPbpMzsEZVfXIiFdobM VInpkp/JqTKHvlCLfwt+tUUd+XbeqlbruB6eA14sR/ww40iHOdGjZSIwan1z8lzaKjFF2Kq rZElss76l69iHQiapeOgoUnHAVy5tAsGz/WXMq8UpSmUG4qMG4r+rJZvVKxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1765516819; 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=uuujnSn2d3ZI8FrPQAs0xseJ5L7LH8DIlaKIRbsTfRc=; b=rnuFUfyAWksBxyVDTNz6wMh4RINILQYEsppCxZeLVx270S9oSMAUHZ1w/7JKey9FR2kZ5 Tdnl9DhQ2ZLBRlHyP5cCEclk+e5+mCj1c1CoVCzUuGxrL7MkK3drmUwfKn6MVx45vlfaFfY hbDfTWC3wNLXwOmaElVIqmhwbrOSMD5mHDkfKtc5qFFNClw/VSzLgRqqpi5xBMKkT0SX9Gl c/H+j6iiNP44sFROPxFWFB+8TlZyfYcGhABag42PY1zhd9zC/o1IhhbDTg9Cx4qhS8Bu2M0 AmTUEX/3kvXyXVlE+RL8/EhNF5804u5O4pTVA+MK2OG16nM56akvltliejbQ== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1765516804; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=dGQ1TtHOA8jYAGuK9VgcHkZtITrJ96STKhzmAh+1xoM=; b=KNimmfK3s3/zi8YyjtJsLH3nTER5Sg6k+Mu66+vsVUXKYdIm0BRBRPuvlH9Q4jdwQQgkr mThgR2yNiUVZSIi2rRfOX3baOcoSVvRhAjtNyR0ItlpKIEIG9MErLaIznOWgbn7C7RCUSP7 h1aweApy+bb1ZHKd6Jr9898ydSjFiWglNx19o96eMSlM5c+34jrcWBYpHV3KeZlK5BeFinz AovSfU5D9FpRKMaUnTWBF1VWzcYyqvZukh9jE5thrOh7K4Mct6zo2TtMPk/sFquq9Xw9YwB 3CMQ9KwNx9lruG05LZcYu0kOzoWAIHaayz6YmJe8BF1p+YwODYlEbmVhzZNA== Received: from 55ca25703178 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 97E2468E7EB for ; Fri, 12 Dec 2025 07:20:04 +0200 (EET) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Fri, 12 Dec 2025 05:20:04 -0000 Message-ID: <176551680482.39.3916084298422936732@2cb04c0e5124> Message-ID-Hash: N562KL3XMDUX5A3ASHDQMSPPBLWI4SC7 X-Message-ID-Hash: N562KL3XMDUX5A3ASHDQMSPPBLWI4SC7 X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation 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 X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] swscale: use configured YUV matrix with paletted-RGB inputs (PR #21174) 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: rcombs via ffmpeg-devel Cc: rcombs Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #21174 opened by rcombs URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21174 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21174.patch This replaces hardcoded BT601. >>From 3e4eb15ec7f286f639c438b98322fa30695d9e3b Mon Sep 17 00:00:00 2001 From: rcombs Date: Thu, 11 Dec 2025 21:16:46 -0800 Subject: [PATCH] swscale: use configured YUV matrix with paletted-RGB inputs This replaces hardcoded BT601. --- libswscale/swscale.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/libswscale/swscale.c b/libswscale/swscale.c index 96df4ed3f4..219382505c 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -869,6 +869,12 @@ av_cold void ff_sws_init_xyzdsp(SwsInternal *c) void ff_update_palette(SwsInternal *c, const uint32_t *pal) { + uint32_t *rgb2yuv = c->input_rgb2yuv_table; + + int32_t ry = rgb2yuv[RY_IDX], gy = rgb2yuv[GY_IDX], by = rgb2yuv[BY_IDX]; + int32_t ru = rgb2yuv[RU_IDX], gu = rgb2yuv[GU_IDX], bu = rgb2yuv[BU_IDX]; + int32_t rv = rgb2yuv[RV_IDX], gv = rgb2yuv[GV_IDX], bv = rgb2yuv[BV_IDX]; + for (int i = 0; i < 256; i++) { int r, g, b, y, u, v, a = 0xff; if (c->opts.src_format == AV_PIX_FMT_PAL8) { @@ -897,20 +903,11 @@ void ff_update_palette(SwsInternal *c, const uint32_t *pal) g = ((i >> 1) & 3) * 85; r = ( i & 1) * 255; } -#define RGB2YUV_SHIFT 15 -#define BY ( (int) (0.114 * 219 / 255 * (1 << RGB2YUV_SHIFT) + 0.5)) -#define BV (-(int) (0.081 * 224 / 255 * (1 << RGB2YUV_SHIFT) + 0.5)) -#define BU ( (int) (0.500 * 224 / 255 * (1 << RGB2YUV_SHIFT) + 0.5)) -#define GY ( (int) (0.587 * 219 / 255 * (1 << RGB2YUV_SHIFT) + 0.5)) -#define GV (-(int) (0.419 * 224 / 255 * (1 << RGB2YUV_SHIFT) + 0.5)) -#define GU (-(int) (0.331 * 224 / 255 * (1 << RGB2YUV_SHIFT) + 0.5)) -#define RY ( (int) (0.299 * 219 / 255 * (1 << RGB2YUV_SHIFT) + 0.5)) -#define RV ( (int) (0.500 * 224 / 255 * (1 << RGB2YUV_SHIFT) + 0.5)) -#define RU (-(int) (0.169 * 224 / 255 * (1 << RGB2YUV_SHIFT) + 0.5)) - y = av_clip_uint8((RY * r + GY * g + BY * b + ( 33 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT); - u = av_clip_uint8((RU * r + GU * g + BU * b + (257 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT); - v = av_clip_uint8((RV * r + GV * g + BV * b + (257 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT); + y = av_clip_uint8((ry * r + gy * g + by * b + ( 33 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT); + u = av_clip_uint8((ru * r + gu * g + bu * b + (257 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT); + v = av_clip_uint8((rv * r + gv * g + bv * b + (257 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT); + c->pal_yuv[i]= y + (u<<8) + (v<<16) + ((unsigned)a<<24); switch (c->opts.dst_format) { -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org