From patchwork Tue Mar 28 23:37:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ronald S. Bultje" X-Patchwork-Id: 3156 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.44.195 with SMTP id s186csp851540vss; Tue, 28 Mar 2017 16:38:12 -0700 (PDT) X-Received: by 10.28.92.212 with SMTP id q203mr16346534wmb.73.1490744292146; Tue, 28 Mar 2017 16:38:12 -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 w4si4974316wma.52.2017.03.28.16.38.11; Tue, 28 Mar 2017 16:38:12 -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; 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 56BAB689995; Wed, 29 Mar 2017 02:37:46 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt0-f196.google.com (mail-qt0-f196.google.com [209.85.216.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9BC7068825C for ; Wed, 29 Mar 2017 02:37:39 +0300 (EEST) Received: by mail-qt0-f196.google.com with SMTP id r45so299qte.0 for ; Tue, 28 Mar 2017 16:38:02 -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:in-reply-to:references; bh=UIGn93JirxfSKXL04XJe3mX09E7UXgy6ZvxMwnCoGv8=; b=j2BSzSwHnEc3ZpW0C7oHT+sW4sh59Jatz7Yim8Wm/UUdKKbHeQCvLrZtBBL2yVMqDQ OX3GG+mVwJ8DPt2c/ch3OtPbzO2C4DdoEgFpGNgGaM9z2iXNTBiguTkZfQqZauSz9HF0 CKbGBqrpCFZ7iuL80oY+W383TZK7rB3FxT8KHDlIOAIR4Eeu7IQIqKY7QecFA06M15Vf TvLPLMopGfxKRk6h8A2D/vBwD8MMfvM44tnivcGCJcQwtg+kLtCj4rTQtPfp0kSu5Vc2 QusWniirAZZDbNHaCGlrGlqBYRzssRLwFts5W6Xk0FdNfDQvNILcuR0hWUg8K/tm/GT7 rwKw== 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:in-reply-to :references; bh=UIGn93JirxfSKXL04XJe3mX09E7UXgy6ZvxMwnCoGv8=; b=hmLwmcI5MpbAVaalJw41Cq8cZM89gnXz7Ey/r6MNzxSrPvTF/w9Xn9f4/RC+s2YkID cqtN3gYDcxtxee6Tq2uWGApznivBHGNQcYJcb/tD29K4rsybV9mXfmkjZFihnG+dACmP Jv/HI46qWNIpsmM43/mKnqGgSAYRcS46wufJV6M2odxbjD6webVE838lzY1M4tlyd6at dMjsQD0DI9TGyyA0DKmLH2pt8nkKnM8Ch0dUb+OGOuGiqsdwbKcisia7tJaW0iY2Eb/j xSMBzZMlR03E8sBY1Osa5lBuWY8CZPh8rgvWM0lAlaqFduMEFQJEscRADyJRElhi9zL4 Jagw== X-Gm-Message-State: AFeK/H2hMsBuKl8szgfWs8xnfj1VvMzHsZyboHYnrynI2ht/HsgEZqVoXLFih7epoP/Xtg== X-Received: by 10.237.33.69 with SMTP id 63mr28545590qtc.109.1490744280764; Tue, 28 Mar 2017 16:38:00 -0700 (PDT) Received: from Macintosh-7.home (pool-96-246-175-85.nycmny.fios.verizon.net. [96.246.175.85]) by smtp.gmail.com with ESMTPSA id 1sm3748596qtb.40.2017.03.28.16.38.00 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 28 Mar 2017 16:38:00 -0700 (PDT) From: "Ronald S. Bultje" To: ffmpeg-devel@ffmpeg.org Date: Tue, 28 Mar 2017 19:37:55 -0400 Message-Id: <1490744275-59294-2-git-send-email-rsbultje@gmail.com> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1490744275-59294-1-git-send-email-rsbultje@gmail.com> References: <1490744275-59294-1-git-send-email-rsbultje@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/2] dnxhd: initialize DNXHDContext::avctx to each thread's respective one. 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: "Ronald S. Bultje" MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Otherwise all thread's private contexts have the avctx pointer set to the AVCodecContext of the first thread, which means all writes to ctx->avctx->* (in e.g. read_header) are effectively race conditions. Fixes fate-dnxhd under tsan. --- libavcodec/dnxhddec.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/dnxhddec.c b/libavcodec/dnxhddec.c index 305fd52..766467e 100644 --- a/libavcodec/dnxhddec.c +++ b/libavcodec/dnxhddec.c @@ -145,6 +145,7 @@ static av_cold int dnxhd_decode_init_thread_copy(AVCodecContext *avctx) { DNXHDContext *ctx = avctx->priv_data; + ctx->avctx = avctx; // make sure VLC tables will be loaded when cid is parsed ctx->cid = -1;