From patchwork Thu Jun 30 22:29:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36570 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b27:b0:88:1bbf:7fd2 with SMTP id l39csp621210pzh; Thu, 30 Jun 2022 15:32:17 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sYEf9Ltil1devWJ6yVEb3KJqgJ6xWNl0maIfjGQPW7D+B2PHFTYaPmHIAa1Vl0zFOz9+Nc X-Received: by 2002:a05:6402:5256:b0:435:9017:e5d3 with SMTP id t22-20020a056402525600b004359017e5d3mr14695343edd.258.1656628337592; Thu, 30 Jun 2022 15:32:17 -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 ds8-20020a170907724800b006ff1a60c3ebsi2180550ejc.821.2022.06.30.15.32.16; Thu, 30 Jun 2022 15:32:17 -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=MShbKFdk; 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=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9B94C68B815; Fri, 1 Jul 2022 01:30:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2107.outbound.protection.outlook.com [40.92.91.107]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CD8D968B7FA for ; Fri, 1 Jul 2022 01:30:51 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k1xxSdk4VxVmRrQuY7sNompMjjo9IrWi+7LycgphkYM9GQHCyanSwhf5TPH9Ic+qlF9INS4VEp6lY+WbgZ22kebP2WZ1NBBm8YZZli6PD5M14/BYQEKtcOfQK+LBGoqzvtJLaD1xAKmUV2yNp0gmXdS43bW7yISbznvUQpfaFSRMxQfBAk4MV/9ys5hkK2SfHDRrFujakg+kzZ+yEyu52XiHEkNZSrzIbYDXYc/9PD3W4rRMm2pTe5ng1a1ihTKyqJYdebodMFytLOoM8F9+m17pZqXAvg7OLg4QYpRHa8XAa77ik8nVCtta+qsQS5ErmJwHfr8LEdKF6+aS/Cx+iA== 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=zYL3xMo5VjFMSPazmZaFEM4L7HkpO571iPfhdxUdfdA=; b=L6vc2AogkgHAsEKc0kiD8q+tTd8mHooUln/x7YRi1JB3JPgo9nFLspw2z3pjBGeXP3AOPs6/cBXkm+7bEWfcETaOnt5Gcsz/IV3Fp+C4/Ym93kZThCA/SaKzaC1VEvwSs/o1XgORuD96ogxRHFKjxIGlwKA7dgIHxPX1nsvin4L2JdVXxovj28a/njv+DS0p9iJ/6zsehqSczdsJjhoAHV+yobP1gFlLR2jzxcg9vCG4E3KxgtBTbcL6GVbimYuQvWOsiuAry+2ZCbFbgwlyNlNw96AogEtotumGOMi9LmeO/xZMATATpd+37O0SuB+LTP9SqeSyQ5QlcMZV/EzdBA== 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=zYL3xMo5VjFMSPazmZaFEM4L7HkpO571iPfhdxUdfdA=; b=MShbKFdkN38UKbVTAIXao52HpuyBVtq4Yiw1LuJOLT52oDlzoRol3YUk4ZtJ9A1f7lzXFhDCsYCyrYeN5vgJte0KUs9iQ/YRXiV6JyCfcKV8F6T7Ay2maT4B7YxDeCCoSQkUWol3RqpVsTrs9tH6koni/x3DGrbABB4B5CDP+c+od/E1C57jBiqEo2cteXc3jJn0kY3Sj/oAELo8IY9v/hN9US5DZcOnFCQsrvaVJ1JG9TW6ZAdfpGO+Sk4CgXI4JKcu/e444/WFl/51KFHGZLTR/D7zS803YlD632IIl4z6vJnyBcB+mDQxrQl7bTPsUrYdOJcPlQI9qYjxYIufqA== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB3PR0102MB3546.eurprd01.prod.exchangelabs.com (2603:10a6:8:d::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Thu, 30 Jun 2022 22:30:51 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5373.018; Thu, 30 Jun 2022 22:30:51 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 1 Jul 2022 00:29:44 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [FGX07jlW54WEpajW4t+djmJ9fgOdwt3g] X-ClientProxiedBy: FR0P281CA0099.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a9::17) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220630222949.1758625-12-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3b482463-922c-48fa-c8a3-08da5ae82fe8 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSAA+E0K/sYrHNnfsWcYQJj1q+j8wZayWMzpYLKrOqPZOaWEyRwSAlwnez6PVeTRXzTn7IVpWgrheebfjOqGpKbH7bwIbPnZiCo1P343x4RiNFvDkj718MM6DSwZrC/v53ZdamtHLpB8n98mse8mBCq62trUoAjTMr2salUdrSacoxAorCCQ6JwXhjFBUgn+uTZJEq3Tduyt2K5Nc8G16NrWsOMC6U71CvDZJzaS/HQ59sWUZyswMOODvuO16UNIUMrSz9MoBZTvUCMPhTJD15JZWMPjv2ti4QtIUF5GWeGR7hR7a6nRCkIFyym+dboGEIAuoXfuxVSNWTIlMA3cfx+3proZb2Er2FqZtjgcvITRU99HOD3nHa5LiMtCSWZZcjEooEG5oYZfuOPLyPWfQRwmEjbdkog29fdSP3/S4IIWcSTwxzW0+vLfNAVO+gDL9uwFJUc9itPx1k1/+vsKQBoACvTSca9+/kbuqD6diHkQtSFnJ5PC/I8sYmifopeWR0NRbCm4Ne0nDwMXqWmGaoZNQM5ydOySpDnk0mlm0didU5KnJgpV8eAwY0yWC9C9d1s/KJW7RP6UffS9I/McqGxFRBbJHlbR0msxE9s/vYphzZ+EG20QusUncIZFcKuu068cXtPkHULOsLwNIZLNxVPu8t9CvLucxqZ6O/pEMCBPrKh/pAU0tB0+eh+YKbKWW8e0NgQOAPxpi+WlaxRh3Us7nT2UQam3pi9NtKpXAeOlB+F/d4zX+qojLLWc2i/fuY= X-MS-TrafficTypeDiagnostic: DB3PR0102MB3546:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wuQmirxSimM0sVFKIlJE5qKdGOCv6YWRj0SZT1SGWuFCpeKs49ezGgMPrpbPQbouxT2i5swT9IBU/9ETgd9d0jma2Jxmku3CQcTh6WRM2K9L4LnGSlNk04ZH3ntxBBLIXoROXJTdqYedPC7Q4pdGznI89/ZjYqDMY3IsP/U+3mkctuVUwB72l9iPBCgZljLa0MQYRpLJegnqOpwj6kEv6N39UuCbLMPPKthmYsPj5XObQ7lgIOsj6k6dJBsyQJZJWHubrrgUFcepi+d3RaZR4nOW4eq0BvYwI9bhqmP/5Ftrg8ErIhVsntp0ZMh+e1W/h7efNAVsYr/7D+hMUObEeO6P8Oq+pNivqqoc4UFazLMEJDJI3piqW0ENSG5nSEk0HUWrUIj0U3j7n57P7ppA9S1k14rjub7WCGLbh2y/ADZaH7V+8PdfNjTz3q58ghOrHFFVhOieZ82ZqTGsFNa5kzzjgnIWzUZCZQ7EwSjoN/Br6oq8fD1FsnnogWnfI3Lp1G5+0RcI8c/wZLGjamoYmjOOcTQkjiGB8PB5I55QU6W8eP1+YtUtTC4ZIwqaMze9EhIoZiX4icM541GX6qb6QHBGuD01yi4RrsN7Mqozujtw0XmNSgPEBIfOQiFWRZZq1k1+eyLbr5MAT495XUewEBzVMPR6Z3w1fHQ8owxz7WVwRQ239PHAL86+EZLQVHSvcVoQEO/mgzvhzHpqqrlSjg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: R6z2mikNCZq/bMEnbiZsywvDzkt7q4q5Ey1kM1Sh5BwMvdCRgV3PIoG76gSqa3m0i/ts1DLFvZOqWjFs2lnQ0FuiHo/lADyzFaSU1nYsXOQkM2KSFV7LbnKADLh3XdbSJsQLz4cgadWyl/yEaHxfA55d0YVyppXN5UxMpfPDhTw3NFKoN9eY5x/PTkM1oGUiS45XeN6JyBctfsZENVhdVNcXlRSaThwTaickAk3AydhSyVzSsrtChmcOxfpLmUrsUk/NFTm2/7vcZCnmZ+Ll5nIbMRefPcQL4CTxk6eDT5jRusQercfucOX1f0LXr3ZATPtIxgApWy2APEKEnDwrpy6ERS4eEVaCsEWv7FYj2MY/wh2NDGv//g6GRstyg8rBNvqCwyQkFmIp4UqXP2z/J2uJo1/QQC5rNYkfFrJzEDywMKFFcq8LuDqp20a0v4RF7+NFDAxQkGEVdkqDoQkwQeZ/rDxW5kP/w5ZvHBM1jJypoYca4aPvxYxlti+5oT5m+kUE8UbYBP0fhcVYQ9TR7BG7eriWW+2JTYUWzF+xlGyr4opsXqFmzKfClbg/Ic3k2/sZros4lYIw0LTUL05Eg3+SegUJv1dX7kbU52WiSx4W03HP1NaStJ3oIYYKl2YQRnqtMkCHJT2DEcFfkZuLDJXdMblRRgZRHAdPY1nqCxi8/JdOuxBX8c9EChjLKLifllxoLwBGY0/CY/chG1IbPqobKeRowsQ1wj0j8QL0EILwRTV+wfQMoB/Kvz3MrZ3iyBtUViLHEevNhqfdBpz+a0k1UKta87Ril8gOEmKCMdr8vjbae7vw/ySjEvLFpsqfV8Ztl6Nn7Cv0bFv/d/CLkttr9n4XrCAcnle0eOhgH3BhrPSQQPraX+qFzTaZpNjAtJBQiZNEioi2JysDJ5biQHGI5iFgiwBbEJdJ2IAIlKkEJk8Mdffw+7u/qV5BXLRtv9B0rK5qnhk+Pe8czJaKTll1HiU/diEuyYjyzJJFacJO5mT6Vt30yMG+8TEgCGmdIP+rVvitUzwVvZFiopNh7OSREMRDalF/ANsHkU97MKX+21+M8jBimtLcT6+H3XGprB3jHiguY/2ULz4agUCMnNnZJB3uRBH/6PZw2UUFr5i1M6512GfdxfyJdLDI2vhmMfaAqzS1YAfdDin1NSMkYujK3vL/NgDPSSCQo5JONQcmHXhqWH8bbnNXuZQCMZkaEFJG8ZZOfMx8NV2O6736y20SWQuvcRMO/0WCP2oaYX3rmrf2NXoWOx0mP01kLlLw2Qdi6hYu6lCVSCmSqlmkbslgY/uG13nyM2k1vJxmRFc= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3b482463-922c-48fa-c8a3-08da5ae82fe8 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2022 22:30:51.1387 (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: DB3PR0102MB3546 Subject: [FFmpeg-devel] [PATCH 13/18] avcodec/hevcdec: Pass HEVCLocalContext** via execute2 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Oni5HaIHen0v Right now the code passes a list of ints whose entry #i is just i as opaque parameter to hls_decode_entry_wpp via execute2; said list is even constantly allocated and freed. This commit stops doing so and instead passes the list of HEVCLocalContext* instead, so that the main HEVCContext can be avoided in accessing the HEVCLocalContext. Signed-off-by: Andreas Rheinhardt --- libavcodec/hevcdec.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index 1d0b80ea48..9d1241f293 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -2543,22 +2543,20 @@ static int hls_slice_data(HEVCContext *s) s->avctx->execute(s->avctx, hls_decode_entry, arg, ret , 1, sizeof(int)); return ret[0]; } -static int hls_decode_entry_wpp(AVCodecContext *avctxt, void *input_ctb_row, int job, int self_id) +static int hls_decode_entry_wpp(AVCodecContext *avctxt, void *hevc_lclist, + int job, int self_id) { - HEVCContext *s1 = avctxt->priv_data, *s; - HEVCLocalContext *lc; + HEVCLocalContext *lc = ((HEVCLocalContext**)hevc_lclist)[self_id]; + const HEVCContext *const s = lc->parent; + HEVCContext *s1 = avctxt->priv_data; int ctb_size = 1<< s1->ps.sps->log2_ctb_size; int more_data = 1; - int *ctb_row_p = input_ctb_row; - int ctb_row = ctb_row_p[job]; + int ctb_row = job; int ctb_addr_rs = s1->sh.slice_ctb_addr_rs + ctb_row * ((s1->ps.sps->width + ctb_size - 1) >> s1->ps.sps->log2_ctb_size); int ctb_addr_ts = s1->ps.pps->ctb_addr_rs_to_ts[ctb_addr_rs]; int thread = ctb_row % s1->threads_number; int ret; - s = s1->sList[self_id]; - lc = s->HEVClc; - if(ctb_row) { ret = init_get_bits8(&lc->gb, s->data + s->sh.offset[ctb_row - 1], s->sh.size[ctb_row - 1]); if (ret < 0) @@ -2630,16 +2628,12 @@ static int hls_slice_data_wpp(HEVCContext *s, const H2645NAL *nal) int length = nal->size; HEVCLocalContext *lc = s->HEVClc; int *ret = av_malloc_array(s->sh.num_entry_point_offsets + 1, sizeof(int)); - int *arg = av_malloc_array(s->sh.num_entry_point_offsets + 1, sizeof(int)); int64_t offset; int64_t startheader, cmpt = 0; int i, j, res = 0; - if (!ret || !arg) { - av_free(ret); - av_free(arg); + if (!ret) return AVERROR(ENOMEM); - } if (s->sh.slice_ctb_addr_rs + s->sh.num_entry_point_offsets * s->ps.sps->ctb_width >= s->ps.sps->ctb_width * s->ps.sps->ctb_height) { av_log(s->avctx, AV_LOG_ERROR, "WPP ctb addresses are wrong (%d %d %d %d)\n", @@ -2713,18 +2707,16 @@ static int hls_slice_data_wpp(HEVCContext *s, const H2645NAL *nal) ff_reset_entries(s->avctx); for (i = 0; i <= s->sh.num_entry_point_offsets; i++) { - arg[i] = i; ret[i] = 0; } if (s->ps.pps->entropy_coding_sync_enabled_flag) - s->avctx->execute2(s->avctx, hls_decode_entry_wpp, arg, ret, s->sh.num_entry_point_offsets + 1); + s->avctx->execute2(s->avctx, hls_decode_entry_wpp, s->HEVClcList, ret, s->sh.num_entry_point_offsets + 1); for (i = 0; i <= s->sh.num_entry_point_offsets; i++) res += ret[i]; error: av_free(ret); - av_free(arg); return res; }