From patchwork Wed Jan 5 21:56:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33104 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1111735iog; Wed, 5 Jan 2022 13:57:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJwFap1sVh4dEZ5MHJ3UR+miC0Ah6xpS00fTCme3S3a2buME6XUYlCnMR6EkHmzMZp/97WLs X-Received: by 2002:a17:906:4788:: with SMTP id cw8mr46889516ejc.232.1641419823696; Wed, 05 Jan 2022 13:57:03 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f23si77435edv.198.2022.01.05.13.57.03; Wed, 05 Jan 2022 13:57:03 -0800 (PST) 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=sG4A5Oz+; 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 E6BFF68AEC1; Wed, 5 Jan 2022 23:56:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075019.outbound.protection.outlook.com [40.92.75.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AE54768AE25 for ; Wed, 5 Jan 2022 23:56:38 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gDalflmBoWWmcNnnNOaGRyw0TlntqJnjl1CZBpEqhOPfimmOmstS+VBOJfkC7AavnZU9CczKE/Fhf6Nv+hzEpyIH+CdhLxBlh7x/MhUsyq6DZLumABBt8gKwadxJu3OXx6whMw0WwROvU8islJQQvC9MaCQazEdLVEfCqiIugoa+m0f+saCzPbGslLj2cru7kF61iIwttawqewzh3WvxrK4VDY9qcISBMoC0HF8Gwcv/EYzh48odcL14hfPBF6s5WQynX+stphzo2HABuB6abAdLwvJgs+6IEBcOUJipqosSemj2GGZdWfqt50n3/ENiEms/B2x2i9gsHv/s/OY1gQ== 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=FuzA62OY8He9ouPDybaXgw1mS+Biyd+VyZrj2A/t7aM=; b=eJTIlpgt8AO0xnzEjUoiU0YUL+kx8ZvaQTMbMz3h2pWepAU0AfjaKYEkI52+FQDvErYfkmgw35g7+VA9XtOX8ioumjr354cfXRp/hIuzt+U5jS6AKFtf+GF5n69In9qRdqhH/1jtz2Ohb4sTW/PFubWwbj1+cEyHC75aIZvPWYW2c0k9MHkCFxWh5drvZcpPAChkMle1OMjFyGGIAEgl7xRciival72Y5wkpg/+0F7PlAXPhZqAZMxcaC7PzJnqM5QaSllAKn66Xjz2hsLK85L9QgjKeb1AxAbPGVuo82zECBFofHp7lgJ1Ub4Ey2f0b9xYgC1cqBUorBbXgQAqazw== 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=FuzA62OY8He9ouPDybaXgw1mS+Biyd+VyZrj2A/t7aM=; b=sG4A5Oz+l9fHcZdRHeHT1rDICwPjyDrUIfViIfy2MObXwNQyykznMWJdsgrr82A+T1nECL6ZoAcCmCK9CT7aTkV4ktN+G82xkSU0Fk9zGQAiHWa0Z/0vy/vHk5aJQAkq5zHnJqKlKwn/6MvgC4k9tsOdKqtAQdugshTivnE++H+7PEudolMX2AB4JPsmGxmUsZCAU9vDTQQxrD1Zc+/E1tglBV4EaBY8jpqihvXW82kD9hgTDDyAyofZNLrkDv2sOWRZzFW9mFVLjW4igki8dneCpPTXU06j7BHjbcw5tcrcLj8jsdUiuLTtyiP8i+qBmIBj869buxZ1uDJwZEZFYg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6450.eurprd03.prod.outlook.com (2603:10a6:20b:1b2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7; Wed, 5 Jan 2022 21:56:26 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4867.009; Wed, 5 Jan 2022 21:56:26 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Jan 2022 22:56:07 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [t9aQQd6M3TxcWa+FtqEQsz4/AavxpLrT] X-ClientProxiedBy: AM0PR02CA0183.eurprd02.prod.outlook.com (2603:10a6:20b:28e::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220105215610.813119-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4c55bde6-448a-4c46-6cc3-08d9d09638c3 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR3EehW4kxQzdNcP2D/mG1JbcgRddooVCvwqRIq3w3UD3ko9lYT+VIjzAThYMwYGYAMaDMFBAeB+OjgxkE8EIdEP7iK/Pn3hUkgy0SrH4fy09vOOhKLPNrQmwO0bNG+c6TnGFu10jTpnFMJFgqJtC2E1/ib+R7geNQtc8ZQcdkM/zNA+OND5Ez8J5RdvlNmO4lNSsivRZMJk5S74jt5MzP8ZQ1XxhDd21Yz97eNqSVu00ZmkKBP6+vNILPn/OHGRKygdxryYdepVC5KQOiPRPDiq4KUMQHQA8d6NroL7htr3U59bgObK0k7bCL+6AwDMxVUqIEG1nGtA4nAhzlQc3X6BVpbsNYuLH1kaKZQLkyHTW8Vmnk/bJqEVpRndsIiLI+FNxfJu4prBeOJVlEL2iA7HoJuKXL8NlTI2PeRu4KctAfo38uU0DrD0YlFGn83QIO3sgGmhMuSb0mlG8939+KuswnCCl/G3bOET5GqbFHlySBI9dsmDin1RhRnEDx9w7F12QUfeAVatoiUMx1X3N1iXgr52DAIbj+tkbV1lHaBPObaY5HMdZDqnS3BIgeL5q2UWgzGZLkWNTL4yGQgkeTaiDfcF8c8UPgWno00aCkr77lG5TLg0IqcYzPdVJK+8yMOCZ2exGtK6QcFY+Wi9U8p+d7sx1QODGvdzVRoA9pTGf82BD7sxnGhBi4HsGBnyAl3R/P21fXUyuWSi8IaNLMlQtmMuL+10e/Tu3YblFr9HsGO7XE1Pn4cJTlC57B0T6M= X-MS-TrafficTypeDiagnostic: AM7PR03MB6450:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: n1TpLIvS4sBmgYUasL4Rlfk/hDDpV+6bPGBE4EzkSshh9TEHmERts+jxoFce2WEo1VccNrXE0fc9zIWX5YwbCQxj5ooeA4uazRu/q56NRBbkthIo7n+fjsbdWakTVrifRabELOoQTtm/Z3dmunKlGVNfv535Kwl9hehbO56E1ETuQypz/r7Fa6LOslbScTjgpxl4Pd9qoNRmvLauD0zJQDOfl6rt37xNcY4H1YJVZv3YKJ30gfCeTJ6cvbKJzP/dW77OTE39Va8oLYbmwBjdZi2lYKqgpzzJ8tDDC93mHqDAhHiw/QCN2FiQ5qgE2H52cA+I11wYi9Q6sOHt0YeSQ/JTtEXU9viLCwvTawMzhVU5Gkuu1LfCXzc4BfFQeaKwxWP9Dn6G+xiBpdKsGcKMsRqYnptPeyJxGdhAYnIBOGIHCpft8OwuTEFy2G26mMf0vvOmK2O++RcdJ6HCzR9Q3fubXVDQbHVyaM09AnNOTpXNdtHcZDfjrP+RuZ6a2Pflirklx+D5PnR9OyoW/xghX+NC03M4aSs+COjMu+bFaaHalmJJfdfhWDjqtqbDveDrNFX/0xJkWr28MZSIuHSTlw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NeyXeJWcZiOOt/sPGreiLj+8VRL4R9ZThtMuXstwVC4FEbpss1k1K8l4JYhlOQUqmTZ7pa7fbqx4Je29mNjGeEPeGoqZpQhftbLDQT2U1k54hHCHeqCRNJMF/5aKk7MfgOSNXDf6wWC4+UhUzQIBdEyVGbBxQaKMLYqjOh7qGne7htlDhWKuTi6/NPGzY5zlmuf35ltjqRPm8MJtsepGNeeQTNcA85heVsAcfAKpa0u8CcWkSXhpgTkj/8U50atfcPytGuvrEAUHGx8U24U8FdNUaAgXlV7FfCc69zDZBFzGOLSAXnTq55ka4MzIRcHdvPwjni9ZLhczJ8VWjxHFhBRMk+lSVNNVy/SabeBrUNowwJ3R4UdQH1k1irym2MPMQX6WhSiVeG2C+CNgecEQg+YUSopfBgsq7qPaQEpoDhTzwRWvRPicOqQdW5JDpN6oh3vv9NEI+FyWALkgVrYA0VdaGhwlcfQqOsJTvegjgprZyMXPUIgR2L4t4x5XA4HKzLyetXbd9fqFY22uLA1szMs2mbVeLZKrXwCk4oeX3uWognkX1S/w1X9I3+NSyZ9sH6jStre5IovoFvQC4fkUGlMOtIVFGYfRHoCEngOOa4Bd2ZEi+eoNqWEduG37Q2FT9u8iEeFw91DYrcqICuutipGpKQ10AqXHFhy1iZoQdeC4e7lMShQBOUhvqJ4cS7YFhYUFnPOzcBvCbkFhVEiB4ZOvdq54bGP49oy3rDQnnsbxnwX2RaqA+xkbM6iBGQelWwUVKNbkIEGXhG4VXlJ73VdNvJNBRnvqRPmLyv0wC9L6HTJBoXT+fxE1S5Lbl39nWsGVXpt1cFHaO4Q2UviDZs6v+CZU/brjbjC+j49L/zrFhiGgoI21lZ76qw4hFBf51xOS101zyWTehAWMk37Vsx2UnZGiWQkXCoQkfvBY2QrtfsEqKGz5bGMgb40U2HR6quJ9mywPgYaJ7PtxxRws+A== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c55bde6-448a-4c46-6cc3-08d9d09638c3 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 21:56:26.7826 (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: AM7PR03MB6450 Subject: [FFmpeg-devel] [PATCH 07/10] avcodec/rl: Don't pretend ff_rl_init() initializes a RLTable twice 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: oy3BAox16BEi It can't any longer, because all users of ff_rl_init() are now behind ff_thread_once() or the global codec lock. Therefore the check for whether the RLTable is already initialized can be removed; as can the stack buffers that existed to make sure that nothing is ever set to a value different from its final value. Similarly, it is not necessary to check whether the VLCs associated with the RLTable are already initialized (they aren't). Signed-off-by: Andreas Rheinhardt --- libavcodec/rl.c | 20 ++++++-------------- libavcodec/rl.h | 9 +++------ 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/libavcodec/rl.c b/libavcodec/rl.c index fab96d63a1..4ce003ccf4 100644 --- a/libavcodec/rl.c +++ b/libavcodec/rl.c @@ -27,16 +27,13 @@ av_cold void ff_rl_init(RLTable *rl, uint8_t static_store[2][2 * MAX_RUN + MAX_LEVEL + 3]) { - int8_t max_level[MAX_RUN + 1], max_run[MAX_LEVEL + 1]; - uint8_t index_run[MAX_RUN + 1]; int last, run, level, start, end, i; - /* If rl->max_level[0] is set, this RLTable has already been initialized */ - if (rl->max_level[0]) - return; - /* compute max_level[], max_run[] and index_run[] */ for (last = 0; last < 2; last++) { + int8_t *max_level = static_store[last]; + int8_t *max_run = static_store[last] + MAX_RUN + 1; + uint8_t *index_run = static_store[last] + MAX_RUN + 1 + MAX_LEVEL + 1; if (last == 0) { start = 0; end = rl->last; @@ -45,8 +42,6 @@ av_cold void ff_rl_init(RLTable *rl, end = rl->n; } - memset(max_level, 0, MAX_RUN + 1); - memset(max_run, 0, MAX_LEVEL + 1); memset(index_run, rl->n, MAX_RUN + 1); for (i = start; i < end; i++) { run = rl->table_run[i]; @@ -58,12 +53,9 @@ av_cold void ff_rl_init(RLTable *rl, if (run > max_run[level]) max_run[level] = run; } - rl->max_level[last] = static_store[last]; - memcpy(rl->max_level[last], max_level, MAX_RUN + 1); - rl->max_run[last] = static_store[last] + MAX_RUN + 1; - memcpy(rl->max_run[last], max_run, MAX_LEVEL + 1); - rl->index_run[last] = static_store[last] + MAX_RUN + MAX_LEVEL + 2; - memcpy(rl->index_run[last], index_run, MAX_RUN + 1); + rl->max_level[last] = max_level; + rl->max_run[last] = max_run; + rl->index_run[last] = index_run; } } diff --git a/libavcodec/rl.h b/libavcodec/rl.h index 5aae698e31..07e3da5003 100644 --- a/libavcodec/rl.h +++ b/libavcodec/rl.h @@ -72,15 +72,12 @@ void ff_rl_init_vlc(RLTable *rl, unsigned static_size); #define INIT_VLC_RL(rl, static_size)\ {\ - int q;\ static RL_VLC_ELEM rl_vlc_table[32][static_size];\ \ - if(!rl.rl_vlc[0]){\ - for(q=0; q<32; q++)\ - rl.rl_vlc[q]= rl_vlc_table[q];\ + for (int q = 0; q < 32; q++) \ + rl.rl_vlc[q] = rl_vlc_table[q]; \ \ - ff_rl_init_vlc(&rl, static_size);\ - }\ + ff_rl_init_vlc(&rl, static_size); \ } #define INIT_FIRST_VLC_RL(rl, static_size) \