From patchwork Wed Mar 13 16:36:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lynne X-Patchwork-Id: 47028 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:e85:b0:1a3:31a3:7958 with SMTP id ma5csp505809pzb; Wed, 13 Mar 2024 09:36:55 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWi0IhR5JlTnxUbuKg4XvL0IXlpXdq+kIoiVoXxKcJG3+m+Az16kmqUXX8SkWaQzLAzj9kkno0qO9/2Wd5Zeu6YRPHJywagZQHztw== X-Google-Smtp-Source: AGHT+IE2KZ8ysFcZjYOaQwa2cAizKKFeFxms7PpRXoyiedTqLqpp4gIWiE6yqIvwflLkYEdVBPR9 X-Received: by 2002:a17:906:9c8e:b0:a45:ad29:725c with SMTP id fj14-20020a1709069c8e00b00a45ad29725cmr4662341ejc.62.1710347814797; Wed, 13 Mar 2024 09:36:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1710347814; cv=none; d=google.com; s=arc-20160816; b=UMzecxgtHNaUJDuK+Hf2bLbCuNdW9xwo67zbMcAbkvueZU+2GmXjVH9jy4euXx+gdu IsfmmS46QxGOrOc1DzMdVjvMME60IRSzN7qTQzG/HxZo9T/GAd2h0o+92FqaqBL9B66d LWiV6smwDMQt+UVWlbHXPRj/xxKc2WVuFSEtOqVwykcsvSNREBwG5ED2af7q1o0FMEAU fevuQIgY+iqSD88as3ThRJs7m9cCbJY9AQzEwq/OhtPrYJjE4roMQaMdcE0rsggJBQnA ftruFy8fh0YCqocwUHQtPv9gVQ01B92ZKVVm4zo/1IDTCuDXrS5GSfWzP9YarfQDkeND xNpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:message-id:to:from:date:dkim-signature:delivered-to; bh=yNg1x/pz3vp9dDWtL++QFVZ1cTLdOauuiQPO0XpZc5c=; fh=Q46kXK7oI5D1Jhi90JBr53c7NIaTxGaU4KPeRZyM/hI=; b=Wq73Bky0Hl4DYhjFQjMLKQrmaqqbgyOOnwme3PDoOOsfeDgh0wgGYVJh8fzjYWmJES ehw7Y4j7Xrc80ZnKeyzxCB7xA1trOCxhbC5Y7GaE2vHn7Cwo8yBL4GguCDEDHiyJ84Lf MR/KvyfDjCw4emrxg3h5JOTkHCz7i4tDWy5qIwFrJ5zq4PUXuboBsHSi100uiigde9DP FhpmgaUluZ8ugHgaPZ2a11d68Kn+ZgOIwh4HDNs4GoCOGk1tJAVrqxZFp64gGlEpQX8N cPM052+YgiPzUbP0YlcJauaeyCim7FVKES7n///p+9JbZ5oRr2wD+RJCk+drcug/mZkk nH0g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@lynne.ee header.s=s1 header.b=mktcd0dm; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=lynne.ee Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id jx6-20020a170906ca4600b00a466111a44dsi524808ejb.114.2024.03.13.09.36.54; Wed, 13 Mar 2024 09:36:54 -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=@lynne.ee header.s=s1 header.b=mktcd0dm; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=lynne.ee Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 664EC68CE33; Wed, 13 Mar 2024 18:36:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from w4.tutanota.de (w4.tutanota.de [81.3.6.165]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 78C5E68C0CC for ; Wed, 13 Mar 2024 18:36:43 +0200 (EET) Received: from tutadb.w10.tutanota.de (unknown [192.168.1.10]) by w4.tutanota.de (Postfix) with ESMTP id B801B106014E for ; Wed, 13 Mar 2024 16:36:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1710347802; s=s1; d=lynne.ee; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Cc:Date:Date:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:Sender; bh=fO1TLaJqHqhIWdSC1ACyJKq2vrC/w9GGbl7V383cYqM=; b=mktcd0dmzURPSnmQ7np+UTXJNOxelnwskEPHj7d21Sqy/cGG5M8qN4WTBSJh6sOs fzFfZTTMoGljyg3IqkHce8bcMrJlNaR0FiOyPYMZMhWi+jtJZUcWVlSfBffgpLRbsCj ZeKyvuebtUB1k1YZHsxaCdUGeTCA9niE84BZ1dWGJz12vSvHEYD1fSGxIWuez8uc13q P9bx8oY6fUR9ScLiK+Z5XXAO0EcW1WS+DwNMn2e1UEKLeMhtAwRqJLbB5p63cdNaUMF zzAZaUL0Qpkgtei8786efSfsOsNCbh3ZWzFYzpHbMo9kzn6sO9+OOUZ/gdLN5NHz38b VDLCkBd/Yw== Date: Wed, 13 Mar 2024 17:36:42 +0100 (CET) From: Lynne To: Ffmpeg Devel Message-ID: MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 1/2] lavc/cbs_av1: fill in ref_frame_sign_bias and order_hints 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: gQw6fiH8XA66 Unchanged from v2 From 426701f4fb00123f2fc46efda188ca7d2413b187 Mon Sep 17 00:00:00 2001 From: Lynne Date: Fri, 2 Feb 2024 03:54:06 +0100 Subject: [PATCH v3 1/2] lavc/cbs_av1: fill in ref_frame_sign_bias and order_hints Needed for Vulkan AV1. --- libavcodec/cbs_av1.h | 2 ++ libavcodec/cbs_av1_syntax_template.c | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/libavcodec/cbs_av1.h b/libavcodec/cbs_av1.h index a5402f069d..0ed49e03ca 100644 --- a/libavcodec/cbs_av1.h +++ b/libavcodec/cbs_av1.h @@ -465,6 +465,8 @@ typedef struct CodedBitstreamAV1Context { int tile_num; AV1ReferenceFrameState ref[AV1_NUM_REF_FRAMES]; + uint8_t ref_frame_sign_bias[AV1_TOTAL_REFS_PER_FRAME]; + uint8_t order_hints[AV1_TOTAL_REFS_PER_FRAME]; // AVOptions int operating_point; diff --git a/libavcodec/cbs_av1_syntax_template.c b/libavcodec/cbs_av1_syntax_template.c index 3be1f2d30f..20eed7ff9e 100644 --- a/libavcodec/cbs_av1_syntax_template.c +++ b/libavcodec/cbs_av1_syntax_template.c @@ -1572,6 +1572,17 @@ static int FUNC(uncompressed_header)(CodedBitstreamContext *ctx, RWContext *rw, } if (!frame_is_intra) { + for (i = 0; i < AV1_REFS_PER_FRAME; i++) { + uint8_t ref_frame = AV1_REF_FRAME_LAST + i; + if (seq->enable_order_hint) { + uint8_t hint = current->ref_order_hint[current->ref_frame_idx[i]]; + uint8_t sign_bias = cbs_av1_get_relative_dist(seq, hint, priv->order_hint) > 0; + priv->order_hints[ref_frame] = hint; + priv->ref_frame_sign_bias[ref_frame] = sign_bias; + } else { + priv->ref_frame_sign_bias[ref_frame] = 0; + } + } // Derive reference frame sign biases. } -- 2.43.0.381.gb435a96ce8