From patchwork Mon Aug 7 14:55:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nuo Mi X-Patchwork-Id: 43162 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9329:b0:130:ccc6:6c4b with SMTP id r41csp1657203pzh; Mon, 7 Aug 2023 07:56:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFxYRd+UIIrZus3CRJgjp3sVhJ6qUDEUQMEaXThzIkp+B6gdmdUWr6btaiyjexn/ng4Zhf3 X-Received: by 2002:a17:906:9bdb:b0:99c:8b9b:b886 with SMTP id de27-20020a1709069bdb00b0099c8b9bb886mr6790542ejc.56.1691420197084; Mon, 07 Aug 2023 07:56:37 -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 q18-20020a1709064c9200b0099238b86ef1si5780618eju.164.2023.08.07.07.56.36; Mon, 07 Aug 2023 07:56:37 -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=NsgoyvCe; 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 CAAB568C62A; Mon, 7 Aug 2023 17:56:12 +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-sgaapc01olkn2074.outbound.protection.outlook.com [40.92.53.74]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0128D68C5F9 for ; Mon, 7 Aug 2023 17:56:10 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y5/KRNKw1Ye9mcH6837Wp8B8zojzAoZwxZRrnww3OzJ3lDtsqgs6/MilxrOmB7TPwr/B8gKfEXxSVa2pal1Dy6ISQrB4Wr5oWApIeH/jSGiQ2J4jOg1fkXONp9zP0vQUPzOZhNZr8ZbuinxmFYJlV8ULnIz6kaMHWy3H6xURV6W8g/4ioX2RfLJAl+hUTI7gGFNd7Ih2yuX1KSrFT78WBSYwpOjwS5KY9/Nk1fPj2bIkgv9Rr6QIm2wfB/yN9c5VayKmOkEQpdKe4w8lqspYjxyJLdfnncUbFkblpjc2YBWIdg4k4G0aybymS+lV+6tK+m//UhUcRDDnnRP6bclEWg== 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=dy1K5iYIF1t8AJinjUjqk+dGhen5tg+ld/s/YRj4PdI=; b=dgKHdC5WPKT2ImLu3njr3/xSDkNR9pkpT/YbH+kWiIqN+awI8i+gk3Sq8+4lnU5ieHpLiUT0Blr84fe/gYaLxuY3qxFPNTHJWDGYuCX0WraBMmn8NtmXsz45vsE3Mz1ZSk6Yx2whr2Fy4WeBdWZtVCO1d2Gb1Qwa/AkN6L0OKEaj+vE28Q3qPWud+Aim7y7g5TwsrPikGPuCI3LKHtO158NQzrknq1kJ7COk9pYma3KOAKXIukj5fqoIjEMpEGtAjhgpy0ROsKpvqr9YuCXyLoaTvSWvFwpAnMg+6VovnrsF5KwoB+qkmt13NhbPmgkLck0Drx9v7ReN1n78lolFBQ== 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=dy1K5iYIF1t8AJinjUjqk+dGhen5tg+ld/s/YRj4PdI=; b=NsgoyvCe3t7e1N1qflJ7bY7gMeiqJLqzPMJ5LlN/4Jdi5nGz2YFb3uSfpoz+vaqJUTsw910haWIdabFah6sRBMukstRxbzyCCxorf3JLyqRcA9ZY4rYhC3SS+mS7n42ctiQPutn2s5EkPbxiZH7qKO6w3gEv4F9GFDUzuQj4QYRqEe/VMK5nF0fr9Vtbz5EMfUfLpXV0LabTu8n//YqIMqkNkw/rh9XQvR2qlWo7hmpNNuhXkc1zNfVCNmtF1qMjf/V/STmW2YdMEhxn5uZVS3Sr1GgCyLVAjpLRpj60ThM11jBhSQ1pLfN6t1M0OAmsG8jrqr4prIdygPQTUu7B9g== Received: from TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) by SEZPR06MB5296.apcprd06.prod.outlook.com (2603:1096:101:7c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.26; Mon, 7 Aug 2023 14:55:48 +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 14:55:48 +0000 From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Mon, 7 Aug 2023 22:55:30 +0800 Message-ID: X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230807145533.17949-1-nuomi2021@gmail.com> References: <20230807145533.17949-1-nuomi2021@gmail.com> X-TMN: [Ex2nTTEEG1tnn/Qg4SuNw4HJEaToSzEx] X-ClientProxiedBy: TY2PR02CA0065.apcprd02.prod.outlook.com (2603:1096:404:e2::29) To TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) X-Microsoft-Original-Message-ID: <20230807145533.17949-5-nuomi2021@gmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 2 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB6433:EE_|SEZPR06MB5296:EE_ X-MS-Office365-Filtering-Correlation-Id: fcd74bde-a3a1-4301-5ea6-08db97566275 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CdEF8lOsR/07/h0Q3HbdmVH8B4LDKFZOLSZMzZMnXiB+rVU5luTCAx/ZF71ywfJen5ZZnLaaP5z583mImtZzbPt4PgNfn4kXJtT9XiHiR/Yvm7cyyScPHaxbHkGrNxAZWYIGpFJs0hoXbSFDVJwj59zRA5kY3+Vks620Jf+YpD2zVFnPsxHbxCSyEgp1NQTPYbCZSAM/GL2+aZtmR+zNJ6aqLUmFyPUYzvRToYyKCQ/iz7rFVbEPhfvmtjpsMC+2nBCzpGx8IJNnhRWrZH6HFzBvxY5OBTEkUVxsqpq9hUfmogbUg0kagdwd4MlfCwCWTrGjYTWX1AeJI8tbrbeyfeg2eAbSYniAPdTQrQ7AzE/V9fLwQfhTtr7BaLfA8tZUtCPALee9/wRbUT3Bz7+MMFBcWfz6H7RmyYIcuaiPCKj/jlDMED2s4HT6/lA38MNlT624HcvMZKDW9I2ej1rQwsZ4n/Y3QO0d2XwW+0xBb0whuuEB++/RnSrZ1f7wUYpDvWKvddURkWb2TGf1sGXIBQ4AeVYRgRV55jFJN0uim6hMrBmvskfNxr39QedAM16DEIx/EzSZG4Th/6/f4GS6XHJUKP71TpGxoTgMM04Sduwjste3FwYq0U+a/nzVOPGi X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 82mXSBwDicWAwP9DzITRP7FlaD4K6HRCq+qxYecefHgEu8ZW/0wWW8JVRESo95kv+DPem0oraA3fvKqgv3+cQTuFmQi8FGHql2xgZKAQEpL+14jbdOkvu+XSH5RFcl1Rglz6zLtQN2uXzKWwiLbJzcWl1654khKKfBfjJN1KPfpAWyHgP9QERuVfCdDGJIH72ekoe8moPngld7azvcrX0rF9EjsSL68HJqzyN1aR9A4cQgvFoIqDk3eXRNX+ScYE/xBImjCTpp5ZYO2IQE2FEDIrOsK14qn919X2OKU0urGvNo25bhWtFlsLXW5GNbwdz0TkxIgq7fLdUWVnbOn4WpfLP+eZ4TkGcz5wETiS8a3S4tEZvbXWzYRdmGcoprgmgbT03M0seZHt9JdxD8WYQmg0oEagh4DWG2TVuZdNJ4lSmEifgkMNKco+18gTpAo+joRKVwN9VYk11wVSgKXAk0rSoivLcWVA4EdQF8d+H4bpgV0ZK4i+fVcxJTjeNE5ChoMVC/jFLW5nUKgPq9j1r2HFaBQ08cd7x9z46YW992XsrAHLzLIO77UiW6eZidJdcNP2M9t8qmOUcuXvtB9pATQJffgZ3WYaENKT8BED30dSCoFB8nyuZ3lhwLk8vidj4r4GrgZ7TnmtAfX6y58qh8yeyDIffcDrcmOdZ0fFRJl9IpU+zAp1hEQ6XTPaYjrpXoI2/bdSDXWfpkMDsdMuOwiDKQA6o/18ePG6QA3GFGIhajkJGKA3sk+pbGiBogvTqHGKLe2mgpopqn1O2FIOfdiQvswNlQdrnEVWn+trxYJ048rZaZgXvhItUy0fiGbrsrH6qhCZuc3HZ50khxVnoB/gvVFftB/y+bNS2NeOamCi2g7XKqGP2fxgAh579UtOXaJDg9zt4om6uupmEYfASnuPFpLMN8qwhbiQRmZmzFnIcmflw6pjLwFOFN//jVEd7TImUUlE7TwTeT2nxwXBr/t8HKDyLPXeLw5uL2k2zlFs7lmAqMwlZN0GoaBSSoVLeRT7PmHFWPLEUH4DKt8beVoj85mEOZE/9ZFA509YEW9ZmIXYbtmHoCtUtJa8bh63DH+4plwJP2DG9FxrBLRGjkgx5S400McnQCpsPiyd83FK4Yc44BwzjqTqkeyFiYb/6kRnU8YpY/CUmNlbwSfqsKJ3g3nsgC2cz68Z5MnWXJF5HpUUS+428Qgqd3H9P5wSir2X0n6oKHEQNp8CLhNuG1gEqW0FsBsJqc0vhVG0XY+kv+EVM+xvLILM5lWEJjvF X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fcd74bde-a3a1-4301-5ea6-08db97566275 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB6433.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2023 14:55:48.1098 (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: SEZPR06MB5296 Subject: [FFmpeg-devel] [PATCH 5/8] cbs_h266: H266RawSliceHeader, expose NumEntryPoints 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: 71vDYVQA37m+ --- libavcodec/cbs_h266.h | 3 +++ libavcodec/cbs_h266_syntax_template.c | 17 +++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/libavcodec/cbs_h266.h b/libavcodec/cbs_h266.h index 0196f46bc0..1d80c74feb 100644 --- a/libavcodec/cbs_h266.h +++ b/libavcodec/cbs_h266.h @@ -828,6 +828,9 @@ typedef struct H266RawSliceHeader { uint8_t sh_entry_offset_len_minus1; uint32_t sh_entry_point_offset_minus1[VVC_MAX_ENTRY_POINTS]; + // derived values + uint32_t num_entry_points; ///< NumEntryPoints + } H266RawSliceHeader; typedef struct H266RawSlice { diff --git a/libavcodec/cbs_h266_syntax_template.c b/libavcodec/cbs_h266_syntax_template.c index 43b3346359..d0d1ccadd2 100644 --- a/libavcodec/cbs_h266_syntax_template.c +++ b/libavcodec/cbs_h266_syntax_template.c @@ -3374,8 +3374,9 @@ static int FUNC(slice_header) (CodedBitstreamContext *ctx, RWContext *rw, for (i = 0; i < current->sh_slice_header_extension_length; i++) us(8, sh_slice_header_extension_data_byte[i], 0x00, 0xff, 1, i); } + + current->num_entry_points = 0; if (sps->sps_entry_point_offsets_present_flag) { - int num_entry_points = 0; uint8_t entropy_sync = sps->sps_entropy_coding_sync_enabled_flag; int height; if (pps->pps_rect_slice_flag) { @@ -3392,7 +3393,7 @@ static int FUNC(slice_header) (CodedBitstreamContext *ctx, RWContext *rw, else height = pps->pps_slice_height_in_tiles_minus1[slice_idx] + 1; - num_entry_points = width_in_tiles * height; + current->num_entry_points = width_in_tiles * height; } else { int tile_idx; int tile_y; @@ -3402,18 +3403,18 @@ static int FUNC(slice_header) (CodedBitstreamContext *ctx, RWContext *rw, current->sh_num_tiles_in_slice_minus1; tile_idx++) { tile_y = tile_idx / pps->num_tile_rows; height = pps->row_height_val[tile_y]; - num_entry_points += (entropy_sync ? height : 1); + current->num_entry_points += (entropy_sync ? height : 1); } } - num_entry_points--; - if (num_entry_points > VVC_MAX_ENTRY_POINTS) { + current->num_entry_points--; + if (current->num_entry_points > VVC_MAX_ENTRY_POINTS) { av_log(ctx->log_ctx, AV_LOG_ERROR, "Too many entry points: " - "%" PRIu16 ".\n", num_entry_points); + "%" PRIu16 ".\n", current->num_entry_points); return AVERROR_PATCHWELCOME; } - if (num_entry_points > 0) { + if (current->num_entry_points > 0) { ue(sh_entry_offset_len_minus1, 0, 31); - for (i = 0; i < num_entry_points; i++) { + for (i = 0; i < current->num_entry_points; i++) { ubs(current->sh_entry_offset_len_minus1 + 1, sh_entry_point_offset_minus1[i], 1, i); }