From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <ffmpeg-devel-bounces@ffmpeg.org>
Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100])
	by master.gitmailbox.com (Postfix) with ESMTPS id 952E94C077
	for <ffmpegdev@gitmailbox.com>; Tue,  1 Apr 2025 17:17:20 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DF1EB687D85;
	Tue,  1 Apr 2025 20:16:44 +0300 (EEST)
Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com
 [209.85.214.179])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 11F4D687D71
 for <ffmpeg-devel@ffmpeg.org>; Tue,  1 Apr 2025 20:16:38 +0300 (EEST)
Received: by mail-pl1-f179.google.com with SMTP id
 d9443c01a7336-2243803b776so44240645ad.0
 for <ffmpeg-devel@ffmpeg.org>; Tue, 01 Apr 2025 10:16:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1743527796; x=1744132596; darn=ffmpeg.org;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=oRItoM7LVfY3YfPUiV0LgimOkUBNQYOAfBtqnMjET8U=;
 b=gurVvsOV/AVm2hkRp8MDiOxre9aNRGgK3vxzoImvRaltOcf6/xbCey4+RIqtX3c2U0
 kkfgIx34R6bnQWYl89PcWTcGuwt3FhiY+W1GoFINj7tiNG16B5C+lKGLbZg951bgMoqX
 18KzZB/+mU56MuNPvoQyQQQ2U9GWnYa7eiKoHviYhNIqkQ1byNBTawADOhDbOnyBw06F
 joFNCjyLsxtw766fnC2/Ji1sKdSEgfRCS1pHydA0qpSED8glfx6IMRb8usHO18XlR/yN
 SvJMj6LHX90A1pUhJgDf2uedbmSSXjGqBl68r1jN18iDMWu306GpEWAtT9x3HslzdRea
 sn0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1743527796; x=1744132596;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=oRItoM7LVfY3YfPUiV0LgimOkUBNQYOAfBtqnMjET8U=;
 b=VL9RBtk6NaWJbShaWbW6R7jq8WYb6RHZ/BKOkluMTEPc18dc5aU3QreC2y4DdeSj27
 jRsHSjNCfNCW0tWIbJuUsG0K5ba78W5PaAsWLQPKOBZXjph8is6kw2JJVHnFo0mD47QB
 zkkMa67Ho0xkPnCdg1o0yMGvXp4eahidhg40o4PkrgE2Z1HIdHy78EsrgYvnZ/+x6gLa
 sy0nRiKX7EvI50OOBXJ9IPv+7llj2tmpN+w+M9zzHCCVH1Ht5BXQruRU70I86x7k4Wfl
 /Ftl7ZBfBLkUfxeeVgiYeQZ6s+b88bNKhp9IR2B+MBBFJ2GBkEuG0ah7USrfblwbyMmB
 Ex5A==
X-Gm-Message-State: AOJu0YxmlHdAOgH41/fY1RZL+2DaMw0pSb0zbMnLBJPaIqUiudxmXR8y
 3UCDRQ1epkH5poYf0mGZ9ETysqC1lvIPiXR4psuDxNiCSQp977tAFf5tut+tNHk=
X-Gm-Gg: ASbGncsvdUGJ5e5QX1m1wCY9YSBD9/NlrBNswCXHr1SmvFO/jTJBD1YsK9LtUQBiBjc
 aJpf23IR5guKacpcSX9gXGepSaJL8LOeA/XfH0BMu1nFdN4iavyNWUl1BC5V95zHBdzb6Wayurm
 fJXokKfgyMwzPsrGIS2mchNMf7/p3RDvsXM5MPKugZ4meVRq04MYrpr7Iq0gw6aj9J8E0MZMTAP
 lDwvSYe9BKSiREJdQIMOxbOuxAHam7mMz4QdWoNpCNqjIFPz5rXvPv9Wuwk9je4oPhosVkEEgJb
 Ym0YsBm9YxptRNS/MLkcXBIgpo20wgx/Cx2KNhTii+TPRX/IUSF50lW/80oMXsFDiw==
X-Google-Smtp-Source: AGHT+IF0BNhD9VPpwfo2jLDBr1VmwB5h9IAQ6ZbeCMeLSeAEBDCCHLvpje70tSdYthym/52qSjIaEA==
X-Received: by 2002:a17:903:4405:b0:220:c067:7be0 with SMTP id
 d9443c01a7336-2292f942c0bmr192424585ad.6.1743527796163; 
 Tue, 01 Apr 2025 10:16:36 -0700 (PDT)
Received: from localhost.localdomain ([124.79.129.75])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2291eee0bafsm90902495ad.90.2025.04.01.10.16.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 10:16:35 -0700 (PDT)
From: toqsxw@gmail.com
X-Google-Original-From: toqsxw@outlook.com
To: ffmpeg-devel@ffmpeg.org
Date: Wed,  2 Apr 2025 01:16:01 +0800
Message-ID: <20250401171616.1378-4-toqsxw@outlook.com>
X-Mailer: git-send-email 2.44.0.windows.1
In-Reply-To: <20250401171616.1378-1-toqsxw@outlook.com>
References: <20250401171616.1378-1-toqsxw@outlook.com>
MIME-Version: 1.0
Subject: [FFmpeg-devel] [PATCH v1 04/19] avcodec/vvc/dec: export sei to the
 frame when the frame starts
