From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 5BBE747676 for ; Tue, 19 Sep 2023 19:57:39 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1E83468C92F; Tue, 19 Sep 2023 22:57:00 +0300 (EEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2100.outbound.protection.outlook.com [40.92.89.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6DE4568C872 for ; Tue, 19 Sep 2023 22:56:59 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hEdfElYnI9iKYFWdZQqtSStnewVj0OQlNStNmOkdMsidlYn9AxK6eNSdEBm2H9Fw6cNElQjnLMDh+9n/UEk5dTQSw0LsEpd0ZLvnLrJwghb0J7F0YRpbSiXI+TORz9B+OOy31b9xn6AJVaFCG6vO6yUiRYmoj4zA+Ivm63KNzs+76iaSSILZlLcan06o9vRp3VrjX8wdUJf8SQ8KEkaIij6xrE0iJo4Nz6/GW1Spq7tsBvmBGRbclXMsP//abYlpV+ueWps95qEWLkpr1roPR4c5gHnshG5qUbgx8fzo61JmJ5WpES84s+7HuOkSzAgiLyT2x6msVbO/Q0FOxM47GQ== 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=OPN0x/VVQoMmRfNM3/b+Xoe28kYsYQBW7LQktr2jTLw=; b=YURdBPYMw8mRG2zKY4fuPhQkCiJfIfC/nuZUGu9Px58XdtOs6c/STuk7SVHJR0XFN2qE9095PnHWYyMnPkLpp81rkxdXlC67dS1MkFnwhGvWxdBZp+oVbDjv+OAz6P0IQ9lL1MbdGi1Fi4BYuM00gxppzvhmXn+WAGY3qklNCFO8x0ihZvrFY/WUK+SR12MOVevh0/iinQ8fM3HiUlUaNwkmlt0GIJb5j9CmWLRYibz4xdBSGqR7G8GWXDHqkcvL9tKtv0aB9sCvtmyj8YegVk+PXyM7AdT3+ivZN2wAgtRohaTCgmy/oPm9GBB2oKv/E92RhpGGCpiea6BRRfA1Jg== 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=OPN0x/VVQoMmRfNM3/b+Xoe28kYsYQBW7LQktr2jTLw=; b=HOAWx/oaJQEmsWq0gQrWLPjydtGvyneiI3ZFO0ciMjuUrTaH3Jbm6l4/MI4XjOm11m2DMkD0dN6MVHL8Z/F2R3r9jEOwiqyRw0RoQabAph1zW/+mr5xcOIy8SxmbhWLq3jPu12dMv6sIu08QGL8NhM0rtj9PGgW0NYL7Ht9hMGypYTHY5QXQVlFsmcL0crdqBJoQwkwwd5NkOvGsRMZP2H1KYfChTgYWmK2CY7bsmT726tQuohvONZKnxcRXctl/+mpsS38J1p7yN4hHcg1TOAx8syRJr4PEEkaOtnV6A6MrMtqABLucrn2UOMOZRw5isYNyyoTRttRPZDaMJFdwkw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0215.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:326::22) 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:56:57 +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:56:57 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 19 Sep 2023 21:56:59 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [ULwRsIoC5Tbpt7RPmz1poKIrEC5yOOw3] 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-7-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0215:EE_ X-MS-Office365-Filtering-Correlation-Id: 3de4a902-6c43-4856-80e8-08dbb94a94c0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: He5sMbYcYYAj2UJSeoAJBMR9ELsWMfvub2kc8kaaaOrwjdVokMDfXKac54NIwWf3C0icf0PeUWFHcwbvL4fstux82IG9WxXfgIR60kQwahOWfpUPGYMcMEkeV70UfxOjQHd66CXFdei20bltvghWAKdjr69eJ6wy13Eg9JAi/SYYWcMdXnG4zEIU6fsdCpFEbaw/3svrhqKUIysEobMeZamCOqwVtR9wEsB8tToGe/NQo54WH6g903xC20bRiPRfCGAqHi8MnCIqVQdPZBi8ck3X/H8LAKFY3VpdMnHOwvlw4zH4NGTxAG0Rl7hPOtzsosuJNuB/4QbmcY6gk0VVyZiMKVXNcfKDwTNIxHCjvhYNf/b6HQbMpy0EKxm/+tzvLepMqJZyBJvuyoffYHeR04Oj+QjUVaTK5sLUn25aPfLNcE/aiWIJHEwrlsDvajRaQI1PYvWuspCTGz6P5DXUO88/gg6NAIelitcVqTDWflGZdnMsBzanAuD7R4CJlPoJ08GBAQ+FyUyCFKD46BPdkDkE7Qx0SIpuH2BgOCfE8iUAHpPgYutaNvpeKcosRErAN5TqfAvtlNIZNmxe1Hk0eh+8ay4Vb02kaCdM3FdchJlcmbcozOZJN+bBWT4wYOCa X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?aF4tpQlIykwiC8LcFd8+jMIY0QrrX0qXVQntYEAZvVcuyRFWrkzEDfew8c3o?= =?us-ascii?Q?0RRy7XqD3OdNoLmpNJuTOfBlQH5xMTCCRYALT2U/9RHceASTSFYdGv1IVB3a?= =?us-ascii?Q?WElmpHO575DRAXTvvthPywEn6dGPpfFNRAJO78bNxbanxOm8IGRjR0lnc8E9?= =?us-ascii?Q?lSVJhvlBmAk0Lte/xd8UvLof25K6NRU71bh6GsbZ88eKMVZFLy6azvXyVRTk?= =?us-ascii?Q?ZR2KDA0INxEIyrRXxEMGMRVlVp/a14QSAWvyQ8JNzVUvXinN1mSDBB7f1dcL?= =?us-ascii?Q?RFCAPPRWBhTQ+yI8rKObB+bnsAsZp9LvVvkTDqmlKxAb1a4cDiC1GUOAGjcl?= =?us-ascii?Q?Y5UgcZhU0GK+5T0e/aF1RY/qyjkWgwLlJMjBGgHzk5vBOanC/leHFL7qXpwb?= =?us-ascii?Q?9IYdVAbvMT7kYkcmKebcnFSzq5SbUjULDCnxWD00Yo2nAWjkWxY29T6m1i1j?= =?us-ascii?Q?kAyW1toAH+Bnd7DIH/7LNw58gSy3ZHKw3dNCWnQhgkmV5etlaCpoWXfcom8u?= =?us-ascii?Q?U1xcCifCMvRNaNPaTLe3zlimYPxs+V4MnDnk4m4ThGsSvJrjL8TVVs4mzTSK?= =?us-ascii?Q?4SmlXe1sXteBeftRVDNkX4aOhTsKq7kWTZFfZ6Rlz13GwhUmOKnLuhntuCn8?= =?us-ascii?Q?nzcqSCM06q+c+9ve2Kfo+ffPQJh1M10uWgC0EtneZZnvmRgoFCp65JIw+UaT?= =?us-ascii?Q?TalQ3D/TfoZOwBtrL9ypgraamCsOt6Q0vKpEUDSs8LJMHgH3UVYF+lYe2mh+?= =?us-ascii?Q?K7LAXDdPMZ5AiuD0I0Y6Oj5SUTTjmjhG7ogoqsS91NHb8EBsYDrUbQgA2qh4?= =?us-ascii?Q?ggTgHVOL4d+Hxat6iX1DrviNKLYKpU9TLoagEXg7tW0RnNq/2Hmq/mgyqegz?= =?us-ascii?Q?WWNoU7GLMegJZCEmkUF6GQRgY/46Rc7rHjbi8hfiWz2z8V+NVVkxtzYDWARh?= =?us-ascii?Q?ji4xHIbr/Cu7gRoTyGk841o3h1Y+wQHiFlegjgkJMiP6Eav4qUOwck/p3+ef?= =?us-ascii?Q?zfalco0WosOeewk4BOssoQwB5ccNV+/J5igmjP+lEf06kMHYcpp/riv/Q705?= =?us-ascii?Q?aW/ead6OpA3S+I508l4mip4qO4rGH51xkhgLV55MrpTYspdO7cwSYtuycmgq?= =?us-ascii?Q?LBcNzl3W2y9sClWGxjm1GH/IXdAgWePD3aoUeTMGhW2BxRdPIMFUebRq4zCQ?= =?us-ascii?Q?yRAoS0sA3KXkY6/4dXLlph9NIOVFZmO2Siry6eowujnpEFhP1tKryA61HXpo?= =?us-ascii?Q?6QTeLFYvmCRYh8DTIIqA?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3de4a902-6c43-4856-80e8-08dbb94a94c0 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:56:57.9551 (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: AM8P250MB0215 Subject: [FFmpeg-devel] [PATCH 07/42] avcodec/wavpack: Use RefStruct API for DSD context 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: It avoids allocations and the corresponding error checks. It also avoids indirections and casts. Signed-off-by: Andreas Rheinhardt --- libavcodec/wavpack.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c index 966f4b83db..97705c8854 100644 --- a/libavcodec/wavpack.c +++ b/libavcodec/wavpack.c @@ -28,6 +28,7 @@ #include "bytestream.h" #include "codec_internal.h" #include "get_bits.h" +#include "refstruct.h" #include "thread.h" #include "threadframe.h" #include "unary.h" @@ -110,8 +111,7 @@ typedef struct WavpackContext { ThreadFrame curr_frame, prev_frame; Modulation modulation; - AVBufferRef *dsd_ref; - DSDContext *dsdctx; + DSDContext *dsdctx; ///< RefStruct reference int dsd_channels; } WavpackContext; @@ -990,9 +990,8 @@ static int wv_dsd_reset(WavpackContext *s, int channels) { int i; - s->dsdctx = NULL; s->dsd_channels = 0; - av_buffer_unref(&s->dsd_ref); + ff_refstruct_unref(&s->dsdctx); if (!channels) return 0; @@ -1000,10 +999,9 @@ static int wv_dsd_reset(WavpackContext *s, int channels) if (channels > INT_MAX / sizeof(*s->dsdctx)) return AVERROR(EINVAL); - s->dsd_ref = av_buffer_allocz(channels * sizeof(*s->dsdctx)); - if (!s->dsd_ref) + s->dsdctx = ff_refstruct_allocz(channels * sizeof(*s->dsdctx)); + if (!s->dsdctx) return AVERROR(ENOMEM); - s->dsdctx = (DSDContext*)s->dsd_ref->data; s->dsd_channels = channels; for (i = 0; i < channels; i++) @@ -1028,15 +1026,8 @@ static int update_thread_context(AVCodecContext *dst, const AVCodecContext *src) return ret; } - fdst->dsdctx = NULL; - fdst->dsd_channels = 0; - ret = av_buffer_replace(&fdst->dsd_ref, fsrc->dsd_ref); - if (ret < 0) - return ret; - if (fsrc->dsd_ref) { - fdst->dsdctx = (DSDContext*)fdst->dsd_ref->data; - fdst->dsd_channels = fsrc->dsd_channels; - } + ff_refstruct_replace(&fdst->dsdctx, fsrc->dsdctx); + fdst->dsd_channels = fsrc->dsd_channels; return 0; } @@ -1076,7 +1067,7 @@ static av_cold int wavpack_decode_end(AVCodecContext *avctx) ff_thread_release_ext_buffer(avctx, &s->prev_frame); av_frame_free(&s->prev_frame.f); - av_buffer_unref(&s->dsd_ref); + ff_refstruct_unref(&s->dsdctx); return 0; } -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".