From patchwork Mon Aug 7 15:53:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nuo Mi X-Patchwork-Id: 43164 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9329:b0:130:ccc6:6c4b with SMTP id r41csp1693893pzh; Mon, 7 Aug 2023 08:54:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHFLNcgg1+CJPQULwPixcbnx56b8rbzdkW0pPHmmXFCje7lpXdfSWoQZ0F/6tzh9U0Z1XMl X-Received: by 2002:a17:907:77d6:b0:997:beca:f9db with SMTP id kz22-20020a17090777d600b00997becaf9dbmr9652816ejc.54.1691423645479; Mon, 07 Aug 2023 08:54:05 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o26-20020a1709064f9a00b0099bd03b30cbsi6084943eju.627.2023.08.07.08.54.05; Mon, 07 Aug 2023 08:54:05 -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=@outlook.com header.s=selector1 header.b=AZL5rNLz; arc=fail (body hash mismatch); 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=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8368168C632; Mon, 7 Aug 2023 18:53:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01olkn2082.outbound.protection.outlook.com [40.92.53.82]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 38D0C68C602 for ; Mon, 7 Aug 2023 18:53:52 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TKDVbvZjbXs26GD7/mAnWJB3dZ8nLvcjAzRMVABdxrxdzs1Mh5dbpR6dX+KJI0urCjhqXq+qSfDa1qXcfdwuqfiP3JKlFwF9KAuY+fziYf7c57LAPOVqIXGtBlvndp0YpjOs2H2I54Q/WfDgKQ/JQuh8Mcw1SmncI8HNiPkCsMmnX4tQX3k4VqjnegdL3qb2qQKa8/La+y+4HI+hNEaN5ta0l2uDGSrg+pBFiS5OIGxYIx7wR07iphCPDaknRfUXzG6DvXIXTsK1JKfYuXDYjcbCT0WQdLYo+NdYu5yAnOciRpomtkKompAtGYB373t/NkctNBpu4XDlE50bDcA2mQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Vfn/cbZTXcVvR/Gl3KPirfhKv9plSEMPck6n5XvAoO8=; b=jIXDlchoz46WcbEuIBYldbApSnjJ6n7igMpZ+fccmdYA43tevBVo9zs9qL0m9/+3na2TWFUZyS9bWvbgGqD3Ao5GmjGFe8yVXhghG+3LY80Mac8A7TIvZXVtMzqKhuCOSx7nARWKU/MVE5w1QzygpvsVRHm2ij9cz7tx0Upm31ut6lDw8tw6hOOHQ7RqRS0bgUZfPd7tWVMbNLGOevNU0OSlz7BbkyUY3Wu417e0n1wU62xquBePjzPnZyIGGoGXAZHptpMBN4lVvl7LmFgzch5feFQa+vAp2lUtLMwTj69wb6PsniPc1COvtid+AJ/+9soxMEhEKHK2pH0/OXAwzg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Vfn/cbZTXcVvR/Gl3KPirfhKv9plSEMPck6n5XvAoO8=; b=AZL5rNLz6A8WJPWxg2ovWMDHTc2B/fqbl4sI3D/M8VGDQMrwe3jI+nuc7Gkv7o340LzcZeouZhWHxH18oeq/XkH578QFta5RKMaEy3G3zyzRK1fI2C1cSuKIWyjuirCdkvlFX2nbSiCJ+jr4VoqwNl99oPRk2/7mPefpAWZDYchze//OoFo7GHEtsdLsP3OdZLxUXcX54GkfLdfzPaynFPZ3LWkIC0kmNO10GdQQlir4qCl0rkX4IzVDSP8LtjUvup6uOcm3zBrV+7bZ7FCuVUB1g7BAJeuxQDcSLRMf1ZHi1vlU097S0afQO5DDyBBuTSyzBk10KDUrT9BWXiQi0Q== Received: from TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) by TYUPR06MB5873.apcprd06.prod.outlook.com (2603:1096:400:345::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.22; Mon, 7 Aug 2023 15:53:43 +0000 Received: from TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::f1a4:bbff:7592:ee31]) by TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::f1a4:bbff:7592:ee31%5]) with mapi id 15.20.6652.025; Mon, 7 Aug 2023 15:53:43 +0000 From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Mon, 7 Aug 2023 23:53:40 +0800 Message-ID: X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230807155341.21438-1-nuomi2021@gmail.com> References: <20230807155341.21438-1-nuomi2021@gmail.com> X-TMN: [fmw13GgEzhPXctTOELCNHvL/va+jcJaS] X-ClientProxiedBy: TYCPR01CA0147.jpnprd01.prod.outlook.com (2603:1096:400:2b7::12) To TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) X-Microsoft-Original-Message-ID: <20230807155341.21438-2-nuomi2021@gmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 2 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB6433:EE_|TYUPR06MB5873:EE_ X-MS-Office365-Filtering-Correlation-Id: 8789dc73-65df-4d7d-a5bb-08db975e7a15 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sRlxd+Gn84xnYtih/5icCmqmtvQ4TXw4QXZWLQAmq04u16fwEb1GcrARS4YuQTd2N+V0vOr6yhcjD4LpheSwWMXs3GDfhPxT/8e/eHCt3dUN7dH7rglLnXuS96YlTWih6IM32JVWtNBDV3MnkTCxNqsIFhHdDPn0yVjMFnzxrgvaf4K1SazuVW/ALBZoduu1RmTjJjehWgyEn5qeFJgWRpI3G9i7WBDFEOoBq+EZdEkIEJvqyZ8gB04WGvm9uAYxqggjnkihrJaH0VzAWamInt1Le/wr8Xsccowxh2XkrMRS7C7e4oHIMRmWQeZrZjs/14krrVNunklbxjM6w/QDqNLTaXbHctgpMmfn0pIOiPddQFeInQa7Ip5Xxwua+DD9u1ofI00kbNqaxvM7p1aTWuUFVGQSOAJe6dDUgMDfrZuedG++/uk3BfZ9ajPMPR6kjrHk552o7RIC6o6sAaYQC4nBakc5PuzbZogUbecZOG1+BLeXqstfmSpoh41+rEpbajDRtB2ml1IHNzTiGuK2+Sn4/EXMqboPLpXQ3fhzdy69xG4FhyLP6qCy572MhXXe5WwgQnKdv9stXEHXAtL5vdlana8ijOIRHp7dSFUCW0gdPWtbVJk6Ab0LZqxuVzHJ X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Lo7MmvFyN3D13ssaycepK1kSiUN+iVDOZ4Wf/tivr9r36ESL1RWs/50S2Dj8GyVAPBP8tqjxui77Ap1xrqq55Us6a5qyTKbXj/U+c6h9SUuu/UQlRU8BPSUSskmmaxBXVH97vF4dC4wwmKAodS4jeem3jUhMQZnKPnfdb2YsNgvqvKzv2phRiFzuen2m4cxzAUBlPvvB6DrsuJaQbWbU8Qjx5oeDujWcamfyCRDRCftWF5UgLCmFRSVVecw2RoEm6UGdKNGpaEgqI//55e0d7vg+tt+EInhWGlt9AtWvVykSRjpY1wK9GrcSIx7lJC9l5Uh79g/9N+DRTVZGbg9psjcLOdZchJ7LIDYVbbqOOt51qNcUMpHfn5pr6hnGCcoyLbB3ebz2cViK03ng7gcijtrm2U/9MSBUEoCWgXE9CjAcSZ28Uxdhtoemh/OMOddLrZLO21/aWoHUQ7p3ISrO6gWvlZsy9fD/1HadTzBEs219Dk9kD/ViWaPht+Jf80jjyA4hjPOk3l/gN/g2GEo5bWzVJSuwzmgFB+RLzBV2cZ1qyiwbA64UPLWmPmlsnrMTb65EvqEJmDKe60BUaBeCKgTqHCgKigko1lHn2BeAD51BUsrbpd6l62aV7XadtK7jvHgItTUsPPh0k99xQd/gtwsMYBKOFEz3i15xf5DPlu3emkz8yhC+0212RwmLxTytFgv7rnbwisf1cS2kxK8ZsE5s0oCWB1xlF12d/7tR2Q1SGB2+UCo/NVrNWnQupUmKLT2b/RcrfZ4zMweWOz4v53if4o1bLYdY6j2sVsbVC2P4dTST2dEcrPWvxMCG0LDkuEiM8PXz3R64ErYAiHs+Ki6P9aKLw2qwTnDRkj6h5kDHhyItUlqrb/erl8mcJPLGGGQ3S7P0zPlVxweQi4XshD73CJ44ADh4AmHScN94eA63pk2VF9Z16RtAiJiPuMdtkIhumgpYAd+RT8FOOL7mAr6O0N3kYm5t+gPc0z6IPTroEMGwx9a9mtx0CTZp4CTUztHBqJ+9sUpTb2w5xjv8Z0E4L9cgagcmY0gKd2db2QHxa/rQbOeUyghQXZLuTaOzd4etRBh/M+72Rd7jWs4pUoI9C8fFyMFAvFCf4w35rGuqTyUGR9UDAGbSehlBcBpyiXcCsFYMaBgxkd6L9Tpud2fgFe9kS3KFI+zEJV6cgQdkRuWq7d/tm3gPBj46Cu0OY+L3VqivOj/UdS5jhLmKCNJhSGNUsT4YPiXUsM16XFk/gGQvC6zx7BOk+1/lzCNg X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8789dc73-65df-4d7d-a5bb-08db975e7a15 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB6433.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2023 15:53:43.6689 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYUPR06MB5873 Subject: [FFmpeg-devel] [PATCH 7/8] cbs_h266: H266RawSliceHeader, expose NumRefIdxActive[] 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 Cc: Nuo Mi Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: mSHOv40B44Ww --- libavcodec/cbs_h266.h | 1 + libavcodec/cbs_h266_syntax_template.c | 41 +++++++++++++-------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/libavcodec/cbs_h266.h b/libavcodec/cbs_h266.h index 87a2d02cfd..3a6f6d96b5 100644 --- a/libavcodec/cbs_h266.h +++ b/libavcodec/cbs_h266.h @@ -833,6 +833,7 @@ typedef struct H266RawSliceHeader { // derived values uint32_t num_entry_points; ///< NumEntryPoints + uint8_t num_ref_idx_active[2]; ///< NumRefIdxActive[] } H266RawSliceHeader; diff --git a/libavcodec/cbs_h266_syntax_template.c b/libavcodec/cbs_h266_syntax_template.c index 501c066faa..b26d7c1a72 100644 --- a/libavcodec/cbs_h266_syntax_template.c +++ b/libavcodec/cbs_h266_syntax_template.c @@ -3191,39 +3191,38 @@ static int FUNC(slice_header) (CodedBitstreamContext *ctx, RWContext *rw, } else { infer(sh_num_ref_idx_active_override_flag, 1); } + + for (i = 0; i < 2; i++) { + if (current->sh_slice_type == VVC_SLICE_TYPE_B || + (current->sh_slice_type == VVC_SLICE_TYPE_P && i == 0)) { + if (current->sh_num_ref_idx_active_override_flag) { + current->num_ref_idx_active[i] = current->sh_num_ref_idx_active_minus1[i] + 1; + } else { + current->num_ref_idx_active[i] = + FFMIN(ref_pic_lists->rpl_ref_list[i].num_ref_entries, + pps->pps_num_ref_idx_default_active_minus1[i] + 1); + } + } else { + current->num_ref_idx_active[i] = 0; + } + } + if (current->sh_slice_type != VVC_SLICE_TYPE_I) { if (pps->pps_cabac_init_present_flag) flag(sh_cabac_init_flag); else infer(sh_cabac_init_flag, 0); if (ph->ph_temporal_mvp_enabled_flag && !pps->pps_rpl_info_in_ph_flag) { - uint8_t num_ref_idx_active[2]; - for (i = 0; i < 2; i++) { - if (current->sh_slice_type == VVC_SLICE_TYPE_B || - (current->sh_slice_type == VVC_SLICE_TYPE_P && i == 0)) { - if (current->sh_num_ref_idx_active_override_flag) { - num_ref_idx_active[i] = - current->sh_num_ref_idx_active_minus1[i] + 1; - } else { - num_ref_idx_active[i] = - FFMIN(ref_pic_lists->rpl_ref_list[i].num_ref_entries, - pps->pps_num_ref_idx_default_active_minus1[i] + 1); - } - } else { - num_ref_idx_active[i] = 0; - } - } - if (current->sh_slice_type == VVC_SLICE_TYPE_B) flag(sh_collocated_from_l0_flag); else infer(sh_collocated_from_l0_flag, 1); if ((current->sh_collocated_from_l0_flag && - num_ref_idx_active[0] > 1) || + current->num_ref_idx_active[0] > 1) || (!current->sh_collocated_from_l0_flag && - num_ref_idx_active[1] > 1)) { + current->num_ref_idx_active[1] > 1)) { unsigned int idx = current->sh_collocated_from_l0_flag ? 0 : 1; - ue(sh_collocated_ref_idx, 0, num_ref_idx_active[idx] - 1); + ue(sh_collocated_ref_idx, 0, current->num_ref_idx_active[idx] - 1); } else { infer(sh_collocated_ref_idx, 0); } @@ -3233,7 +3232,7 @@ static int FUNC(slice_header) (CodedBitstreamContext *ctx, RWContext *rw, (pps->pps_weighted_bipred_flag && current->sh_slice_type == VVC_SLICE_TYPE_B))) { CHECK(FUNC(pred_weight_table) (ctx, rw, sps, pps, ref_pic_lists, - num_ref_idx_active, + current->num_ref_idx_active, ¤t->sh_pred_weight_table)); } }