X-BeenThere: ffmpeg-devel@ffmpeg.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org>
List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe>
List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel>
List-Post: <mailto:ffmpeg-devel@ffmpeg.org>
List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help>
List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe>
Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Cc: Wu Jianhua <toqsxw@outlook.com>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: ffmpeg-devel-bounces@ffmpeg.org
Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org>
Archived-At: <https://master.gitmailbox.com/ffmpegdev/20250401171616.1378-4-toqsxw@outlook.com/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

From: Wu Jianhua <toqsxw@outlook.com>

Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
---
 libavcodec/h2645_sei.c |  9 +++++----
 libavcodec/h2645_sei.h |  2 +-
 libavcodec/vvc/dec.c   | 12 ++++++++++++
 3 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/libavcodec/h2645_sei.c b/libavcodec/h2645_sei.c
index 2494daaf3c..78d9db20fd 100644
--- a/libavcodec/h2645_sei.c
+++ b/libavcodec/h2645_sei.c
@@ -44,8 +44,9 @@
 #include "h2645_sei.h"
 #include "itut35.h"
 
-#define IS_H264(codec_id) (CONFIG_H264_SEI && CONFIG_HEVC_SEI ? codec_id == AV_CODEC_ID_H264 : CONFIG_H264_SEI)
-#define IS_HEVC(codec_id) (CONFIG_H264_SEI && CONFIG_HEVC_SEI ? codec_id == AV_CODEC_ID_HEVC : CONFIG_HEVC_SEI)
+#define IS_H264(codec_id) (CONFIG_H264_SEI && (CONFIG_HEVC_SEI || CONFIG_VVC_SEI ) ? codec_id == AV_CODEC_ID_H264 : CONFIG_H264_SEI)
+#define IS_HEVC(codec_id) (CONFIG_HEVC_SEI && (CONFIG_H264_SEI || CONFIG_VVC_SEI ) ? codec_id == AV_CODEC_ID_HEVC : CONFIG_HEVC_SEI)
+#define IS_VVC(codec_id)  (CONFIG_VVC_SEI  && (CONFIG_H264_SEI || CONFIG_HEVC_SEI) ? codec_id == AV_CODEC_ID_VVC  : CONFIG_VVC_SEI )
 
 #if CONFIG_HEVC_SEI
 static int decode_registered_user_data_dynamic_hdr_plus(HEVCSEIDynamicHDRPlus *s,
@@ -427,7 +428,7 @@ static int decode_film_grain_characteristics(H2645SEIFilmGrainCharacteristics *h
                 }
             }
         }
-        if (IS_HEVC(codec_id))
+        if (!IS_H264(codec_id))
             h->persistence_flag = get_bits1(gb);
         else
             h->repetition_period = get_ue_golomb_long(gb);
@@ -854,7 +855,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
         fgp->subsampling_x = fgp->subsampling_y = 0;
 
         h274->model_id = fgc->model_id;
-        if (fgc->separate_colour_description_present_flag) {
+        if (IS_VVC(codec_id) || fgc->separate_colour_description_present_flag) {
             fgp->bit_depth_luma   = fgc->bit_depth_luma;
             fgp->bit_depth_chroma = fgc->bit_depth_chroma;
             fgp->color_range      = fgc->full_range + 1;
diff --git a/libavcodec/h2645_sei.h b/libavcodec/h2645_sei.h
index abc49760d9..f2ad7147c6 100644
--- a/libavcodec/h2645_sei.h
+++ b/libavcodec/h2645_sei.h
@@ -108,7 +108,7 @@ typedef struct H2645SEIFilmGrainCharacteristics {
     uint8_t intensity_interval_upper_bound[3][256];
     int16_t comp_model_value[3][256][6];
     int repetition_period;       //< H.264 only
-    int persistence_flag;        //< HEVC  only
+    int persistence_flag;        //< HEVC/VVC
 } H2645SEIFilmGrainCharacteristics;
 
 typedef struct H2645SEIMasteringDisplay {
diff --git a/libavcodec/vvc/dec.c b/libavcodec/vvc/dec.c
index 206be3cc33..8b1c2c751b 100644
--- a/libavcodec/vvc/dec.c
+++ b/libavcodec/vvc/dec.c
@@ -718,6 +718,14 @@ static void decode_prefix_sei(VVCFrameContext *fc, VVCContext *s)
     }
 }
 
+static int set_side_data(VVCContext *s, VVCFrameContext *fc)
+{
+    AVFrame *out = fc->ref->frame;
+
+    return ff_h2645_sei_to_frame(out, &fc->sei.common, AV_CODEC_ID_VVC, s->avctx,
+        NULL, fc->ps.sps->bit_depth, fc->ps.sps->bit_depth, fc->ref->poc);
+}
+
 static int frame_start(VVCContext *s, VVCFrameContext *fc, SliceContext *sc)
 {
     const VVCPH *ph                 = &fc->ps.ph;
@@ -733,6 +741,10 @@ static int frame_start(VVCContext *s, VVCFrameContext *fc, SliceContext *sc)
 
     decode_prefix_sei(fc, s);
 
+    ret = set_side_data(s, fc);
+    if (ret < 0)
+        goto fail;
+
     if (!IS_IDR(s))
         ff_vvc_bump_frame(s, fc);
 
-- 
2.44.0.windows.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".