From patchwork Sat Apr 24 10:53:24 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27284 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:49c5:0:0:0:0:0 with SMTP id w188csp2020922yba; Sat, 24 Apr 2021 03:54:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzaz39LJEE58hWnUKDLfFyGuL0/NDgb/Rb5zf75sB7lK9SCaIh0lYN1zhp13plrozyvtjMP X-Received: by 2002:a05:6402:510f:: with SMTP id m15mr9796179edd.328.1619261641075; Sat, 24 Apr 2021 03:54:01 -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 e18si7549465edj.485.2021.04.24.03.54.00; Sat, 24 Apr 2021 03:54:01 -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=pvonEMyz; 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 1591368025A; Sat, 24 Apr 2021 13:53:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2083.outbound.protection.outlook.com [40.92.89.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 721DC680074 for ; Sat, 24 Apr 2021 13:53:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DUsBd1so8RJGS1mu0OAyyShcA2QqebTYa7Pyj+GkqwREbo6Bz7YUpWjkdAa5qGON2Kt/Nd328prdqUZnxkRRpv08T6Fp3PlkjxntebAu/3YeVOs/YrRe0rkCca+jPaEes1UayjfL05iWQTPKgV48BpqXlj8Wv6p79mzGMT65EFW8zWJTH3J/QE1YaLj3l9zBKw09tWSQgBONGmW96RGb9FxGfhLJO0k55pj+bfdXYsiFVV3Nxw+/fvNuwjVw2bLt00ADe5nJ7J7JSxuyRqlgaFrY22R07GE/z5JjwlJ/1gE7hvnzWAV6yQq0xEGipWIs6UhKpMMgpnHD1q9fk8qs7g== 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=s/uiV2KCc2iF7JIl5Au5l6W0UL7kU8NkDaKaH/S46Xc=; b=VEU81nHRM5f43VDKPjSeMMUbRODOkpNw11Uj2U2cGHlZg6tk89QlQ8IwSVsHaEYX/xqo94r2pEfuatTFzFK3sR+KcgXftMewgwigfQX+iVx5Q3RgxowM74NmnTObEWREb5z3JohqUionf/f4AVtohe9cFheG4CWVgk9C0JNuvih77aINh04ZbrzDWzC94aKtw59TGCw9qqk+TwBJHRFObdDSuQuwvyDp2GFHA02LQlsKmvXfI1DD+7yadG9fT901EUNbUvhGH7V4dCOkQzf2rOBc6rWxwrZfn4tLBwUMOvo/SSsvtOGniqhhbfqzHIpIXfCh2EW4zcu+Qr6isItrXg== 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=s/uiV2KCc2iF7JIl5Au5l6W0UL7kU8NkDaKaH/S46Xc=; b=pvonEMyzE7TRECVSjt32dqoNKYaaAdOCsqGZK4W/sD+zratJ/O7tggOHuaMMN14O0t+2c+Ov25eIO/NNEu0TUxpCZrDTSf2/bV8Q8WbGb7SX57cMiigZF4f8uykOc5yDO0w59ZvED5oZLyYRbdI7lhtmiLgcoXupw4vMd6vrOVAJD2+XVnQjU3k66KeAwmqgZN6JmxJcJMCC/zPlcADduZFuadwCMTQ/bAK9qqWa4fLfUTTpITOLr6zoxz2YTFLQYZ8+ch6QpJ/+bgGLSVDbbSJ1uAbxJl/whvhImAe/oUx+/fc0kfcS+XP6ksyhKnoVErWv0JWJqlPzSuWJdVDc9w== Received: from VI1EUR05FT043.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc12::53) by VI1EUR05HT059.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc12::116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21; Sat, 24 Apr 2021 10:53:48 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:fc12::4d) by VI1EUR05FT043.mail.protection.outlook.com (2a01:111:e400:fc12::351) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Sat, 24 Apr 2021 10:53:48 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:020C169BF8A05C31FFD3309FDF69712400A9BBA582CC6A204EB7808A41301F04; UpperCasedChecksum:55D9303BAB3660540E5B5C115B02E3CE346E9A80C81A130BEE9627D6F6C0EE6F; SizeAsReceived:7393; Count:46 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.4065.025; Sat, 24 Apr 2021 10:53:48 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 24 Apr 2021 12:53:24 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 X-TMN: [T1NVDIWt3RGDD1PHqSetb2FEESDIRmEh] X-ClientProxiedBy: ZR0P278CA0088.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::21) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210424105337.30172-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.193.248.86) by ZR0P278CA0088.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.22 via Frontend Transport; Sat, 24 Apr 2021 10:53:47 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 66d49010-6ac5-48f2-afee-08d9070f3d19 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNUdbPdAvhx5/8x6B2xiI3vbNIUHPAMPd6HmzuKh9Dc6vOjc2NmR8mQWhLGlbBVBi2DsRQXHCFQa/7ShHsWY5khChF9A+uPAGNAbSxW+MiDyqkDf/PdEwY04EzggFucNKXYm8g9yeLNxzlUKAW+LdRWGP00wT/cretChHW9G/k76Vjc2D6PYY+eVV+4n6tMYI32e4gt5qH35zV4QBgSHoIA0igD7ZgjRAWgyTK/2nG70nFE69UiNMIoTsAd9vo+TnIGsdHr9AhnxBU1QC4AG8Dp4EzTP2nxGXH0PhzhTRltDnMxxP8+Y0MIyyxJRElEE5Mi+8QFE3zapxcnM+Ipc7H6PVszXbjKj8V8X4KqwWZ6xkO6iMNm5hmO7Dm4iDjd/54IC8SjmbRef2hmUGecaBpdLbsv9cAhEFQRKlqKU1EpjZfkbVJNoaoMdG1g5EeErmpuM4HrKbFHIlP1TWRxhvpUv57XhAaUxFxigm2DViWNewvtUBXjG555wb8YPRLl0grZGmN+cYFDQKBNNCh55rYuOQLzZJddURaCvOLrKZ5R30wg3AjBl9/kxmzK2tL7xUmT1nuYaKjuEA+KceghKtvwtoE3jHvSi33WQVnjm3ykUgl+GQzxfBFvRDdVwirnbGcrthSdE0oEq/wQX+NHaho9yeoTtTwTCRF+3c13uB9C5YtxImXmemqmW+tWJILtXVzVAn0kLBZUoVLCqKJtqhlvjDhx3qxMQ7OI= X-MS-TrafficTypeDiagnostic: VI1EUR05HT059: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8z/kCJsSmyZEnHf2NO7s9xo1xMLSbLLrG09z/Cyj0FmAV0q2vZrhfnTrizw3UtWZhxDGI/g6+vAX+RnilLmTFG3VbrEiiSOvSpS/oGXT+9FQbkRTJuplDz4H4hFJD0JjpvmMfnbu4tUUfCxsMgkzgj3TocE1juPQlHpLUzx0oMf3C7pyNRioV8+majx3v/ltjNi8sc2gN7856Oji9Nh8xQ8OBfk7FbGVf7IrH2KMuj5VpH4ZcNiU0LqBFxw7j7dg4oaWExMwZuIEv5ALyepiiyt2K2jm5Zy8TjllPGZAIvNGGSyZHH1I94Jv6DppTR/qdAn3BozacfCSD4X7r6qDHPLoHzdK/YPih9lf+QTHZJvDUnbsjh3+OoAPnUab9cCPxctISV1tzOwZuRA5ssYXXA== X-MS-Exchange-AntiSpam-MessageData: QEoRdI7ZOLBOASLrYHrM9Ckg9oTag5tVxtB0w104FlAaLFuLvZSGUwYwjE2Hc25GjAsCG9ti+ORd/v0Exm0k43B6ojyeCHVklcxVHvDcixC3kDZXdqbSZscMUqnL+SldVp5pjeCKHSvl8tBDcFSeTw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 66d49010-6ac5-48f2-afee-08d9070f3d19 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2021 10:53:48.5641 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: VI1EUR05FT043.eop-eur05.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: VI1EUR05HT059 Subject: [FFmpeg-devel] [PATCH 01/14] avcodec/ffv1dec: Remove redundant writes, fix races 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: mAwTNBETNOCt Content-Length: 1899 Every modification of the data that is copied in update_thread_context() is a data race if it happens after ff_thread_finish_setup. ffv1dec's update_thread_context() simply uses memcpy for updating the new context, so that every modification of the src's context is a race. Some of these modifications are unnecessary: picture_number is write-only for the decoder and cur will be reset when decoding the next frame anyway. So remove them. And while just at it, also don't set cur for the slice contexts as this variable is write-only. Signed-off-by: Andreas Rheinhardt --- Weirdly ubitux's TSAN fate-box (which uses frame threading by default) does not show any failing FFV1 tests; although (Clang-)TSAN does it for me and it is totally obvious that these are data races. libavcodec/ffv1dec.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c index 8516fef5d7..24dfc68ca4 100644 --- a/libavcodec/ffv1dec.c +++ b/libavcodec/ffv1dec.c @@ -924,7 +924,6 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPac fs->c.bytestream_end = buf_p + v; fs->avctx = avctx; - fs->cur = p; } avctx->execute(avctx, @@ -966,11 +965,8 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPac } ff_thread_report_progress(&f->picture, INT_MAX, 0); - f->picture_number++; - if (f->last_picture.f) ff_thread_release_buffer(avctx, &f->last_picture); - f->cur = NULL; if ((ret = av_frame_ref(data, f->picture.f)) < 0) return ret;