From patchwork Wed Jul 5 06:15:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Muhammad Faiz X-Patchwork-Id: 4215 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.1.76 with SMTP id 73csp437696vsb; Tue, 4 Jul 2017 23:23:58 -0700 (PDT) X-Received: by 10.223.166.2 with SMTP id k2mr43556015wrc.34.1499235838494; Tue, 04 Jul 2017 23:23:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1499235838; cv=none; d=google.com; s=arc-20160816; b=RgKHMINpu8cDIjx0LrlOgQcwmtTWLtCh2u5SKx7P2lwclA9JLMo2gRuNT+ZJZDhJG7 aAaqdeJ9veIzwgyHiJAcsqHm43Bv7o1VXv5wPLPiP0/f1lOgFTc2eJIT7DAoZ9UB3h7j F+cASsbi2ufPpp73EJ/GeOt+rdkUAnxkTZONHmN9PbGTzZHPD2ZstPpAqNS1eiVc3dBw iMlFkuoPkiIE6ux7HqmiWupUy49NQEIMJZjWyGB8AMknWU9Rm88KcgkFtSs8j51/G246 9IYfuaqGcm1Nz4j3ue3sVMzmm3+oXPbBeOaGDC23n2DClUUHF/KBwsQhz1E1PQRAgj86 FJlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to:arc-authentication-results; bh=HpWvv9EVDmDp8zueANyokmA6sc0qjC+94B3HR5HxEzE=; b=TUb250eP8pCunciiwNv26c46SL+Noo0AMMeWEa9LRlId2U9I3EVCH/U2r8OXmvKxn2 en11iIHdPYgf26g3eyY6xLhIqw/JC9cDl8AMM5kiWM3U+Q1nJd3d0a7wMUFSPCDhL13I Rkq2EwhE5sMcTuSSd4a4Y0EGbguIXsYnO6c+NzBGv9EFAj6KcPQ96DXsz8c9gyQBWbdw IN+QXNHUuim4sXn9P0UwvgtshXYpJ/a9dPT5DRwdYOkMMU8cQ1orLpph2Zrzr2XIMF/+ 5OYl+me7enFdZ8XRx23UsuDyTAVpddicJdsnqLA5FFcFrvKOkj0bQSACp6ZPPiA6k20k l63g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.b=ZHwYpGvj; 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=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s71si16096822wme.6.2017.07.04.23.23.57; Tue, 04 Jul 2017 23:23:58 -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=@gmail.com header.b=ZHwYpGvj; 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=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 621486882CD; Wed, 5 Jul 2017 09:23:52 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf0-f193.google.com (mail-pf0-f193.google.com [209.85.192.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 71FAD680A4D for ; Wed, 5 Jul 2017 09:23:45 +0300 (EEST) Received: by mail-pf0-f193.google.com with SMTP id c24so19031835pfe.1 for ; Tue, 04 Jul 2017 23:23:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=zBYiBaq+5f2qBypdH/9d0Heorar4CrZDUOM9iWXJolI=; b=ZHwYpGvj3GE7OkC5T1P1n92K8xOVIgKid+dFzrHn1L10y95vf+tDj0qLq7RGSHIkC8 eXLX9IktDKTUDtS5hUf+u+nN7LZRMfy4nAeg/1KwqULF/WSLcccWS1jcp3ctsoBq0UUM B0gvmZbKOWaZGO9qI5ygv9z3zl8aQPR2owEBiOJYasn7ZpjGG0nNbBDyCcNmY2YDEYjM 8aGEv3ocZ62lwYtfkO/jPzJOasEbrkWAvtX0/b62L6iuFbYDV6kXdmELAwPAsRTcCv22 GhYETVM87DnNUhQdywiBKG9LvzKiiNUwgCM5FF4tsPb1/XDAfrxCRejeh5yD8dMe/AWi 4cOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=zBYiBaq+5f2qBypdH/9d0Heorar4CrZDUOM9iWXJolI=; b=l2CZZZLsZBCsP/fQIUNU6sUNgCOgF2/wYgZAJa0/hQ0BekmtaF2Jwo/Mj5/eicuZY9 H6m08wc5YDs1ShHNemcTcT3MHax77G6M6peDGYy9mWJztGFYwF+avr++OL33/G/reupH BgoeFi7ji5jBBo97s76WauTlIxjPzdetcBE0szesscQKRahVPC6Rx/7rG00+FZ3L5/cQ vMM3mNsP72ZTgrJA7gYJDjx6CBug1vpabchqyO1aoC1rdgU/cPDFW6o9jwlV6Oz+J5Hv EJHi4UADnc/cb4fr8FyewaCehAGmjxzhxSabpNTBdrYJXADObWtfSxhPiAakWFhgoDL1 HWOA== X-Gm-Message-State: AIVw110daXEh4l7xaAunQShdCAcJ1R4jwgekWBH9KopCR0szR7tUtMF5 WBrx2/xOGyH/Ak2Y X-Received: by 10.84.228.193 with SMTP id y1mr20178351pli.18.1499235379091; Tue, 04 Jul 2017 23:16:19 -0700 (PDT) Received: from localhost.localdomain ([114.124.236.207]) by smtp.gmail.com with ESMTPSA id y185sm39221434pgb.9.2017.07.04.23.16.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 04 Jul 2017 23:16:18 -0700 (PDT) From: Muhammad Faiz To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Jul 2017 13:15:56 +0700 Message-Id: <20170705061556.11206-1-mfcc64@gmail.com> X-Mailer: git-send-email 2.9.3 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/fft_template: use ff_thread_once on costable initialization X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Muhammad Faiz Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Make it thread-safe and avoid redundant initialization. Signed-off-by: Muhammad Faiz --- libavcodec/fft_template.c | 81 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 71 insertions(+), 10 deletions(-) diff --git a/libavcodec/fft_template.c b/libavcodec/fft_template.c index 6477372..6c77854 100644 --- a/libavcodec/fft_template.c +++ b/libavcodec/fft_template.c @@ -29,11 +29,19 @@ #include #include #include "libavutil/mathematics.h" +#include "libavutil/thread.h" #include "fft.h" #include "fft-internal.h" #if FFT_FIXED_32 #include "fft_table.h" + +static void av_cold fft_lut_init(void) +{ + int n = 0; + ff_fft_lut_init(ff_fft_offsets_lut, 0, 1 << 17, &n); +} + #else /* FFT_FIXED_32 */ /* cos(2*pi*x/n) for 0<=x<=n/4, followed by its reverse */ @@ -52,6 +60,66 @@ COSTABLE(16384); COSTABLE(32768); COSTABLE(65536); COSTABLE(131072); + +static av_cold void init_ff_cos_tabs(int index) +{ + int i; + int m = 1<