From patchwork Tue Sep 19 19:57:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 43832 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a886:b0:149:dfde:5c0a with SMTP id ca6csp187073pzb; Tue, 19 Sep 2023 13:00:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF17BzaSwvbOvW5aOAr7Nx0dvwb2kLFyWTKxIbGCaJNs2RBb2FiLHG4FlP9rR2NfnMqzcAd X-Received: by 2002:a17:907:72d1:b0:9a9:9d19:b250 with SMTP id du17-20020a17090772d100b009a99d19b250mr4972713ejc.17.1695153642969; Tue, 19 Sep 2023 13:00:42 -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 v26-20020a170906859a00b0099bd19fe601si10849962ejx.533.2023.09.19.13.00.42; Tue, 19 Sep 2023 13:00:42 -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=pggwD43j; 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 B49D068C98B; Tue, 19 Sep 2023 22:58:17 +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-am6eur05olkn2080.outbound.protection.outlook.com [40.92.91.80]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E893068C93C for ; Tue, 19 Sep 2023 22:58:15 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZEPCw6HvRpTvgLNMzqP3mkRLlRJ1PnICVuCML6hD9aOrpck9pdpwt0aoYp8fivEZcKn//VrUqvLClNb/vuW8hK5QJnQi7qrDl5hp5T8hdG8oYuIoNCgxp4c0CrAZ+/O6zY6AyR9kd7v7guMVp6cu6jHBdZTlhKCpIhQsVHKzXcDynwXmm5lKoInoUqQEKp7siEnOeH16toYnrwYr93Rh1nWq17mS19yRvMmeTTFs/6Q910bQkl/8SvNksC9i7d0G5+TL+pLR67EpP/a2pi/b8uqQ3o+r2A8tIrrNyIrRYK67EN2iRKtIFUwwSd1feIkqfkZbjgmhZouiZG8pKV2l3w== 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=0g/JXqXnPr4Un4cF2KSGZxJ1QzibLeI7EGIfeyX2ySk=; b=i2c599Ue7aknXdVAy7g9rwUnH43sV5Mc2YKya68B0m067qlYla9/aGrN9yzyocKGuhAt2FaPlDWGRytaJbC2DrPpSJToQCl+FwHKWYkgA6kmaVNOw/LgMHmmT53N6dBj5XeN1rO8bLaRdtaoyarX6KziePZRWt5a0JBygXUYfDdQPVFxAVDvvugDrV2QWA2K+HVlVxfWu0fiOQJsEZZE8EkcjSfzHPdrX66ef7NKeO/a0e7porsMbw/a5W9/vbCe1WF1c7jv8D+5fibe20Lu0WU5m3gf4s1IfVHQZZb47eagADEwQ0GOeK6xmFEfr1Rc7rdlVBHN/S9bLtrk5wkCeg== 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=0g/JXqXnPr4Un4cF2KSGZxJ1QzibLeI7EGIfeyX2ySk=; b=pggwD43j3e2mWmbbtvpXHzGy5Z+nDMqDyPKXLLe6LqaFg4M4lPgSWBYx0ufN/sGSIPkU6cVvadm0E2dsHvL6Y7B8kO6AH7sfkKGocjFf+HNXLyfx0XfHhCMFaFXHhZmWcGXXuO5F9PsywLQlzgeOCMYdwfMjHOcVWgFzRljpzNl14Si/25cUao+OBaPbwUF4jFN4dvaPZKQ2Ui3SB62HLnCe0IYdXi7xuw46HdkcfxT18msueVGdxBdjI3njHUCBv6HJtTbqaoIYpxx7u9l8/PbovmLa3n/3HLosp0BDiYfs9a5YlsO2IKZ+zMyXdeJUe1nuGK94I6dRK+OsVfWOBA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0237.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:276::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.26; Tue, 19 Sep 2023 19:58:14 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6792.026; Tue, 19 Sep 2023 19:58:14 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 19 Sep 2023 21:57:17 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [gvPv7yUS4dnZ9NFwSdXTf1jL0tGbMLDq] X-ClientProxiedBy: ZR0P278CA0086.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::19) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230919195734.1005750-25-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0237:EE_ X-MS-Office365-Filtering-Correlation-Id: a1ba53d6-4f91-49e1-2348-08dbb94ac250 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3fsfQ3FbpDXfIGFuh3k2w0t0dcUl+8vkhJnodkgNg1I+9TtylrpcJ1CdYOhYDNLZL1yheW00Mo8y1iSfNpaKwSJnT4DBlhwbUd5FN912fGyH8YwvR+UPX2JPk58J+07lwwFEwennI0/Qa1gCWH/v0KwOSwUkhNKwMKk++PAEF6XYGGovJXB2I6DaTi9POO0tFru6TRRnUeYFkIJSD72lyhMN/MT5ZS4sMqD8hLkNtiYGjQ/b/5dJAM03fFICb4tR58Lw6QSKSPafss6VKVIqqYFlSsIjJ9emAeinU9AaMQ5YEC9b46/YSmtTTORujCW2n8qGpB6rD9qWcjNf1yjNaqm2NoLNizs8IeFxO2l6zoQsijts45Ek2+AGWjvn/+ljVXFyY9DrNdxjJbezwTEk/wxnte9T4T56ULR1RyTlkgmmcH/3MSY7iOfJQTQY8XRWa82ZJ2fJ4VOVoSDIP9JCH3HwmuoQ5H+ii0mfJiZo9QdtQGvIAWfREeFWTph+L3HEhpJV9ALemvHUkkLed97xGQmIiDRMRUnRnC3o0vD+uw44GIIjcLYOkTQZ6e3pHDkWJ8FsgDOtjpB6zhwe61O8H5LhPO/I+KeNUrPLnqOmYSh3PGzyr3/eRPQ4nnHtlzpo X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: qyDdvZuDlKzdkROcOYSj0GZToLkE1/1HQS+ZFXqP+9dy+h1M9nGn1ZC2aD3wmGQWDsJc69XjJX4luSR/bdYqIWjv3vDmynGU3B1d3+SiMweYS39IZPvrFpNWmE31HHSw3Xg4FGVoKIMW3QM/AduqOC+rf4bCu56A2C2eXn+IFngYCvtP32zvjMa8qHAdhR9PryGeKVluVjnwr9Zg0Mmn4AKu55tzwKa4mxPVkSB/rr4kU0uW3wfr1YT7ivnUeWVabQCgSIt9Vfj/KqnnLoQFGHHk2b5kNgxcGMuiU71luCYGifiFxyh866jrjR19NgTFUblacPr25XAcVDc2RHNFkpM9NCDfjtrdSC2yew5kRM53H+0ZhMnvKuQGvny9lIIA+N6T+CKyriAHAKs5hRxlWekGKUFblpan4/MBNAVAVJOj+ZL9GGsrwlkU/c2vQMb1BTVgvE7IcAq7r/v6gYzgRouGamRULKLRTfYRpbHMEMrlLiclLg8fNhcGfsGpqfB+7vywwF2ybiDbSm93GVUUbwTe1qs+TtHWbxKqZ6y0y9UshQu536tLlIWqHQVxg7qOHAhV0k7wLink59RUO9zUavgrNVdBuy3/PGBoXfcXNQyP1Z0936NmJaAUR3zO8+/wAYpQMLccU0ZbiVMW+yXiRY8qB7q7ud217IFWKJy0pH7PI62uSp7/2/SyquIFPIA3TthY/DqFOG6Fz5CsH9ZQSIP+km24B6Nf5TWr/609gPUPZT1XIufv78YUT5eWH5+ms4XzvLV3qsbhFK41Kvw9Aw12Vmyghsr5fD53LmTl4gSDiCtRAMYqTgQSyYfr4zAb8cJipAiKJG6S6X642eaQ9K6mPnIei83CLF6UmvFEXeyXd3htrtYwxRVXbcC05VmTu/8c1rgY50EP7c8FERV9zeeskhyIIAgMlzla9ES633m4N6K5Agh1adDV3Pp/DwjQdHdt9fLTE5QfkCUzQIADMZvWmschVBzy+XYFWglD7YyPbL99eQBdQQWkAU+nh9Ts96UMUHis76MNJn8rJb1/ERB1i1EjLBOOHGorJ+UmtvGYLtlKHvTU54aVj/Ra/9uwc2LZVbWY7MMrqAc96qmA0m+NcnHSiNuYIHruYvbJiouj+Ta5IP68DshAmb7r/0OHPr7R4FmRzmFyweGO3LUiK0cZiImGtpSaXQuf1eh2eUnom3kQuA3oq+zdj/ooAP3RtsN+1qDtfU6DeHo+NNHq+UGjaPpSuA60rPGRcao6Veji2B2K3slf0JOrnl7NsZ51 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a1ba53d6-4f91-49e1-2348-08dbb94ac250 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2023 19:58:14.4507 (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: DU2P250MB0237 Subject: [FFmpeg-devel] [PATCH 25/42] avcodec/vp9: Join extradata buffer pools 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: 2UgMdNNrVNHN Up until now each thread had its own buffer pool for extradata buffers when using frame-threading. Each thread can have at most three references to extradata and in the long run, each thread's bufferpool seems to fill up with three entries. But given that at any given time there can be at most 2 + number of threads entries used (the oldest thread can have two references to preceding frames that are not currently decoded and each thread has its own current frame, but there can be no references to any other frames), this is wasteful. This commit therefore uses a single buffer pool that is synced across threads. Signed-off-by: Andreas Rheinhardt --- libavcodec/vp9.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c index 4acfca2b4f..dac81fd712 100644 --- a/libavcodec/vp9.c +++ b/libavcodec/vp9.c @@ -1845,6 +1845,8 @@ static int vp9_decode_update_thread_context(AVCodecContext *dst, const AVCodecCo return ret; } } + ff_refstruct_replace(&s->frame_extradata_pool, ssrc->frame_extradata_pool); + s->frame_extradata_pool_size = ssrc->frame_extradata_pool_size; s->s.h.invisible = ssrc->s.h.invisible; s->s.h.keyframe = ssrc->s.h.keyframe;