From patchwork Sat Sep 3 20:35:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37639 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:139a:b0:8f:1db5:eae2 with SMTP id w26csp1748116pzh; Sat, 3 Sep 2022 13:36:36 -0700 (PDT) X-Google-Smtp-Source: AA6agR6H1aaJCzdrqRCIWQIw4JMdtp8V36/xmvbXdZfuDgbJvQAmPjgCpkDOAG9fVCTcliM5jZkO X-Received: by 2002:a17:907:a068:b0:741:3cb1:9ffe with SMTP id ia8-20020a170907a06800b007413cb19ffemr25460427ejc.293.1662237396036; Sat, 03 Sep 2022 13:36:36 -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 l14-20020a1709062a8e00b0073d888f8c4fsi3979361eje.236.2022.09.03.13.36.35; Sat, 03 Sep 2022 13:36:36 -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=Mp2CPk55; 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 5C18268B779; Sat, 3 Sep 2022 23:36:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-oln040092065072.outbound.protection.outlook.com [40.92.65.72]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 543B068AAD7 for ; Sat, 3 Sep 2022 23:36:16 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QNq26KXdElFQm0s9D2IQM3fRLTKG5/VgLbWLmexOHI3lB4QkGdDX76m4j0D9zT95fyr9/53LSYh/gCcLjkkZF5ZxT8SerQd1w6o2GrUM6b7x7LL/C1+zPMTPQnYxvAR2PU1AcvfeQ+Eq/NhEJjUyI45pmu1qdPzBmY4G2vEccIeAvIMpnaqxK791t5De0nGcVNWXOkRbmO/waotWRvl0ASyHfOXePWF1oQ/S5/yQdQsFUiqoDvnXC5HqaNaWljSnalPmGI1tA1+qkmdtFrNUGJHfksLvXBqsIFApfOc1i/cslZ0Y4R9iCFoHAmCEUq4Louk5DyNbPFojn2xplykq6g== 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=BNsl8pKduoxM9sNjepQ3w7z6ekHTfI80aDf37ye940Y=; b=a32Itbpcmk7X9Xh4DaoJ3p4YNE9WveNQPo3CvE8alDuSy44lYgdLZw2wjNrd7lr6ITAJQR7nm+OTuA9Ng9/JdWCKM9wPRJpf+phdWNjvwwLdZztCuQhBbFwmc0JRmgyZ9VPnCG5EYHwt4FdqTlVjc/EKExipXgNcE1cO+ltfYM0wJqFMoq9spYUI4+Rnx/tKpcs6+S/Zs9if+C2fiqElZin1H8Qh1pwIIW0b6niWUIEMLEOvY3VPQUeXfOy8lp5xnI3pgTVUUIU1+lUq53lGJGaNTeVhFkq9fi9RxU/Oxv+udSAwSU6ZwqmL6dyhgTY+Kb/Xr5KdTKgRNUopWGS06w== 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=BNsl8pKduoxM9sNjepQ3w7z6ekHTfI80aDf37ye940Y=; b=Mp2CPk55750NoDHYOn/53VwY4Ar8HswjG1HVovK/vUxNtNZAPjr5m8wpqT8ASo4PlN3Pa414F8NMG16DEzhlVMxMjl5OKxU02YmA/4CKRNLqccdcwY4L+t2q0EIg5WIFe6QRUmEeboCiM0pgkQzXs2nZ72f51ULOTSy9Pm/SG7D9otUgRx5mpO1wKZzULhu1Qubt80T9CCeb8ixdED2cx5HOD+jlr9UzRtoR3k32PlDJzbhueBVJ/lfbu105ZwQTcFTvekc8XZ/jF3Qgs75UM40o3UnELVllORXSSwEif185xEpZmEy46H0sAfMi0Ow1WcW0tnOtnEgw3hHiVBKrNA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0241.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.12; Sat, 3 Sep 2022 20:36:05 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f85a:9a02:f8be:7c47]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f85a:9a02:f8be:7c47%2]) with mapi id 15.20.5588.010; Sat, 3 Sep 2022 20:36:05 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 3 Sep 2022 22:35:58 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [Cty6esNtoOS7jKRBj/KruqODfoIuxsxjyoT/dext9lw=] X-ClientProxiedBy: AM6P193CA0086.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:88::27) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20220903203559.1961353-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a4199803-cd8e-46b4-7614-08da8debecdc X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmpvZmz4TmgkoDzJrsVMX7C8AGcxckHTBrCRl76o3+JNv354bj1sd5y2EJJDUOGyZ+t8TloRhBn1XTrV/3g+g9e2n1k+79XlpopkLNCoxD2kH+n0ZarxJtZSFci5pH6nS/sZwp+OX8MFHQO5KX7m9BCbo5N8vDNk+iM3ySBh3CkfGv4vpRWAjg9rm8kQyGsDp0qD5tHEpM+5cDdOOxr0NdX7cwhgr1Od92VUNkmapRrRAur81WDeffLqFKxplKj7Sg23Y58SMUSVJdlf+7t3l6i0IDbbvHSMvlDYdAzE5/6IHu8iI7a9DR01WVoz/x58BhN2sVkGfBEArPE67Lk0HQT1+UhHEmbVeSWQ8X/ZeQOahFqnzRUE2ZxsVapl3/P8P3BQMGvMGbpX3u1S6BwAPe+U+P8r7RMo5Gz5t5YN9Ut/ZwatfJ0Hq8AlrRW4O9SUxKHhF3tdTyb19Eo5EPBH8qOCiq5NuDcgQNMLd+IR0e9gZaypIs1xcvU7uALIT5pjX0O3P19wrGZI0zmOdy+8WVhQaydQBWffdV1EVz/1zXTJLhMg/vLNCcD1G8WKYzBkZKZ92j0nj+jyAF+IjmFqVZnUDmoVQeVWmfAYCQoxi2D8mdBAEiYatw2t8EwGTiGWawmyanBQIzUnLSkyXqMoPYwvcPbTnvKvq0SsrwPXHwBnvbJe0x7qY9Z10jWwbiVDOejpEeppAUuqGnJjADI+0lvbr3aFOMlnIMLx8KxXc8JK91BjeREUpYsNHVDoZT2kLlA= X-MS-TrafficTypeDiagnostic: PR3P250MB0241:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DLXkgzOkRxkIzRPxDQdpOEXaDkvpD8R7cb6rpsgM6nDG5cP6vol4GEBQdwy22y70IQEVX6/Xjk0xibkJlrGm2O1XcQ9lKS61Wc3InCcckM3wGwFwpbaT28BLj6oEGhwhl4qpWsTWOiMuo1wVqb2KhAZ19K2fK3u/lP6XUrdqhbskdGNvtj2WeO1arLgYD4kfraZckAqaVpzeUDIyYzY+jP+P4M1uZJ6gATkSvVuGV1CdyiocxprbavfeZ/GJ24NWmdn2XLgfi0dpp10l9eyZrxQ+SbWGlWUuTxS1dS5lkz1EV19U1TRnMzQWhgdg1KJJsFO/J8EBEKz6+5K51THmXd87379eXhYqwRlLIECskBx1R8jEPCI0hj/LiTS3xmMBpEUhXdVgRH9nkcjUE9WxsCWvg6phh8f7bK59DOihCSequ2maL96+nHJIfNbrfrKPIMFISRGlfCLHzUpdS3xzSzf8EDoZc34DPCvOPikfiWDYSsht1zKKp/PokScf1/tHJDcfqyHh6dJC/15wkqJtJN7dIMC9tN4ttnLTq5BH+3w5F9SfJnUBkxd3MY8mCKejem/I7yrnQDA52P2mfGH/POT8/bHgxHIha+7g7bqCKSUdciFb15u+jMGty1edusd9qflLmwVtp5E/vkJdGyVwag== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ddOYmpsfBC+Uncasy0skmASLczkr7L5GVyqOk6UUnMZd/u0kx+QUFjCVWszD6g/0B9My0iI9eCPP9gbQUgKxyN3chSaBfVVwj/VG34jzaEub1k2El4GLuUuaeH/8zO3ROVmq7LsvZR2lz5DhkVFRo7tpkEc9z7GUeeOvgDZa3L1nAB5rWGBHiLuDHVaZfqJvvjTiAJ/EBFZ+FdBCnTYCjEnqin7qvNVA0bQXyr3SKREk65zI+s76TccOky8uWJgTHZI/1oV5SZK1Va02/MbYLvp0qX2J8unOpVE5r77i/wdWvMx/Dhre01KFr11ffSZvJ+ddobkB438lLPKNBIfTIQEXcXx2yPDiNlb8BWJAWB7nMqAlHyRZx+YaKsFMZk549IZZeeq0VHe0D4T8Gzphsjly7oaeC01qBjs01JbIa5EYk0jLTA0bY4xSsAHyCX8zpz3PJNCIZ/csPL36kRfoj+aKOYhmWQhKSn+QvX52ICFYXzRVj091nX5/Ke2iFtvQxjsJVoDvaruXx7ORg5wJnLGB1JQWIC/6gZmij1mK6QJw50XzwQTtbBNvsKDI4tsWPTQvsctkJ9NwlFiFI67Jd+4MbS5aAPeJOEaSyzvLqt19X9OrrKeEJN+5VmnZtu+pPR4193dXVKkWPQ0GZrOr++XWGxrgErSuO+YK1OQDXhBcU+FJwMLh56tPdCX24Hi5KHgWRCqyNc9NeqMp7ok+GqOXcqLooB0RQfg0EICi/cDXTKXvDN+7hUHZKL8FF6W1RIYSJecIjUqOhIPIVw3UyH35nkfanDAmR+qpoyDhrrQuJRIFe97FLr6Y1R9pEmLp6VuybFp1iFOAi5NUzaVAdAGxlJAxqchAGiJbguh+zSSMr6Hy6+WI9aIPD5axVZMk8RSrNulTAXJqR0Y5+Z8jP2AXfx/OUdajvL46VsowoVMn336V816LV9lpZSd2Eyg8S7/etOoyUE6N0P+hfvW0PFF+gi/i9MGTSJiyqAogcCq+XmF1vPzmicBdtVA1WNechZDzS2EQJGdeYOD6uXG6oxe0lciaFX0dfQHMedcV5NT0KLb/rrtRKkpwcxT/mM6t4lkPngPCRgAmpQsgDqBIJMWoUhqBOYrg6j6jqmQWfNODkuuDZsIDpyWONi/xMkY02aYL8wrDTnWm641dXuTLu41Feq8QkrDblRLK7UIxza/lIoG09u97G7V+idueMJhNPwcKJihTjLLm7eom7gjNxauCYYBZJBDO+RRqDeLlAvz1AE0pppdOqm+56XmhAyUpb0n56P6IETpukw7eYi0YpQ1oSlzTAOUIDT1HQStpNO4P6gj2V++jbu8tAx53FMbP X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4199803-cd8e-46b4-7614-08da8debecdc X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2022 20:36:05.8922 (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: PR3P250MB0241 Subject: [FFmpeg-devel] [PATCH 4/5] avcodec/cfhd, cfhddata: Free VLC as soon as it is not needed 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: epSyBKE4esBv The VLC is only used to initialize RL VLC. Signed-off-by: Andreas Rheinhardt --- libavcodec/cfhd.c | 3 --- libavcodec/cfhd.h | 4 ---- libavcodec/cfhddata.c | 17 ++++++++++------- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/libavcodec/cfhd.c b/libavcodec/cfhd.c index 90b3d0a850..c23eb069c6 100644 --- a/libavcodec/cfhd.c +++ b/libavcodec/cfhd.c @@ -1404,9 +1404,6 @@ static av_cold int cfhd_close(AVCodecContext *avctx) free_buffers(s); - ff_free_vlc(&s->vlc_9); - ff_free_vlc(&s->vlc_18); - return 0; } diff --git a/libavcodec/cfhd.h b/libavcodec/cfhd.h index 4c066da5fc..9b09c91262 100644 --- a/libavcodec/cfhd.h +++ b/libavcodec/cfhd.h @@ -26,7 +26,6 @@ #include "avcodec.h" #include "bytestream.h" #include "get_bits.h" -#include "vlc.h" #include "cfhddsp.h" enum CFHDParam { @@ -141,10 +140,7 @@ typedef struct CFHDContext { AVCodecContext *avctx; CFHD_RL_VLC_ELEM table_9_rl_vlc[2088]; - VLC vlc_9; - CFHD_RL_VLC_ELEM table_18_rl_vlc[4572]; - VLC vlc_18; int lut[2][256]; diff --git a/libavcodec/cfhddata.c b/libavcodec/cfhddata.c index 017eb9375c..efe932dc3b 100644 --- a/libavcodec/cfhddata.c +++ b/libavcodec/cfhddata.c @@ -23,6 +23,7 @@ #include "libavutil/attributes.h" #include "cfhd.h" +#include "vlc.h" #define NB_VLC_TABLE_9 (71 + 3) #define NB_VLC_TABLE_18 (263 + 1) @@ -126,11 +127,12 @@ static const CFHD_RL_ELEM table_18_vlc[NB_VLC_TABLE_18] = { static av_cold int cfhd_init_vlc(CFHD_RL_VLC_ELEM out[], unsigned out_size, const CFHD_RL_ELEM table_vlc[], unsigned table_size, - VLC *vlc, void *logctx) + void *logctx) { uint8_t new_cfhd_vlc_len[NB_VLC_TABLE_18 * 2]; uint16_t new_cfhd_vlc_run[NB_VLC_TABLE_18 * 2]; int16_t new_cfhd_vlc_level[NB_VLC_TABLE_18 * 2]; + VLC vlc; unsigned j; int ret; @@ -151,15 +153,15 @@ static av_cold int cfhd_init_vlc(CFHD_RL_VLC_ELEM out[], unsigned out_size, } } - ret = ff_init_vlc_from_lengths(vlc, VLC_BITS, j, new_cfhd_vlc_len, + ret = ff_init_vlc_from_lengths(&vlc, VLC_BITS, j, new_cfhd_vlc_len, 1, NULL, 0, 0, 0, 0, logctx); if (ret < 0) return ret; - av_assert0(vlc->table_size == out_size); + av_assert0(vlc.table_size == out_size); for (unsigned i = 0; i < out_size; i++) { - int code = vlc->table[i].sym; - int len = vlc->table[i].len; + int code = vlc.table[i].sym; + int len = vlc.table[i].len; int level, run; if (len < 0) { // more bits needed @@ -173,6 +175,7 @@ static av_cold int cfhd_init_vlc(CFHD_RL_VLC_ELEM out[], unsigned out_size, out[i].level = level; out[i].run = run; } + ff_free_vlc(&vlc); return 0; } @@ -184,13 +187,13 @@ av_cold int ff_cfhd_init_vlcs(CFHDContext *s) /* Table 9 */ ret = cfhd_init_vlc(s->table_9_rl_vlc, FF_ARRAY_ELEMS(s->table_9_rl_vlc), table_9_vlc, FF_ARRAY_ELEMS(table_9_vlc), - &s->vlc_9, s->avctx); + s->avctx); if (ret < 0) return ret; /* Table 18 */ ret = cfhd_init_vlc(s->table_18_rl_vlc, FF_ARRAY_ELEMS(s->table_18_rl_vlc), table_18_vlc, FF_ARRAY_ELEMS(table_18_vlc), - &s->vlc_18, s->avctx); + s->avctx); if (ret < 0) return ret; return 0;