From patchwork Thu Oct 3 14:35:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 52002 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:b18c:0:b0:48e:c0f8:d0de with SMTP id q12csp408103vqn; Thu, 3 Oct 2024 07:35:41 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVrAtH8h/PShHsZ2IUPSbeNtNvftMBTx9TUmG+8vTJdkrNGE6lMGYh91vtjEQSuIGfb31d7Ebodsg7zr/5ZtXwh@gmail.com X-Google-Smtp-Source: AGHT+IFe4+hndCh8FLX0JsegSJ0PRwI+g17CrLxtb3J0UDZO28FrRzFO2OhtnHfLjRKL0FZVKMTj X-Received: by 2002:a05:6512:6c9:b0:536:554a:24c2 with SMTP id 2adb3069b0e04-539a0662b79mr3748168e87.13.1727966141291; Thu, 03 Oct 2024 07:35:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1727966141; cv=none; d=google.com; s=arc-20240605; b=EUs+l88W5MT0EMdKy6shdUyE0hCUMPuHkqQTwlL6n/TieZiATilU+0vgTGKxVb3q2O p4YP94pf1QYJx0/QcLQEp7eNgrw2R2W3gaj0HWIlU490mkcJ7Twt7tcML3HG5N8qhjIf bk2j3/7a8zy4ht6W3VFXnoIOf5n7pkV1/gZt4hUTnRcvd2vkLIsfssEl8rIPq+BLlLtp uF+vsxaI7Y0lmmGQGXZtt0DhjhpEGkf2ovWej/ArN5mUJPiiwFcVtapzKKaHS344DfxC 7nKSUoSjeL9hynPxEIQ/t96pBeaeH2Cao5ON20u5IL2DyCewBtpbc3hd4uZQ7STcoaKP MFGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=J633a3FoIujdhySxunHoBJumBxJ2LFNEMFOWIgL9TW4=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=K6spdbqrmiiCOTLPRl5/mL3XH3NknUMqrlPq/FsaRRUS2h5nJblES/GDnQzHHOVctg aE7YsI3VZFAjBX4JjzM7s1LmlRc6ADWQGcUPobbCfgSoKHNWWY5dantlptihlhYKWr6i /hiky8JlLPnpozTMis/eGuztIT2fQadefvCtV25bjYgxmmmSd2vneyhDdidEsGMSewug O7yFEJ78aOvkmdYbq4b7SEUdIxWIVkKhGNQamY2cOH0WZj5w12X6dYkaknQjL9M8vAkN jf0msFZDzN4ZDPjHy8LyQuyEvjzwWPuyioVFfg9u60A5lWrej+bfrGrdIdtSYrl0PTMF vGMw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@niedermayer.cc header.s=gm1 header.b=bKdYYt6X; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 2adb3069b0e04-539a8286f48si513257e87.263.2024.10.03.07.35.40; Thu, 03 Oct 2024 07:35:41 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@niedermayer.cc header.s=gm1 header.b=bKdYYt6X; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C1A2A68DA1A; Thu, 3 Oct 2024 17:35:35 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net [217.70.183.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9A92368D1BF for ; Thu, 3 Oct 2024 17:35:29 +0300 (EEST) Received: by mail.gandi.net (Postfix) with ESMTPSA id B572A240003 for ; Thu, 3 Oct 2024 14:35:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=niedermayer.cc; s=gm1; t=1727966128; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=/AZbLPj9zEG+/v8H2+ym4568mSOlHSHe/Gk6xLuFYq4=; b=bKdYYt6XzD3FDpSvsM0Uyow67gQFyHVns7MlqI3kJjvhLBH6T/JuCYKdG3tniftrmwAVXE +awGQyUfGoIuRBiyBH+b5AyhjVcB8XepH/3Gf5WJGjdam9eyRtGpB4xYE5JkGbBkdJgwx+ G6fDvpi50+nvONVIwtUaHdRWJb/CY3Dq85bbQWV8GJcPPe/yy4F5N3p6R7le+IK7SQT5d0 HOM8O1M7r/+td7gxpKz6/BE0ow+dW1U65Mc3jRhpR+RiVpJZIJQ0qQO8U8/lrKmHBfCDpZ CmbUYPxJuAFxUDMTt7wo3ZQQb1IGYunceDTe08b2KBSUEAC/Vh7yqQS/N9Vktg== From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Thu, 3 Oct 2024 16:35:27 +0200 Message-ID: <20241003143527.2645752-1-michael@niedermayer.cc> X-Mailer: git-send-email 2.46.2 MIME-Version: 1.0 X-GND-Sasl: michael@niedermayer.cc Subject: [FFmpeg-devel] [PATCH] avcodec/ffv1: RCT is only possible with RGB X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: BTRQcyJ5dBZ7 Signed-off-by: Michael Niedermayer --- libavcodec/ffv1dec.c | 2 +- libavcodec/ffv1enc.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c index da31b863da5..932b2de0ff7 100644 --- a/libavcodec/ffv1dec.c +++ b/libavcodec/ffv1dec.c @@ -241,7 +241,7 @@ static int decode_slice_header(const FFV1Context *f, if (f->version > 3) { sc->slice_reset_contexts = get_rac(c, state); sc->slice_coding_mode = get_symbol(c, state, 0); - if (sc->slice_coding_mode != 1) { + if (sc->slice_coding_mode != 1 && f->colorspace == 1) { sc->slice_rct_by_coef = get_symbol(c, state, 0); sc->slice_rct_ry_coef = get_symbol(c, state, 0); if ((uint64_t)sc->slice_rct_by_coef + (uint64_t)sc->slice_rct_ry_coef > 4) { diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c index 8b23e73c841..4e3ae304cfb 100644 --- a/libavcodec/ffv1enc.c +++ b/libavcodec/ffv1enc.c @@ -946,7 +946,7 @@ static void encode_slice_header(FFV1Context *f, FFV1SliceContext *sc) if (sc->slice_coding_mode == 1) ff_ffv1_clear_slice_state(f, sc); put_symbol(c, state, sc->slice_coding_mode, 0); - if (sc->slice_coding_mode != 1) { + if (sc->slice_coding_mode != 1 && f->colorspace == 1) { put_symbol(c, state, sc->slice_rct_by_coef, 0); put_symbol(c, state, sc->slice_rct_ry_coef, 0); } @@ -1054,7 +1054,7 @@ static int encode_slice(AVCodecContext *c, void *arg) p->data[3] ? p->data[3] + ps*x + y*p->linesize[3] : NULL}; sc->slice_coding_mode = 0; - if (f->version > 3) { + if (f->version > 3 && f->colorspace == 1) { choose_rct_params(f, sc, planes, p->linesize, width, height); } else { sc->slice_rct_by_coef = 1;