From patchwork Thu Aug 4 17:31:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37131 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp533721pzb; Thu, 4 Aug 2022 10:32:19 -0700 (PDT) X-Google-Smtp-Source: AA6agR7QbVBX5TiHF4CFUAwh7c7fOG/3o+h/Y4DymzOSofIwrbYdz8xlRJN+1P4s5DyMZjlrAdRV X-Received: by 2002:a17:906:5d0b:b0:72f:b107:c09f with SMTP id g11-20020a1709065d0b00b0072fb107c09fmr2172967ejt.639.1659634339478; Thu, 04 Aug 2022 10:32:19 -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 g23-20020a17090670d700b00730ce22906asi1091796ejk.876.2022.08.04.10.32.18; Thu, 04 Aug 2022 10:32:19 -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=oJwywfnD; 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 647A968B9F3; Thu, 4 Aug 2022 20:32:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075046.outbound.protection.outlook.com [40.92.75.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3F0D668B9B1 for ; Thu, 4 Aug 2022 20:32:09 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VBflc53K3b1ki2DMgKo3rB+wfWyoCNVOjqFIGEClJGwWimT+3mtcAdTYRUY2Uz7Xez0O75tWdkAgo7LteC9S3oj2XjybCdKzE83SXJnWvRSOTI59SS/ySRnXQQ36JiG7UyvghkmgOjRuyEL3E+XwaxCIPu/jlkD8kx0z5TbnJdOETIkABWGP7KExNvsaFq9UJzFzsSyX9WOkGLd/D+QQj3mHZn6UMUGWXl2UkT62NCY9uZzVvkpmmBORCS7sVqnbF9uDOg10dw5ZalCWKO9bZJ1PBBLfZPKnIhcsgB/9SnDhXAcA+CHLBvq4ruP3vIihpzwJ3beQns4fYhGxqXHgXg== 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=HPZfFJKoZ5se7RnCo07lKangT6hoxnlC4GhiscAQvLo=; b=bbrdb3HLCIkIgkCkkFw6LcunbKzlcS298FmXfMMx8rX+coKV2Z3kIYJaZKLqpXIvYMzrfeXvTDOLag4DeoNC22QV+x2mZ5Wmzk6cPRPZBJPunobFiiHa5BuHZfLEWv56UJtL7wc3aNbgOIqDeJWDlDpm0LLl+LIHGrOvf0ObtW7qR+UCgePEz5YVb/o5TGGnNpR+QLe6u3SYNhY327qrozpPq9tdsUZPFmmGsff+4JhiiLmqyYYuuig8N7vRAdcl0NH47/1W2dhUJrR5oV8Om2Fv3YlF8w5z89qUiZLczsW2BeH8VAHaPZ99JvCTxOQBwYqatZgK+HzJlLwZgMhDJw== 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=HPZfFJKoZ5se7RnCo07lKangT6hoxnlC4GhiscAQvLo=; b=oJwywfnDoy1zfFyxluWZc3wN8KNcFDh5QK6/rthlLCVs3QeqvTkQk/A3Y5uHtXX0Oq48dJXB5vLMJ36417Y5KMCNxNBTK7q3Nn4F0ODwEus5qmoxnJQ/cwqH7aSzOXjALqX4KzaTfnW1SEkqMGVwYMVnmEWKr39hUeQelbTT9D8uJAWeB709BzIYdvj5C341mYyYivUYFWFY/8lqXHtBR5Gg2IcgJ7Dh+A7OQO4HNZXtOkrN62C/JrPfO2mk7Jyy68zmayndhymu4GxLwi6Dma+7YjiKWDmU1BbTMaDMFtwn2NWXKAJTyrnGSvs2gdMbszSwwuqi8j4HtdQLGWZ/Yw== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by AS8PR01MB7974.eurprd01.prod.exchangelabs.com (2603:10a6:20b:371::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.15; Thu, 4 Aug 2022 17:32:07 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5482.016; Thu, 4 Aug 2022 17:32:07 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Aug 2022 19:31:49 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [Wp5Sp0J44NznGxrBZRXxlSZ/+a8rDK+Z] X-ClientProxiedBy: AM5PR0201CA0017.eurprd02.prod.outlook.com (2603:10a6:203:3d::27) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220804173157.1561038-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 107cafdf-5dd0-449a-bc83-08da763f4108 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNVBLZe6CjjWHQcN+6fAcwmp0md/Z3KwYNqh3acAycMoGgh9Pq/yzsLfkO82NaaeP07KAMc6jK7N7H0AvWaBiMyH1/nZ/pidxAcj5DyDYReRZWQoiC66nsFeUZH/L1kkt9U2DRLvyDbod9f001Rqx5CS6U3Lnek1QruQQjp2AhtJ8VJlDhU1wLp6LEL1AP69H6gF0PuI1I/Zjnjiagk2+ukggJeBZpnYgBB0TY0KHa8eZTOKBTlu3ZGeL4vX4xeeDIm+8CwJqENgQYCkTMhC1ZjxMz9RaH7Bo43+tIXMX29xSSmlYBRzIwvx0SOHUXZAflKM2d9dFwSdjjI0n3xQpQFreTfPeZFV+2tDC6Is4mghRUCkshFhffq0Mw4fcesLt/dm4jc8BqBWlmQZYBfs7XwT10ATX4yn2XTCMEkPrO44oXbxP7HZSD4N+G2+dhX4vA8aZ/IcqiCCVWpxJbp6p7ZnKpGVGQDdHD0rTZwxSwyzPkho3SX0A8b6MSqRVKAG51M5JQba59IAGz5MOAXQ1s7b3VECtSO/pVPq995EHXswUZLAr2LzU6r1iNgamm58yuEOKW3F7UgPQiMSq9awSfoR1DEqB0zZoJvhkVcCplnBMAnVrPkMuSl2/VjJTgfnAupn9OKyzC1XogzwQ2XW09t9dHJmx4NbK6wUdRLCf3phANT9Tub0me87zv/qMTr++mLw59cRRAldfOfwJmGVPySntsCmm79SKiM= X-MS-TrafficTypeDiagnostic: AS8PR01MB7974:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kELz0TI3geFjmNDkbvSk2AIdTY9o3XHbtxFUIbWHK3pCofyR4ti3vSouWFkWR7BSXs8T6GlLfPVDUxNvShJVLYhs/zEJzMidn5tH4tnnaNbrW0q3KThqJqIblTYjjCF/AB496tqLee+KcWzj0/CRFnNTr3aZSuDmUzFHBZ5STRi14pCml/dEp/4hzSV9n+AwNGPT6TSjE1on9KuCzZEfWqHZrJhYSMCWwIccAqOukVWYY8uRHHQ4DQ0rhcAeE5tW3SkXWPKG4H/nFC6NWzcytCFSDqLaeEuD0WaQWg7zYwCk6I7YL2A6wWx7DqOJZvsXY+jZiO1BVVC2tnZoVORp4a3qoHcD6oT09vIXR/SPG5kytPE50rUXtkUxsmBQbN5ipAlMLB/2v+FAPiM2AIvThSsQaZx50DOoT4MLJEFcFFusIwO2DBmKYf7BgnAbW4KW88P1kMEUb3sqFCVyF3BUy8k0OjATFAWRQ6TdnQAURc4FDtESM01Ke9IVja3BMltMfd7GsGxAEBbEFY07Jz53bm8yosm60ioNYqdxbU5otEsAGLU1xpkTwqIibJZAPz3k8BoZoLcyy00CRcK2CeaT723dkkUDyFsy/huUcCR071xX7/32NP1186bJkwFwM+EO01DpBGyC2r8AeqLHrxaVZQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: lzGTKAE0iH9dskaGJwWN/gq9SxTaOxLISx2ACXvR/HamcBXkeYLemt8z+IbZIqWIvcHyY05fITwUWAPMkatAWnjo8zw3zWPOxWUGSiDWM5C+cAZLrsfuJL2VQ/S+wOP7Dh3cBq8MdKy4r65FI+Qvf81WtQmUg+B6PPkn+NLoC9f3b++8b36la6K8/MMl/N6Ab6m6MsaE8P0n2V87hPV+6l1AbY/SM+TT4m+eHfQBwVJPUElkehhn0wemLrMMrI1yJa0mmg1yKxkQhLv/RXXBdxagYi/AvDRrGiz+ov3f3CKzRXq81hObY7BzSUYq0CzIXPF8Bjai2pRhz221jM4fKVq0XT1YpZ5KXmItdkHIKwjXtcxUGKz3/m87LIDxd8F0HRiraw3gXDEu5Y6zcToXtk08rGLJIgBRWL40mxKlfeF2+ncX3SlaX83JAfdbBlZjiJHtQtSFO8O3MniDw2RhjMzHF8oBwrPOW2tvG5owTKUz7dY/AIwbtiDP4A0o8XekOHc8RC/KPsdl7EKZConeUb4JB4Ir3ZMHLe2Kwt1RGegYp0JAOKyPfbgWHjKNgC2TY7Dyb5VknpMsSPsqTFinV1pBpnW40QRNovUVlKeNS5oUTdbUfd7CmL2WfyvAusVrfARDC5RR6DWEUWnascdBTGfp/UCh9jUAwCFINWGj7Hgb5RgEr6bxZCeONmVR/5NxC4hOLhnT8uR5pZb3Czn07ShdoyJsuIG+8YAvy78U/znRzK4nfmYTvALyrwR4OEHscxmYCOQ3vfdOIdC8WSG3Ou3B44080/xg2Oi8lxeH36EIPOLqcc96curJmZiKt/peSXiRgw9JN1B9JO/1uVyUqBwB3njvVM2NLV+MpU01wvWgHehTlpbrjwtjLrz3XK+1FUyJY2IhXpql+VZXSEvmIuHrDDBkvkBVWIiyyIRMUy9CUv4Pe1yLKUz0FnZj2avjDA8crwtF9Ft3UEWElpjasYWX6fQJibq+eW8bT4kTdT3tMKR76L0q/0I+oG6TDET8Tbx6fZ71JneNXuVqXLOHn7X78F2+uX/0hie2BzPgTkKIuYhIGLDhKOBShmdLc1OiX6X3sL+xxcXjvg9St8r7/qpBHJ3Gl95qptVRInaZmuXsgfhA/y4K8Vb6etrrp5x9kBaSDGl7crYYMB8GuEtezr17BOuFLDE6x4Oukn0tq2dZvi9azxUe1ayE8A4VcVdTdSTG3OLe3ar0tCLceH1YNalCBejnUjxWfzbKUma5Th+y3jjdhNKPxG73MGTAAojG0ElpVir+bUdvHg96E59RptAuFr0ygtfyHLR8YqfpqTM= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 107cafdf-5dd0-449a-bc83-08da763f4108 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2022 17:32:07.5423 (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: AS8PR01MB7974 Subject: [FFmpeg-devel] [PATCH 1/9] avcodec/error_resilience: Avoid overhead of AVBuffer API 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: gq3UOrhSh/wS These buffers are not shared in any way. Signed-off-by: Andreas Rheinhardt --- libavcodec/error_resilience.c | 18 +++++++++--------- libavcodec/error_resilience.h | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c index f957c68d2c..2aa6f1d864 100644 --- a/libavcodec/error_resilience.c +++ b/libavcodec/error_resilience.c @@ -946,17 +946,17 @@ void ff_er_frame_end(ERContext *s) av_log(s->avctx, AV_LOG_ERROR, "Warning MVs not available\n"); for (i = 0; i < 2; i++) { - s->ref_index_buf[i] = av_buffer_allocz(s->mb_stride * s->mb_height * 4 * sizeof(uint8_t)); - s->motion_val_buf[i] = av_buffer_allocz((size + 4) * 2 * sizeof(uint16_t)); - if (!s->ref_index_buf[i] || !s->motion_val_buf[i]) + s->ref_index[i] = av_calloc(s->mb_stride * s->mb_height, 4 * sizeof(uint8_t)); + s->motion_val_base[i] = av_calloc(size + 4, 2 * sizeof(uint16_t)); + if (!s->ref_index[i] || !s->motion_val_base[i]) break; - s->cur_pic.ref_index[i] = s->ref_index_buf[i]->data; - s->cur_pic.motion_val[i] = (int16_t (*)[2])s->motion_val_buf[i]->data + 4; + s->cur_pic.ref_index[i] = s->ref_index[i]; + s->cur_pic.motion_val[i] = s->motion_val_base[i] + 4; } if (i < 2) { for (i = 0; i < 2; i++) { - av_buffer_unref(&s->ref_index_buf[i]); - av_buffer_unref(&s->motion_val_buf[i]); + av_freep(&s->ref_index[i]); + av_freep(&s->motion_val_base[i]); s->cur_pic.ref_index[i] = NULL; s->cur_pic.motion_val[i] = NULL; } @@ -1343,8 +1343,8 @@ void ff_er_frame_end(ERContext *s) } for (i = 0; i < 2; i++) { - av_buffer_unref(&s->ref_index_buf[i]); - av_buffer_unref(&s->motion_val_buf[i]); + av_freep(&s->ref_index[i]); + av_freep(&s->motion_val_base[i]); s->cur_pic.ref_index[i] = NULL; s->cur_pic.motion_val[i] = NULL; } diff --git a/libavcodec/error_resilience.h b/libavcodec/error_resilience.h index 53e5cf2621..47cc8a4fc6 100644 --- a/libavcodec/error_resilience.h +++ b/libavcodec/error_resilience.h @@ -75,8 +75,8 @@ typedef struct ERContext { ERPicture last_pic; ERPicture next_pic; - AVBufferRef *ref_index_buf[2]; - AVBufferRef *motion_val_buf[2]; + int8_t *ref_index[2]; + int16_t (*motion_val_base[2])[2]; uint16_t pp_time; uint16_t pb_time;