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".