From patchwork Sat Feb 12 06:41:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 34244 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:14aa:0:0:0:0 with SMTP id bz10csp3855490nkb; Fri, 11 Feb 2022 22:42:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJy7c7ktSBN7vSpq2WPLdwMqFSc4ISsLgKPCeE2+CFC4UhxDPxIDtvo82P2BPmU2geuTznP7 X-Received: by 2002:a17:907:3e0d:: with SMTP id hp13mr3996616ejc.244.1644648141871; Fri, 11 Feb 2022 22:42:21 -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 dn17si4048502ejc.383.2022.02.11.22.42.21; Fri, 11 Feb 2022 22:42:21 -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=AmvR7gAH; 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 D54B668B28B; Sat, 12 Feb 2022 08:42:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074027.outbound.protection.outlook.com [40.92.74.27]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 719A368B1BA for ; Sat, 12 Feb 2022 08:41:56 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G3sPar1rd1W5C4QGLmIsWUvnyTfY+lxHlWa6DvZyKzmd3fGzYLXMo+4/dTKGNvB+1uLz5R8pq2GhEKw+C/GcyWK5L3mN02IIGXFpX8mR395e8wH3+47X5ZN1RwI2KPiwJnaRmUi9KyxTaZ6BS5XCj2RsH3s0oLgbQZ6I5+8PgbUihCRnKgN1C5uZdmfjfL6HhUw4pBkyDzJdTlyYG7okEHOsxNanBycRdZF0fTMnzkRnZx8fEUOtX8p5DUrFQABYz4Ptyo7O8a+KH/C42UwcJhNU7hemTfmeNe/H28BVVQoCgsX6Ifjk4gRlXMC3Cr+V5mid7fguG2VAm0tC7NvuMQ== 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=vGQY+dUA4fHVyke2LVtF6mAquCu7r/farjGRiPbPGY0=; b=ZY1olJ6ppiz1t9lce1wPigcAOcDGYmfE0IDJknLUZylnZHIqvYaRtiMnfDHtiaohdDVxXYsekmhtGbD3KwjYTC6d3bOZNb2Xu3uEAFHV0Ay24dnYO80PE4Gukk+uQ8/qk0jlin0hSVIQmOX2BmF01upOWcKlyjvImBrnIFbdaEM6WEhNtTGBUFEwkqrHHy6C+DyiulD9gxsQwlrProWteh6RzkPxine1AiF/Xzww7OQ/J8ab4a3i0WjMyW1XSS8h2hTZgVDsc2qvgld098vVBmS7EydYxw5jMRQ+pDMFwmI4iSLpQDRCikG5dXlDt2J9Ve7Hue0f88skQPr9/l622A== 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=vGQY+dUA4fHVyke2LVtF6mAquCu7r/farjGRiPbPGY0=; b=AmvR7gAHAu3yqcE3LqsrWyhTwSR7rCVsKvKaThMjDuKegt5+8pHVpUdAvKCtvejhc80CrRv0T13n7nbAQYmDpn2fKw9O/kWAHCMI7cXuw4Ygsy6n/V5Fdf1rOt4hJZ8ZE3D7MPfbhOUwyKUtam0/jdJX7AZh2YDduSepdKcwMSENu1/7w5zSFNRqqwQlXShrnjqrsgNWpRQtS27ZYoZnlfSznFv1ZPSZ62JYg/gFdWwIUMhOAViAQt6LDjZ5oUunhnB1pE4LmHEmuAWwF0PWypdJL2KGvIPpbdhX7Ew0AxSkZ3rwXjPzWK10XO/470qhOHX0E9ivSCeY/9RH9LRzHg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM9PR03MB6723.eurprd03.prod.outlook.com (2603:10a6:20b:2d8::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.11; Sat, 12 Feb 2022 06:41:44 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22%5]) with mapi id 15.20.4975.011; Sat, 12 Feb 2022 06:41:44 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 12 Feb 2022 07:41:19 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [c0hp6ZnBnNn4R3h2QQ6soMUOJNsOYOs1] X-ClientProxiedBy: AM7PR03CA0008.eurprd03.prod.outlook.com (2603:10a6:20b:130::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220212064131.2265452-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4302b369-e1f6-41e3-926f-08d9edf2bc07 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSJybpSSbCo57WJd93pOqVlFMKdKSxmEfFj0GW2SGu7W33IxWhUPDRnPgrulhA5irc6Sz/5yrY6Dy0H3+p38dSWAkGIxEI2Qt/HGKnvUv5pF3ypll6KeJGQ0gReUdPOv53sR5AWFBpuWrdmj5cJdFBK5IpY9G6Yng0OZ//9Zs6rhnwj3xR6stSFqrehnste2KtI+Ef/6NDrsE+k8L8ma2Y2t1YAOk8SwCUQG83hwkrOwgjvTfWkbKfLxiVdxpaKawq1sR9uaUETtqj++tSVCLc9OvJ4Xkco/fP5+K1+aYg9KYmjbvscIQ6FQHTZdeWf3R2QqIAK/sM8yTgHbnZ+dIVQZmO0ZNx1EE2R3hKSP7Za2c1OvCAZWZl+oEPIdZbF5MDAQqfy9A8cJNdSBRCxDEF30qyCZT1FYDewYYEZSyNBBIvVeZgrO4e1INJe5KyKC3DhfuVEPndGvdl5+l3KFx7WwMioCz1mW6EXNETMXOh6ywTAzRsioTL3KoBKIcXggFidTn/CFYpohVdqlvWxnoDT1Oshj1ZuQib/odAy5pyVI51j7SVHctrGWTYeTlQnJculkJI+cR7eKVbYd1JXILJY4Yup88ZquyHN5wLV4DuhaQxNnUGbPwRSWa9NP4aY9I2Q9tEXFTNmXkE+cNaYRzMRehZGgQdf212jqqKjc95wdQ9t/7s8LiAj8MPTIrfbgEhnNRcj5lBf85lEvvFipWh5ap0kry478RK+DIk6Wp2SdhLZxbouyE7MBl4g1BJ+QiI= X-MS-TrafficTypeDiagnostic: AM9PR03MB6723:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: o50Ep3UKNFnRV5PkJcsEtofv11GyCvuPii8p2bSERLX6SRgKItLjR2E5RktYvMv48zK51pueKFB4xyxhSqW8mfbEYioWamNQaOhXjx12ZpzgIoi+enRiKEAKdcho+bDuRRUrLS8UdbxLqP5FlA2UtYAskM1PX+FufJZf1ushxl76h0f+SQ0yF+/W+xJlQU4Y2bKeoYQ0b8OYJRPkwEbVfiVUtryAbPExPz8HdpZPPdFEPJ6oQlbcu1kWCDFzrytaYyzanHJrDwxgUvT24hXKzMFZUzxKe6yJ1c/eKFTL2oSEzimw0mejwDtLuQbC1JmorvXHJZtgL/0TdF9nKQe/bvW0DbgyEvPbqY2wYxS1fM9pStXdw2p2RUFDbNgAV5eIQUW90BlhqiDko19OphX2+yg4s8RON/OlOB0jmZvoxMERIAoh6G4r32yE+00ldt+cn14s+GKdtTEJhVNRX9Y2jB3AUp9BPKwzj18rGXV6UgROykeDWGw+nl953EoG5Wb7dA/WrYK7jOu79Yium98nkOLf+zzusCzfTCMXAe4+bV1pNcB3i4pfci0e3uHo0BoP6LoyqAwZK4HXb41hXdmUkA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vPiDucZKNNVfTC41z/RpeRQ48jtOA68WN4UwWCk85LhHoupiFZQDOgJUtoK2at00X/XMW4UJivoaw39tfulEuL92tEmEknzKbh3k/AUjgyZJfVJ9Vrk27N+IcCxVGJcoTzQobzqpZFU7hJ2NcBHw7kLPpsG+qvW6MZehBME6TOTtjg0/kCaVgodhFmEWbJwzGeaT93K62moUF/y8FfHgTRs2DdOnA58xP2402T/f5r02BOjA00sh+9IMezD/YFgGzrJZTYUpEx34shRjs6n2mwO1uuLvg3aP8W0UYk+BreNkszJJ55zAgniz0A0RrNu5qReqtjfq+AcD5C8ZstEny/sWtq3EnKfdhYO93Ffjkzunzn5ajKtUFt/lJgcv9gzVsFPzTMasnSe4rbhJomT+/SIb7JlyrPVkFN2+aE6gX9r68lu8N3y3GRHQumLUY/VZdJcVftQ0olieiiW4yeJNeEgWbAQ6uwQGtketLNVwP+wkJtnpLK+1JqBCKaXL2FsYFOzK+G5itVK2M6L7wfH8br624eBVJOJByYgisnPiU+z/rI9vCO0mfuGjWMC11PZZynC4tj7e4pQPUzkm1IZP5LNXlz9hfvu0avb3dBj80YQTOzgiw9T2cNUcIem+dMmsucllRZWkNftmtWJtENqOgJ+2Hi/EsC8iQAAvQ/ZW6uXzIn6xpW4gbOHnrpnNLxpi//VE5aJH0Qe6Tityp0OTZqNicbUNfgbiMeWdOqo96QUqkFPnmbiI6WuiEioZPWMziZsBK3L9K+c45Zf2NZn+t49+BSb/EOiOVlgpudqIDl7xTZhMJpKm2FvgGbVWdRwnjaWD5hTeT2ox90GvHwXv9UqWy8JNUq3VtJkpR8I+jNUGO6bcQ3Y5DYO+2NyG3fqmSPShlu8tk+CNrXAZZsoVIMqMM3+uO3+EZWNye8kstkE3+dHZ1A3tPzBv84XG9Z78QpJVP9bDJBcVfRf1lDqBvA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4302b369-e1f6-41e3-926f-08d9edf2bc07 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2022 06:41:44.3835 (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: AM9PR03MB6723 Subject: [FFmpeg-devel] [PATCH 05/17] avcodec/rv40: Make decoder 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: OP3DQgoTTWBe Signed-off-by: Andreas Rheinhardt --- libavcodec/rv40.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavcodec/rv40.c b/libavcodec/rv40.c index 31a7a04e51..8f7589242d 100644 --- a/libavcodec/rv40.c +++ b/libavcodec/rv40.c @@ -27,6 +27,7 @@ #include "config.h" #include "libavutil/imgutils.h" +#include "libavutil/thread.h" #include "avcodec.h" #include "mpegutils.h" @@ -553,14 +554,13 @@ static void rv40_loop_filter(RV34DecContext *r, int row) */ static av_cold int rv40_decode_init(AVCodecContext *avctx) { + static AVOnce init_static_once = AV_ONCE_INIT; RV34DecContext *r = avctx->priv_data; int ret; r->rv30 = 0; if ((ret = ff_rv34_decode_init(avctx)) < 0) return ret; - if(!aic_top_vlc.bits) - rv40_init_tables(); r->parse_slice_header = rv40_parse_slice_header; r->decode_intra_types = rv40_decode_intra_types; r->decode_mb_info = rv40_decode_mb_info; @@ -568,6 +568,7 @@ static av_cold int rv40_decode_init(AVCodecContext *avctx) r->luma_dc_quant_i = rv40_luma_dc_quant[0]; r->luma_dc_quant_p = rv40_luma_dc_quant[1]; ff_rv40dsp_init(&r->rdsp); + ff_thread_once(&init_static_once, rv40_init_tables); return 0; } @@ -588,5 +589,6 @@ const AVCodec ff_rv40_decoder = { AV_PIX_FMT_NONE }, .update_thread_context = ONLY_IF_THREADS_ENABLED(ff_rv34_decode_update_thread_context), - .caps_internal = FF_CODEC_CAP_ALLOCATE_PROGRESS, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_ALLOCATE_PROGRESS, };