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 E7A914C0F4 for <ffmpegdev@gitmailbox.com>; Tue, 1 Apr 2025 17:20:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C3EA5687DD1; Tue, 1 Apr 2025 20:17:01 +0300 (EEST) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BFB58687DCB for <ffmpeg-devel@ffmpeg.org>; Tue, 1 Apr 2025 20:16:58 +0300 (EEST) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-22548a28d0cso157137655ad.3 for <ffmpeg-devel@ffmpeg.org>; Tue, 01 Apr 2025 10:16:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743527817; x=1744132617; 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=wYO/ny41AHqAreqxgA31y9WtlVZN69nd9NmNEsah4fw=; b=FEDNTBB8gQDiVYqFJ8/+SFf463Bk5Eax0voWCM6h98pce39+t2pwVn4Man3ALm5dOm Cb69q9O/4UK/tpt1riScnefTlwHu0OqeKRsmcNWwPzdYBeowAss4+jLw0vyvWlmcMbPB gy4FQbZrSBdqUSbqmrnGQFavXfyemoJv/9dOgbG4xsXFLRo+jqRZGLLxAxWY0d8pnw79 i/WhGXYtaKnZ5HUpXWcVUmrFBl93W7xnqPfjaagmUt93jG7CZqxS4V99D4Md4O9HK8rG L+sWJ9U2qhAwgHeg43u5xnA9rO43vSiieRA1Flvaol3KfCzC4jzqcd6X6QndlwRwoAcQ 36Ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743527817; x=1744132617; 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=wYO/ny41AHqAreqxgA31y9WtlVZN69nd9NmNEsah4fw=; b=EDrtTEgqlwWOhrT5qp45JOo5+x0PXqAfFK/ywf4Dc5XwOVdqLATUBgRXw2OXoBgoG6 rvLW5y2u3CaAAlenG7coScKIQYSOmxVF/dGAV56aCsFkOTleQGN/Wo1fMHorI8jjCTp0 kU0+BNj9T+ZurpP/xP26CN+8ZlslnrZQuSPaOQKzls8Oh9ulDsIHTOxImOXs0lC+g0yh FFv7Rq6X8ub00I75Q2poVlqc3NWNWMpvnHUWpVYcnTkMZ3qlCeU9Om/cyiwW4W4DhaNq koBvGFuZdYxsFrbt6at2Nw1ky6AytDPhznhr1azHJUTB2/ePuK+GgtFMlf5WaCiVp2CR kJ7Q== X-Gm-Message-State: AOJu0Yx8GZQps2SRlW71/ktBfy1MEozT8g7ZqpzvSvl3oAaiEPiroVJ4 zpyPr79GOvshhCBlULKcGiLDcixFymEf8WrRcHGoGh5CWJq/cvYes1JOzN9RK9s= X-Gm-Gg: ASbGncsNG00tHj1oamTmxFOG4CXssnz1+T9+7BY0m05yA7M/prIQmMJTkDYxQV9K7Ln ChV6HfLVXicNi6NoK+9lX2PZ6CNtuRcn6/JfXe0V4aP+dmVWxt0RQjvPnOYWaVKhvnnFF6craTT Zm7Xo0qH7RC8WyOkDmka6uZqvZV8D9NzdokGJtyRCnUeLhRrp7I4Ffoci1eAh4XhbGNVg9HnV0/ XEpIgXv/ySmudVSfWVOZjfJmD+kCifKh8i9AYedla1cbGOg81Ou2/8JFd6x8jjsGA+WMHT/ZSe7 vPL20Sgph36R7Q+8hMSpbo5JKXXyuS5/wBs0q7esayhbLCkIvEOS4UZfaUo20UB7SBeO6Le3AvN n X-Google-Smtp-Source: AGHT+IFJDBX7aix780S98gXSjeA/0w+UeR6eluTU/t+JO/8hx3h0oD2TQVtfACuy5ccOwXsrzCMZOw== X-Received: by 2002:a17:902:e745:b0:220:e655:d77 with SMTP id d9443c01a7336-2292f9f403bmr234525335ad.36.1743527816878; Tue, 01 Apr 2025 10:16:56 -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.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 10:16:56 -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:13 +0800 Message-ID: <20250401171616.1378-16-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 16/19] avcodec/vvc/sei: add decode_frame_field_info 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-16-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/vvc/sei.c | 26 ++++++++++++++++++++++++++ libavcodec/vvc/sei.h | 1 + 2 files changed, 27 insertions(+) diff --git a/libavcodec/vvc/sei.c b/libavcodec/vvc/sei.c index 85a07dad3f..a029306abd 100644 --- a/libavcodec/vvc/sei.c +++ b/libavcodec/vvc/sei.c @@ -127,6 +127,27 @@ static int decode_content_light_level_info(H2645SEIContentLight *h, const SEIRaw return 0; } +static int decode_frame_field_info(H274SEIFrameFieldInfo *h, const SEIRawFrameFieldInformation *s) +{ + if (s->ffi_source_scan_type > 3) + return AVERROR_INVALIDDATA; + + h->present = 1; + if (s->ffi_field_pic_flag) { + if (s->ffi_bottom_field_flag) + h->picture_struct = AV_PICTURE_STRUCTURE_BOTTOM_FIELD; + else + h->picture_struct = AV_PICTURE_STRUCTURE_TOP_FIELD; + } else { + h->display_elemental_periods = s->ffi_display_elemental_periods_minus1 + 1; + } + + h->source_scan_type = s->ffi_source_scan_type; + h->duplicate_flag = s->ffi_duplicate_flag; + + return 0; +} + int ff_vvc_sei_decode(VVCSEI *s, const H266RawSEI *sei, const struct VVCFrameContext *fc) { H2645SEI *c = &s->common; @@ -155,6 +176,9 @@ int ff_vvc_sei_decode(VVCSEI *s, const H266RawSEI *sei, const struct VVCFrameCon case SEI_TYPE_CONTENT_LIGHT_LEVEL_INFO: return decode_content_light_level_info(&s->common.content_light, payload); + case SEI_TYPE_FRAME_FIELD_INFO: + return decode_frame_field_info(&s->frame_field_info, payload); + default: av_log(fc->log_ctx, AV_LOG_DEBUG, "Skipped %s SEI %d\n", sei->nal_unit_header.nal_unit_type == VVC_PREFIX_SEI_NUT ? @@ -169,6 +193,7 @@ int ff_vvc_sei_decode(VVCSEI *s, const H266RawSEI *sei, const struct VVCFrameCon int ff_vvc_sei_replace(VVCSEI *dst, const VVCSEI *src) { dst->picture_hash.present = 0; // drop hash + dst->frame_field_info.present = 0; // drop field info return ff_h2645_sei_ctx_replace(&dst->common, &src->common); } @@ -177,6 +202,7 @@ void ff_vvc_sei_reset(VVCSEI *s) ff_h2645_sei_reset(&s->common); ff_h274_hash_freep(&s->hash_ctx); s->picture_hash.present = 0; + s->frame_field_info.present = 0; } int ff_vvc_sei_verify_hash(VVCSEI *s, const AVFrame *frame, const int coded_width, const int coded_height) diff --git a/libavcodec/vvc/sei.h b/libavcodec/vvc/sei.h index a8aedc2837..8d19f22bb3 100644 --- a/libavcodec/vvc/sei.h +++ b/libavcodec/vvc/sei.h @@ -36,6 +36,7 @@ typedef struct VVCSEI { H2645SEI common; H274SEIPictureHash picture_hash; + H274SEIFrameFieldInfo frame_field_info; H274HashContext *hash_ctx; } VVCSEI; -- 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".