From patchwork Mon May 16 18:36:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35792 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a885:b0:7f:4be2:bd17 with SMTP id ca5csp1673858pzb; Mon, 16 May 2022 11:37:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwC9/0Bh63sHXKHOXXpI8PgtfyFQkPNQ0X13RkCe3TlEla02WiU5r0kVW2oB4yZbpmg+pcV X-Received: by 2002:aa7:c38a:0:b0:42a:ab63:c5a3 with SMTP id k10-20020aa7c38a000000b0042aab63c5a3mr9378031edq.303.1652726241934; Mon, 16 May 2022 11:37:21 -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 t9-20020a170906608900b006f38e90d86fsi103927ejj.256.2022.05.16.11.37.20; Mon, 16 May 2022 11:37:21 -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=JlzmZhT4; 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 CC94A68B39E; Mon, 16 May 2022 21:37:17 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-oln040092067070.outbound.protection.outlook.com [40.92.67.70]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D86BB68B0A8 for ; Mon, 16 May 2022 21:37:11 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mEpf+2zQgyxFpU5WUzi7QBXpP8LWit+X54fFBvL9xUvznKooUXuvhi8JrSO1Cks8GHITS+q0qn0wXvIwXs2yWlHRbIuSYsALBUlTmympZBIDs6FIMI7zqEDpYxKUFbOHY76ZoKVKyDwqBZpdi4/1QhiBoawKEWGsKZviP6OKgIzdy75gBMWCoFYQbnqwV+oCC6m5UQhKh0fVNB69e5cElDB/MAKuwrFNhWgOyo3NniYZc+hX9RJGvjjUP3LqbaKkAOV3Rg12fYB9vl+sDjqLcUACmbkxSoZnSxfqK8CH+NYR2GxxrrdaK2r2Uf6zi95W5Nc6JYamizR8dLvWM3NuIA== 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=9Fh483wK1igHEF/KTuY/ZHj/K/7UB4QBbjMMSY8gR4Q=; b=M6br7UF5J/s0VbLh5QMGZalSO7l8N0B/1ayl8UtI14kTVlkleyL47ajzDHIl+1qR6ksY9O5bFB2BYmdpfDRGrxR1Nr5seWIWgZJ6kX1dy4zbu9YHF2G3SCkE9lFXlo0fvaHcBln4l9mC0lEQgVFwYRVvlbgGHQzHK7qazkgT1r/YRgnvid00R2HBVO/DxCFWRI/59P6vaoWYg8+zm/P5UldasfsyugYmGnpD70bHYAhe0B5JA168PS4+y337tXF3M2DgTxQIooEKCpEHfN4TFJL8T5EmxeTqEUYSaHbM/GZbJEZ6ys7ybYsC4ZA5vWGM96dVCdOhUARBVNLRJvjCIQ== 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=9Fh483wK1igHEF/KTuY/ZHj/K/7UB4QBbjMMSY8gR4Q=; b=JlzmZhT4OaRweBsQM9AOW+2+iOxMiFTRY4Z97/KjNEKEolP3KNMDZNc8scChX2fREP/cDHktFHX6SqLHBErk7JOJCF9IxQFjgz/oZkH2maRrdINc3kaAewtqf/k7zr8e8NGjHGHNc076IqPhzrtmkyhk0Z0vxtkxB/AgPx2/n0yZb83ApAFs+Jmv3VTj4cNBCcnpQbp0CGiUASGJ+8n6ZUPT+Ohod9RKFL/SYcOFEM7/L0ZRW3vltZ9W5t/8WHvh0qXbmPPLVxsffGwMAfO8chkMUVV8+VvnV99b1JSFbKQtK2/RuSq3ZTfuPrU8bddiWcsqNi0RMBjKvX7YkVNIdQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by VI1PR0101MB2414.eurprd01.prod.exchangelabs.com (2603:10a6:800:4f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.14; Mon, 16 May 2022 18:37:09 +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.5250.018; Mon, 16 May 2022 18:37:09 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 16 May 2022 20:36:54 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 X-TMN: [vsWzEsPqRTJfbubq/um+6pZOCNoQLx4w] X-ClientProxiedBy: ZR0P278CA0095.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:23::10) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220516183700.616263-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bed393b4-1af1-45de-a19d-08da376b1528 X-MS-Exchange-SLBlob-MailProps: +LiGfBxqLEsnwJhcwgfZpZbyYDwgiuTM8kepuFhbZpEnSoNi+jLyuLWSA6NIUoot7GqxNjiWLLEr0Q3jdADS606XAxQpxYZxhgJVchzDMW5Eklk2JgshrERpbE/UB8e2cBsRR8Ar5zf2TdUTvpEaYYSXsTUg0xR3qRTZWvSGTJNgV2yDH0BE+fJsoI1BCKH0b79gR0CuyUOgGPfKj1gfd8cByuQEIKsAIyMsK7PfeJ1WrdmIICcAk/28audQrxOLM1q0V+6d6PPmletVNEa++gAm/lbEzCaWQQ26Jo7i+0qudM3PrloRKMfxEaBlaZJ/c1M4o3EHcsGLXRHh/84bKUznyWxzYxLFOzR0vWcvW9gtXskaFBffD2Sxpes2kPJ4rEfLSlzYcYDOJZxd1fL/ysjWMXJFDQgrTyfAzVGtih87rnClRo9Qzah/OUiWxy0T/6JOOl6WiBZTuBA7lfyaWW5dr7TpjOl02+/+uKAlTRBjf06YD6A0tTtmr7In6rl1W31kCA1FCyxovsqedFBskhz2j7c3WGKf2MurAB+jT6v1UR0A7rde/FeW+hAso+H+FL/FAXklKLOcO4eQyJbxf8oBkE9H0J4GCq4rjVD4xK5f5rCIDbreb99b3orMcT+iAlRRCBvKogH3j1cNlht1XjVeWSNSPOhQIQYSjve/36Lj6pRaWMf3/juECWnjfMsxRyNhb2hLMSRg8uT9RxkJwOFkEZl7PH9mBHDQMw0Q7MeYSVN3Nk/lvrK1wPxSmG0anRBzxpnKlYw2VATdojNed/ld6w8ISJ7O X-MS-TrafficTypeDiagnostic: VI1PR0101MB2414:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /aWwbLddKVcAWJHFRvIktVr8kWbay6cTIQMSArS1wwhue5+CcLEa/gmgv6sH+Exa/Xgl8Cv61vOe1vGxII4gBKeC0G7wK7yxeFfRBC+HsgSdTx2lqSZJqOlR7QMYQIMJPxI6Q0Ls+a+rc9fyefhwSLGOI5NLyi9mPczNuqc7b6yzmbmk7SWyf9si/ltajZxoz0bzYkgxCq/1sjCBrn8dQSqX05s9V9+DnIdiiaGPDTaPtqvNdG2+8VzeXgVo0cvkQRG61hoCYS27iCz0o6E2idcE+sqhPR6FUZLBl81sqQLbVxzNpDNNsoVcjpFB/vL4CTbBKeHIUUde8f0s1pU7eS0tB3FGmvI83xpUP1swzSCNgdF211v4mrNG3PvC91ogYJv1Zq9HX+ic0Ya6LmaNRkhlTh2Ydi8Df6hDpZjETsCqOxS3A+vOEfdBpBmWBiQwT/OuW9GrrdEhj0iROZntuz+dosodA5W0K+GJNg7wsU15+o6GsszcOzzx11Aq5WlI3w9z/9ttotdfJY3kGis+mun6DvJpXnBSxaXeZDfTkrzMcnaP+eQh097I8aFiMvynljUxR2oZjHS/QkziS5FbVQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tLZPKvBMZGiQoNSRh1ACLomDNnPT3WS8UnqyGW65mKJ25sVQQBWXdOYQ4euhhfrvywKGQg2If2tB5Ss2lkqdgah4aRwrFdV09PlGZiz88wesAWeu6bND1KpROo65AQUcB/BHrzvZw/9jj/JOOiT1diZHAvMqLVyWcFXQ40idsYQ3+KTuCF+rSVeInyg7g41lh4/Sk3c5BJdTXijSkUG1VBJ1nDw2hPhsWM7ySHHR8NWVwNrj/eb068Pdv4Tj2AZolB9YqUaIRlTvmJLK9VFp3M+WgunKnDbI/w8HbF2SwzF7ErOpQ+hxrsMeIuPI5TL+mSr1laZ6GFmJ0tqHpAMT99f/dqSDQzKtT2Pz1QnPB1Pv1Rx8pLP3k1js3xMLlpISMAAjTwD3V8AUN8/8g6+Ou/ZKAYvJQF4g76J65YGK5/0PhNyRenP8BmT8QPwp2ONJA3bhQtpW5912nlT+7dmL8gdX3WVKQHacR6gyIHbmAOltnwORTX997Ep0zVgVb4Ew6RDjosGDDEGvfl2wUEni4aMhFpuskYUorYFLicvrqbLqY2iaGhNiYyAdGLsaYI7TEUr3nSSeyALDSqj/EqgECvwel32yEGYxePSuwUxS2lHRy76L8fQYLx9VtRQ3KZDvUwJMogB3KVtJNeXk7Ntqmy9AMQfjzwP0Ajnhbwrd52+1oj46ULhX2Cim9+tRwXs0gZ1jylO+xlNzVX3cGeYrOgaSq6PK2sEhxwaS/2wYHwZEWjsDNzTLWPaCCeMiK9H1Z6YlOmaw6n+9d3hzzaiO0IrExxtJbi39IE4utallYB1AZBwqvauzgMjVM0VuTYbrZALmIfDfd2r23GUisKzhaccYLEkFHMWX4uQksaL50Ssqhw+CPVDfC5IWyFGHp0dDhRWkhh0y+4+AybkDKkibFkjFeVFJKw/5F9z6njj0FdaFIJSWM0vYMUdMeUvzPQ8RMiUhP5yBJEldLmhxVmyoJ5KeSqhosBT8W0cMXP1OH5C+WnOn9yx1OJ4lMt5D5l1NLOkHLq9URUyZJQLPIkH0MIK1NMMIqgbbrtcrdayY+peszITO3M/2Z0SkTsIIclVZqbHxUV3gJIGlHOZcvC5Ozn7XQDoaU3EKyiK/DJ8j+aEsxhVV9O6pbQHdJ1CanEOtAeIiS0g8r0hvJ1KDczcNZGh4YQWo3oPo0fT8IMIrVglwZjje4eyWSWym153o8P0S4DR3SxancRb+I9y5HdX5rsrUYS4eeMCoVSOth44bGYAoqrDQbDX0CXsaooR1galKTknfj7mHJviUEB9ImF0e9KTwHlebl9QVDlwuy0e10sBKgIoON+TmqrVeQaht7zMSVsVWVFVxuSEldYwKIHAUzyP80vVUvO+xUg99zHAexF9WicBz/2hAUUAMVe9bovXvd7lWZq/g5pkf9R/Aa0PKW8pjloPZ0N/1QIGEKOCLxr3qTS7fOSSzdj91es/pOkax X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bed393b4-1af1-45de-a19d-08da376b1528 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2022 18:37:08.9546 (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: VI1PR0101MB2414 Subject: [FFmpeg-devel] [PATCH 1/7] avcodec/error_resilience: Only keep what is needed from MECmpContext 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: Q9TqxzUU5Y9p ERContext currently has an embedded MECmpContext, despite only needing exactly one function from it. This is wasteful because MECmpContext is pretty large (135 pointers, 1080 B for eight byte pointers). So keep only what is needed. Signed-off-by: Andreas Rheinhardt --- libavcodec/error_resilience.c | 14 ++++++++------ libavcodec/error_resilience.h | 3 ++- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c index e9764f8d96..f957c68d2c 100644 --- a/libavcodec/error_resilience.c +++ b/libavcodec/error_resilience.c @@ -766,12 +766,12 @@ static int is_intra_more_likely(ERContext *s) } else { ff_thread_await_progress(s->last_pic.tf, mb_y, 0); } - is_intra_likely += s->mecc.sad[0](NULL, last_mb_ptr, mb_ptr, - linesize[0], 16); + is_intra_likely += s->sad(NULL, last_mb_ptr, mb_ptr, + linesize[0], 16); // FIXME need await_progress() here - is_intra_likely -= s->mecc.sad[0](NULL, last_mb_ptr, - last_mb_ptr + linesize[0] * 16, - linesize[0], 16); + is_intra_likely -= s->sad(NULL, last_mb_ptr, + last_mb_ptr + linesize[0] * 16, + linesize[0], 16); } else { if (IS_INTRA(s->cur_pic.mb_type[mb_xy])) is_intra_likely++; @@ -790,7 +790,9 @@ void ff_er_frame_start(ERContext *s) return; if (!s->mecc_inited) { - ff_me_cmp_init(&s->mecc, s->avctx); + MECmpContext mecc; + ff_me_cmp_init(&mecc, s->avctx); + s->sad = mecc.sad[0]; s->mecc_inited = 1; } diff --git a/libavcodec/error_resilience.h b/libavcodec/error_resilience.h index 2187586618..53e5cf2621 100644 --- a/libavcodec/error_resilience.h +++ b/libavcodec/error_resilience.h @@ -52,7 +52,8 @@ typedef struct ERPicture { typedef struct ERContext { AVCodecContext *avctx; - MECmpContext mecc; + + me_cmp_func sad; int mecc_inited; int *mb_index2xy;