From patchwork Fri May 7 06:46:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27643 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp273800iof; Thu, 6 May 2021 23:48:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxwaKYV0bo1YUslzpcUmegCUUvFOdKl1tGHETmP/36lpkoRBWw1b0D5cs9jXBORfIFi2sk3 X-Received: by 2002:aa7:c789:: with SMTP id n9mr9696276eds.352.1620370122090; Thu, 06 May 2021 23:48: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 v3si4103808edw.61.2021.05.06.23.48.41; Thu, 06 May 2021 23:48: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=t1M5+UtK; 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 39145680946; Fri, 7 May 2021 09:47:24 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-oln040092068081.outbound.protection.outlook.com [40.92.68.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9BCA9680A25 for ; Fri, 7 May 2021 09:47:18 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l8vW2uUx+YT7PA/iZVfma6Sx4BSEdrBw3KSa5/KyFJClhGTCTh0mS9tOzg4Jv596coFgM48JQ919wdH1sUN8Hhy2nI8iGgX+z8ed7Velk+aO8nqBcGZWS/pGTNrYTiVWLaOLOtfp1YTMs29ErNqIciHlGIyl21C7Ud84vTqakjGEhBVN1Z6ZBDd2UvTz3IYY8f35EMGADxoxnwUsowKOlSF9o7vUVHRwxN7MaK4Ih2u/PJAM3AncXar5Pj/+fIVON0g90CLrxIolYci0TXDt0qiZqxhdTMEc4yamV7xP3HApNIbqKEg8qMSq8iBMmqKegeqOVEcZjjdoP7gH4MW46w== 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-SenderADCheck; bh=Y4H91e6FoFAwXdT6pCJRf5qk012oqtyWB/cfpJo/mac=; b=H5V+ZjH6LuEXN/xiLRLV3u4SKhuQm3j+XSCwFLm9u7CJjyyNxYC8LNKBxqs+PFarPV7I5aiUW2sAKbd51BzS45stFIwf2dNqc5JrQrsaZxT9gMxZ0Ag5jZS/Q57ld0L+qq5RgdKt4L8NedGDGUDnuWzvegwunemsO7HAaaZAiAMWNHJkzR5F7PYTlrx0jIeXpjOwInPKWTOi5h8AR8u3ZIh9NHRCWbHrOIfH1OGoKR5biQ6ihhP1R9Xe/c6Z6hZk2zogOwyhzUJF5MakKcmaiWy3M1iHMNOh67Qt1E4M3Xo2lhUlipzkQc71ELPfkr1Pu2he4fBenQDXEFN5guSSWg== 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=Y4H91e6FoFAwXdT6pCJRf5qk012oqtyWB/cfpJo/mac=; b=t1M5+UtKvl3VcU8+4ULD1WsPDItaMMHR0tgkEf6aRDHxYbnjACZx7fqLtG9DBTYmNSTQbs2XwWth0jZoad+Mll7bbHSxw9ZikIdlgMGQ6XmxwRZA+vjvYLbfCKwRytPKm0BG1uwy3uhPAGMwI7gUmMSeo5PaF4RJ6lYDOt7mpsAc7ii5iuBfunhSI/W9YC5AedMka7N+kS0LlfbsBLOjSr7Te5LfrqbpIFocwffUwHf7q+68ofY0pJqqItCAdKF6asMWpMFk6aGyk1IpSrc3u/wxRpoojH6OubpSv2c0wrOmHhOzSVSYYawxM/JeMN4wN6hi4O6py2vg897U/ZQs6A== Received: from HE1EUR02FT024.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1d::41) by HE1EUR02HT088.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1d::407) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25; Fri, 7 May 2021 06:47:18 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e1d::52) by HE1EUR02FT024.mail.protection.outlook.com (2a01:111:e400:7e1d::181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25 via Frontend Transport; Fri, 7 May 2021 06:47:18 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:1E9BE6C7F86C5EDEED194EFBC67362381CAD7FB178533A64A15464A4E8ED1D98; UpperCasedChecksum:4560A97D7F7F37D9583CEDC92A70AF2BA0B978EC20699B21C9DDADC8FA7CD9A1; SizeAsReceived:7600; Count:48 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::45bb:c44f:2b75:23b7]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::45bb:c44f:2b75:23b7%5]) with mapi id 15.20.4108.027; Fri, 7 May 2021 06:47:18 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 7 May 2021 08:46:41 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [nsTQTIYCwH7qmDyKv81I71wNl3AcZWonDryCzrfJw/w=] X-ClientProxiedBy: AM0PR06CA0117.eurprd06.prod.outlook.com (2603:10a6:208:ab::22) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210507064647.362502-13-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.193.170.150) by AM0PR06CA0117.eurprd06.prod.outlook.com (2603:10a6:208:ab::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25 via Frontend Transport; Fri, 7 May 2021 06:47:17 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 3f23f433-25f5-42c6-380f-08d91123f4be X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNWUr2JHLiAqcgwWwb6KluLHcaioXj2CBaPu7JLJyotgC+Qsgk5iLv+k8U/Bpm2YEbGA2QE7JVxYygUODajTA3Kv0sjLLA2sjoWskwBTvY9bO8it2xADoEPkYJiAhvztVR5WBHolWZEUQZyDtGKPXSJcOMj1Dh5oJ1XZhPG5zXguA/d0dLL3NjKu7S+gTg3N3STTz58WGcM8NVqU8haan3S2oiAQMRGQjFvMZ2TYDHStMzkOc8da953mObi1nemJVzf6i1zAJJ/aU6SvY99TlRWb8lAWGEXHydZSjEm8k9trlK3chqZgfkv+mkOqck488S9ciewhary9Ku7kg5zkXBWtMtzjnLOB/ecygs6Too7wDW5RGeMOGVqDMLZVYGauVTfW2PFeijwaR8QDjo7vcLFR+RlXgTnOuQXfwoDdhpY9+4t+a9oILHJioqZTo+46g9q2pcWa7MsNRlb2cEYr2+xzSE7X9vVzUIvvH9q5i95f/W3+2pHOPPzgHnJXX266x0JyVuVkQpyOX7jzncV+AMSXxz3kPlhP1whaI4p6EN4VBdGEGIsWRapczZaqdOv341F6E3kO0CUkMDdipfjfwtoJT5iisGyeO1XFELAiGzy/Td4GpVyMvjdxBiOKoJMm3vlLPLieKSa1BA/GVXIiagSUzHdXtG4evgaJpLdaA+Ohrg409fONDRgagNkhPfxWApr6mMfrIPM0Pen9JzQ6gTVTENQN9NZ3dsM= X-MS-TrafficTypeDiagnostic: HE1EUR02HT088: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JmTxA7aQpn0vqoMIuArBtZpoL98FSAgRy9PDp7uciBQfwUR1pi+5fcI4Il/Othoek7wZJYv7N2zu8gIUfeXojga4p/Pv38DGAQ4IDGx/6X1zjj6GI4vIMdO6SNhJ9wF2ydEwgaqVjNoCANEhJRZTiU1340O1vB1EFTDmvqE6hchok9hdlLpcWyqa1reYF1CHUCF72M2GsR57Q3gzki3R3FhVBwDw2cg5GglQNzGNDr+x/EGv3kQBHGoiy+WBT1ff3vV/vGyYVIUv0U6xz1JvFlSZ1PAZeEqUK624EIIIAQOfQ/zpHXqIGJKAYMIHq+19HjKwoAqAkgP4SxmVfqHVWfGdl4pORl1wdBqwd622l5nI8cQEHYPfjat5fyI7H+Q/jRWNsl0cL7jQJ1RxOpXL6Q== X-MS-Exchange-AntiSpam-MessageData: NmoCgFiUF7pXXoBVxiTiSEIPUgG7R9ArKwRwE9WO+Nz/H/vp2P6N3eoqnhTQmsYq+cJpZxF4yRCpXOaT1yRwVJkbFIS3wtUxycq7KrRjHirE9FqECiIiK0xCV/+tqdQBZUjHtOUuHFtgOG2ZUqAJFw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3f23f433-25f5-42c6-380f-08d91123f4be X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2021 06:47:17.9569 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: HE1EUR02FT024.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1EUR02HT088 Subject: [FFmpeg-devel] [PATCH 14/20] avcodec/j2kenc: Make encoder init-threadsafe 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: FM/w4IJW2XbJ Signed-off-by: Andreas Rheinhardt --- libavcodec/j2kenc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavcodec/j2kenc.c b/libavcodec/j2kenc.c index 17eb959d73..82ad3284b5 100644 --- a/libavcodec/j2kenc.c +++ b/libavcodec/j2kenc.c @@ -74,6 +74,7 @@ #include "libavutil/opt.h" #include "libavutil/intreadwrite.h" #include "libavutil/avstring.h" +#include "libavutil/thread.h" #define NMSEDEC_BITS 7 #define NMSEDEC_FRACBITS (NMSEDEC_BITS-1) @@ -591,6 +592,7 @@ static void init_luts(void) lut_nmsedec_ref0[i] = FFMAX(((i * i - (i << NMSEDEC_BITS) + (1 << 2 * NMSEDEC_FRACBITS) + (1 << (NMSEDEC_FRACBITS - 1))) & mask) << 1, 0); } + ff_jpeg2000_init_tier1_luts(); } /* tier-1 routines */ @@ -1713,6 +1715,7 @@ static int parse_layer_rates(Jpeg2000EncoderContext *s) static av_cold int j2kenc_init(AVCodecContext *avctx) { + static AVOnce init_static_once = AV_ONCE_INIT; int i, ret; Jpeg2000EncoderContext *s = avctx->priv_data; Jpeg2000CodingStyle *codsty = &s->codsty; @@ -1779,8 +1782,7 @@ static av_cold int j2kenc_init(AVCodecContext *avctx) return ret; } - ff_jpeg2000_init_tier1_luts(); - init_luts(); + ff_thread_once(&init_static_once, init_luts); init_quantization(s); if ((ret=init_tiles(s)) < 0) @@ -1849,5 +1851,5 @@ const AVCodec ff_jpeg2000_encoder = { AV_PIX_FMT_NONE }, .priv_class = &j2k_class, - .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, };