From patchwork Thu Sep 2 15:34:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29957 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp393791iov; Thu, 2 Sep 2021 08:34:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyRFP0c6oKkTkFdn9M/5NyWdr73iQm85Ax1mBzMF3lnzjgJHS30pna+Ps90/BbyENL9G2OH X-Received: by 2002:a05:6402:b65:: with SMTP id cb5mr4081120edb.343.1630596895466; Thu, 02 Sep 2021 08:34:55 -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 n10si2949625edx.387.2021.09.02.08.34.54; Thu, 02 Sep 2021 08:34:55 -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=nyLNvhQE; 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 1CA9968A59A; Thu, 2 Sep 2021 18:34:51 +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-db8eur05olkn2081.outbound.protection.outlook.com [40.92.89.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5C82068998C for ; Thu, 2 Sep 2021 18:34:44 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EbxlZX6qPDP3F28M9ezwa9vMc/lPTtvrHvlCAIxYK+9QuHs/7mz+zAujREVSSMAu/wL/MOSTvMAoCBTpMkj+574x79mE/Wee/X1nwQ63b8sOJjEs7IhMnOsm/Fl/AGFhhMJYlGvVWmcGNViNIQKhBIED9BZWN5FbiIK6d64PkO69TopirlEWcDOoW2bYdwSVCv/EViUN+Rcdzv2Hz/Mnt5ooB5tSUeTacsYFt2ASL1KaP2jE8TMklaLbpgibmrcZq1Duu/h4wGBA6gVh1zB5WMS2y1veJRQOMaephsRv6GpjmzAvgMrhgj3mklri7kjZW2dVN14+hB5ngtvqSNHXoA== 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=EzEjZxuJ4IUL7E1aM8SOfrUnmBllG53tlTqD9IDJbk0=; b=aUAvm82XrDOf/Q+pZs6JRX/8KiPwN6Te3xixA2DPLC43zPaduRgqW46NUz7wie4yO88PpJ8xkKHwMsttAbCU9l6he9UO25UJetnDiIiDZnznfzd2mjLTp5TzSMBjC54WljXJK1E8S70XVrsvdkGZ1uUM8dWRCUmfrQLoGk02FNMWkhQvB4eYnTJ6F7KNsEPK44RCAq8ugu47GiiXpTsYB88LTXaigmgEYYiwzlYSOYT8LFD0POspWMeCXCtSrw7TmOePHn3amZe6nIQo9MrJ+NQat11mPdor+lYVyUu7smomKgxvYoQS9dIO3Yj48iQOhOyQnVE5IcthxQ6EU8UH+g== 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=EzEjZxuJ4IUL7E1aM8SOfrUnmBllG53tlTqD9IDJbk0=; b=nyLNvhQEoYPQGZYZfRPy8tjqYpvt9qcs7YnhvFRlDwq/QmIc/AJVRgf20HbAqbvPjDbojFbLn5Q9nJ4Dz8NLWk5WHBKAKK7jwhzrdx14ooKaCg9boFKcS3/TgFkOq7a5fUbrZbhwbYAkV6cZ7oAjy20ETYBM5ZYd+GLgL9m52lqVgLp63VUh2OwEvNM94a9qPQZuhQoylgtwIW8bZ1WpUJI0BOjp4sI/kQ+Wk+3u27lxKNRcZgS+7cqIGsfcKtpW64eAHjwum5RsTh+rANsyimlDpODMJt+AxdE8cMS+fihZ9JQhelCjW0KLVWNwQZtb1e+XcNhfEVuSymXLt8FRQw== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB4694.eurprd03.prod.outlook.com (2603:10a6:20b:8::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.24; Thu, 2 Sep 2021 15:34:42 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Thu, 2 Sep 2021 15:34:42 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Sep 2021 17:34:23 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 X-TMN: [F++m95veDzNvz60Vl9IkJV4CUCYJBPy3] X-ClientProxiedBy: AM3PR07CA0138.eurprd07.prod.outlook.com (2603:10a6:207:8::24) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210902153435.2571539-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM3PR07CA0138.eurprd07.prod.outlook.com (2603:10a6:207:8::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.6 via Frontend Transport; Thu, 2 Sep 2021 15:34:42 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9bdea8d9-4789-489d-c390-08d96e272f3e X-MS-Exchange-SLBlob-MailProps: zswcL9HXbeUxZgMf8eiMU3Scarekfq0vW/26Vw6seRWQWIp5RtUsXKs1HAxhCNpZs+qz45rnc9WWeirPydUf3tCaq5+sj41R8yJ96ILn0SPMgr/r1p0VEBWk3S6JLO+dTkVSERYiqbaPyYTlR0S10aJv/rpo/l7hD/lg+9E4D44gilMNQHaTsfIlSUOfVTtOFk9gCZN2wsTA8oSRjgbwIvZFE3m0MH1RhJBDV7BE/sAEgIQeb4MiPBk5Bx/gOScFYf49yOzItUTlJMcsOof+KIY0oyPIcM4Ucsdsww0KknGGicqHDLmcBjjCOGsB+aZkBJ3wC1fi7YsW8jISZ6yXst0YjDFSLZvT61oHKbVa5A9aZZw+h1J84Ab7RTeyThtr3nYk4NWUUkfdBIEnWgj7yaKgeqHqdU4PnhiY4B9Xgw3BXLWIDRMhU8v0z+VbZbRVUGvz7R+sYl8p2dqKZ/+AwlcJjRVAm6so2ZSbhvqjL8vH8NNADnghS+I6jNnkGdIpMk+iKL2b98M07SYX0nNHpLVii+uQzMlLNOncNhEfbpUj9bPX5lEwBqt7syhfQexC1tRU1m46R2NIu3ccnW1lLzAR2Z9XamTuMC+aODWBBFgD+VWI/+xvp85eJoj7EIScKwYygKEgOsL4ks4NJyW57yyzeeM5URnh82cf9Rq8nX6Ner+W8fk2TN0JD9j6Wadj3v5QR6DdLsybzVlz54/hGvXrTyUhQr/snidou7y/Y/A3MXVu7NtgMmZdb+rPo8QN X-MS-TrafficTypeDiagnostic: AM6PR03MB4694: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iUkPx91YI/PmdjFB7oQtjuaOnq9jRHtevRymR29R72ZIMaHkTzO6VQrbxplDX7TUgrr280Voube4szSTppN7Ev/P2Ha3P9tIHl2TCpTTiRs7uggIxgVNiKlzMtQrlxUvtPSV54nbGZevVSEUptVEhSZOs2mzXWS4eFxdi+cXiVLRXq+ieeRw5ndXEMNtfSYjnTiIBooUcdErnU6dKaUOj2A1S0nnAewy6pitGFPHHweqtNTTd/mxIFS7OqjsiFT77bKCLL1/4wDFJdqvnMUVJAv5pWLNeR4b2NnIYSXofTjEcPxUsVzLNaEQNypsyNziosPZE5U6y3aukivdYlqu63mevbvUc9H5BjBsfnlwUsEIyGzi/JB/rCFre9/yXho1gO8nQylYbfnI8zvqcBpyrIL9nlcaXskgB91UuyJ+Cp+Qi+FCzekA3E2en8Xxth+y X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: w6BA/HBadPuiWz29tDHcqPrFZN8a2Fpzestltzc6BHzHVJyrJSi9Aggj3QwoLIn81Mwmr+tM0p1OzbCOH5dXH45UFtaBYtFOk0FjtS4synFLX5s8ojeX+boJSlu2gr8oUQqM/wLOul/9bg14YgeEAw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9bdea8d9-4789-489d-c390-08d96e272f3e X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2021 15:34:42.7776 (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: AM6PR03MB4694 Subject: [FFmpeg-devel] [PATCH 01/13] avcodec/vp9: Do not destroy uninitialized mutexes/conditions 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: Steve Lhomme , Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: FtQxsOhmROqd Also do not destroy and reinitialize mutexes and conditions when certain input parameters change. Given that the decoder did not create these variables at all during init, uninitialized mutexes and conditions are destroyed before the very first initialization. This is undefined behaviour and certain threading implementations like pthreadGC2 crash when it is attempted. Fix this by initializing these objects once during init and freeing them in close. Reported-by: Steve Lhomme Signed-off-by: Andreas Rheinhardt --- libavcodec/vp9.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c index 874005a5ae..5c20a7ec5d 100644 --- a/libavcodec/vp9.c +++ b/libavcodec/vp9.c @@ -43,8 +43,6 @@ static void vp9_free_entries(AVCodecContext *avctx) { VP9Context *s = avctx->priv_data; if (avctx->active_thread_type & FF_THREAD_SLICE) { - pthread_mutex_destroy(&s->progress_mutex); - pthread_cond_destroy(&s->progress_cond); av_freep(&s->entries); } } @@ -66,9 +64,6 @@ static int vp9_alloc_entries(AVCodecContext *avctx, int n) { for (i = 0; i < n; i++) atomic_init(&s->entries[i], 0); - - pthread_mutex_init(&s->progress_mutex, NULL); - pthread_cond_init(&s->progress_cond, NULL); } return 0; } @@ -1252,6 +1247,12 @@ static av_cold int vp9_decode_free(AVCodecContext *avctx) free_buffers(s); vp9_free_entries(avctx); +#if HAVE_THREADS + if (avctx->active_thread_type & FF_THREAD_SLICE) { + pthread_mutex_destroy(&s->progress_mutex); + pthread_cond_destroy(&s->progress_cond); + } +#endif av_freep(&s->td); return 0; } @@ -1797,6 +1798,13 @@ static av_cold int vp9_decode_init(AVCodecContext *avctx) s->last_bpp = 0; s->s.h.filter.sharpness = -1; +#if HAVE_THREADS + if (avctx->active_thread_type & FF_THREAD_SLICE) { + pthread_mutex_init(&s->progress_mutex, NULL); + pthread_cond_init(&s->progress_cond, NULL); + } +#endif + for (int i = 0; i < 3; i++) { s->s.frames[i].tf.f = av_frame_alloc(); if (!s->s.frames[i].tf.f) From patchwork Thu Sep 2 15:41:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29968 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp399869iov; Thu, 2 Sep 2021 08:41:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyyVqxubZwx0Sx3Er0kA53qtpWnlU2avYdDiFy2i0kmkZMfof0ljLh2h4w/wSN89ArjutWV X-Received: by 2002:a05:6402:2032:: with SMTP id ay18mr4161204edb.364.1630597316846; Thu, 02 Sep 2021 08:41:56 -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 d16si2217731ejm.114.2021.09.02.08.41.56; Thu, 02 Sep 2021 08:41:56 -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=ZD1ZTZ9u; 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 AC65968A5E1; Thu, 2 Sep 2021 18:41:52 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-oln040092070098.outbound.protection.outlook.com [40.92.70.98]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B63226809C3 for ; Thu, 2 Sep 2021 18:41:45 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JjLmk/kFNtY7LYqKI4q7/PD4RPYzny2PutyhxKGtcCXx9SpqMjeC7xy8gvdPuQY9Xvmk6l/DfWttmFMEbrUvvm7+ESG6/V9ifdPN3jp/rQdrjyJKM3bqYG8e2P2ot7QWbM6MU1fp5AZrBFI7juyt4m6UhbetFaifFY2CgkGRf4PZbIoNZ1NKWMS+3B8/J/7KQy02iDzrL9NCPIYb5DWORwsGVaYkVb6E2KAKJw374wtConrL6xjBjD1Bd+g1d1cB/Pmv8dgLgWgvWI1J3qV8hMByj5wJDvD0KUyHDTk/rcskPl5H4rkufaka1NBPezMndI/MwhvZoS+bOc6brL82uQ== 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=uHQKls61rCNgWBBXhEW/u+7jpGyfPTMMu+i7wwj7WxU=; b=Ec46HtIAsQCw7LsOf1do92qrzAnEhn/TPZFX/xXkQkXj6Isdmnbw7vZcPxnTdorZPZSKAGQvfb5ovEvzkWrt+P5lXdYUeJGccUcXzM66diaYUKR27HBGeSYwJmoHfVttkrqcoyPt/eih8Y2NXIyxWIh2CPJSEOpvpu2/8XInKhx/qgSOODKQ7wPFlnMdWkQG7ldeIqB/lzK0PSq3BUy7lGTwPH1hw5KRKAneAuahOo8VS3237eK6Y6uQWIRiwEOKwrSEVR4zr14QJImGClH/T3/eWAmyVK3VizviSVmVeerSKSQNmkYG5DJRwILyJqbTiY1F2XRuhkAnSb4pvubLiw== 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=uHQKls61rCNgWBBXhEW/u+7jpGyfPTMMu+i7wwj7WxU=; b=ZD1ZTZ9uokfCZ28QGHhSaIbHhi1iAAFUr8KPQ0BIAn0Zh1EtCWiKk8H3w8uvzVoOJRv2JspLO/Z6M3eGLqbtNQbPxFu7kNFS+UzdB0yYOwHkmTmLKGfgGXN0nnJYbZm3muNu+96LPTdZ8z6AquCl/VUEv/5N3oGz/BDqvGtu30uDNqTQ2u0DyWWjTSCDfee2LbQyr0aNFaUMj27WKpARaMCoxLfvBvZeyYlvSAqRPJlwz+FISXX/Z4yYOWiLB0IrSQT3UmyiYV8l+gT4z4dAGJm7pQpVNOsRpzjoTaBqMYNenOLY8OO0WyuQ7BGXh5iuH1wrvYN9sVnQQ3xWgfa1zg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6532.eurprd03.prod.outlook.com (2603:10a6:20b:1c3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Thu, 2 Sep 2021 15:41:38 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Thu, 2 Sep 2021 15:41:38 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Sep 2021 17:41:16 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [CTCTzC1TPmetOJlL0jyIxh+6+SEOxv9P] X-ClientProxiedBy: PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210902154127.2571616-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.20 via Frontend Transport; Thu, 2 Sep 2021 15:41:38 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b80c1aed-6be4-42e8-1d42-08d96e28270f X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNW7ZO6S4gJQgEvgNWj+v++jloQoiKFMTaZ4JaJas2mL0Y4qptzJ9RomgZUcI+bC/9/Nz0ohorhnZ+BTu+gq9rixI2K1NBfMlVwdPVXQ8Qxiq2XkUngef7JpDVZnfp9EFZhqDBuD8NTWFjqCe1qqDHiKRgybXOwYCHx1bziynVftVXXRIYz8f0t7ljQIvJIkRc+qJXyN3iBIvRD+247Meff51enhWPHTT437G3800H3VWk3VJy7HHVYGM8Gj0b0ZTtwVOQ3XhZQfg/e5B5AcClyVzPqjN1Sou2tHqQv5U5fHdDhSj7ShVo2YHyUJw8J4APfvYAtkCOFSPNB7npfsiAGXE7DrezEOAp43OftyH2mvsG3GHAA0nd08MTOlEzbDPyx2431/MAcJpRt+SwyFniTI5Osf0Ypibyx80gDEvlRULWUOlrcesgeM4tv9pgbdubjpRtxumYm4/rRwLDKSSyRoLPibVR7l8TETiSLnSGF2d9DRuOV9a9YURCdrIwOjw9WhwyU4+9vnDcBb6vAtl+Z4T5QMNd5c8PVwGg7vRVkSzkWp8/L1OF/6BlwDgc8B0XokKLhAZ2/HW75Corm5Z/1ffCDYeYgpauDPNKGEbU0SGjlo/U8BuxobC/TvQLoYQe1RBz2ii0rpcDxbNVrXfM2tvgB1v21TO2+anK9XgWKZEHFd2gDs3NkFDAphIqjYPAHo9633lbOwf9QNS3SLcaV8j9CcWJiYHr0= X-MS-TrafficTypeDiagnostic: AM7PR03MB6532: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +mXhsUB2BZrokx5CiyKes8c5ilqWxLF6SN6ZgIDD6FlI2kLByLV87Qze5Ic5SL20J8qKXqxsVPosI9VapSelHC27JXJvsm2uBcJcusgSpyvuBbkAlMshGDh/A3y9/KUyi7IR+PFzxBZ+7QJNsjd8707vU1f3FrSo7OYHpNIM0P3LbdC57HYgiNYEjNjgIviIybQuS8j1KyEWih17WZHD0hTEGmMsKp0+xrPhf4MlwA/fbFY3MfbLMjb2Ify1IRwKBx7rdd3yg7b1K7zX9/o35+0c6kJ9AEumU/eY5jGvhRe7F7aqD7WmZekPNOT/y/8XnacfPw8mMpV9zGBl5K28WR9LpQcuI1ZJ0etbR0l07NhDeltomKxCnMVuBx3m7o2v8zlzc08NLeCoAd0Dy54A4Xp8RgxfCYX/ySYUnAsbf9mmZ8DpseEuBlTYYQASxqc8 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: l4J1hibdiQADN7ETstMbWUMaKBh09kVA8huTrBdG3N+c/RCCG731F76gwYmBVIX7i8008Ufrhw2UuIh5fENx7XWYZEgpWleNYVm/39ZZHSDAhxG1Zua+5W3ANhmtVX9XCib7VJfV46ZKpd9cmYpAvw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b80c1aed-6be4-42e8-1d42-08d96e28270f X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2021 15:41:38.5034 (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: AM7PR03MB6532 Subject: [FFmpeg-devel] [PATCH 02/13] avcodec/pthread_frame: Move (init|free)_pthread() to pthread.c 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: 8gXL9PeO26+5 We have more mutexes/condition variables whose initialization is unchecked. Also use a proper namespace for these functions. Signed-off-by: Andreas Rheinhardt --- libavcodec/pthread.c | 38 ++++++++++++++++++++++++ libavcodec/pthread_frame.c | 55 +++++------------------------------ libavcodec/pthread_internal.h | 32 ++++++++++++++++++++ 3 files changed, 77 insertions(+), 48 deletions(-) diff --git a/libavcodec/pthread.c b/libavcodec/pthread.c index 14b7cca4fe..e7bad19f8b 100644 --- a/libavcodec/pthread.c +++ b/libavcodec/pthread.c @@ -29,6 +29,8 @@ * @see doc/multithreading.txt */ +#include "libavutil/thread.h" + #include "avcodec.h" #include "internal.h" #include "pthread_internal.h" @@ -86,3 +88,39 @@ void ff_thread_free(AVCodecContext *avctx) else ff_slice_thread_free(avctx); } + +av_cold void ff_pthread_free(void *obj, const unsigned offsets[]) +{ + unsigned cnt = *(unsigned*)((char*)obj + offsets[0]); + const unsigned *cur_offset = offsets; + + *(unsigned*)((char*)obj + offsets[0]) = 0; + + for (; *(++cur_offset) != THREAD_SENTINEL && cnt; cnt--) + pthread_mutex_destroy((pthread_mutex_t*)((char*)obj + *cur_offset)); + for (; *(++cur_offset) != THREAD_SENTINEL && cnt; cnt--) + pthread_cond_destroy ((pthread_cond_t *)((char*)obj + *cur_offset)); +} + +av_cold int ff_pthread_init(void *obj, const unsigned offsets[]) +{ + const unsigned *cur_offset = offsets; + unsigned cnt = 0; + int err; + +#define PTHREAD_INIT_LOOP(type) \ + for (; *(++cur_offset) != THREAD_SENTINEL; cnt++) { \ + pthread_ ## type ## _t *dst = (void*)((char*)obj + *cur_offset); \ + err = pthread_ ## type ## _init(dst, NULL); \ + if (err) { \ + err = AVERROR(err); \ + goto fail; \ + } \ + } + PTHREAD_INIT_LOOP(mutex) + PTHREAD_INIT_LOOP(cond) + +fail: + *(unsigned*)((char*)obj + offsets[0]) = cnt; + return err; +} diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c index 8c0966f026..9c5d66c0d4 100644 --- a/libavcodec/pthread_frame.c +++ b/libavcodec/pthread_frame.c @@ -680,59 +680,18 @@ static void park_frame_worker_threads(FrameThreadContext *fctx, int thread_count async_lock(fctx); } -#define SENTINEL 0 // This forbids putting a mutex/condition variable at the front. -#define OFFSET_ARRAY(...) __VA_ARGS__, SENTINEL -#define DEFINE_OFFSET_ARRAY(type, name, mutexes, conds) \ -static const unsigned name ## _offsets[] = { offsetof(type, pthread_init_cnt),\ - OFFSET_ARRAY mutexes, \ - OFFSET_ARRAY conds } - #define OFF(member) offsetof(FrameThreadContext, member) -DEFINE_OFFSET_ARRAY(FrameThreadContext, thread_ctx, +DEFINE_OFFSET_ARRAY(FrameThreadContext, thread_ctx, pthread_init_cnt, (OFF(buffer_mutex), OFF(hwaccel_mutex), OFF(async_mutex)), (OFF(async_cond))); #undef OFF #define OFF(member) offsetof(PerThreadContext, member) -DEFINE_OFFSET_ARRAY(PerThreadContext, per_thread, +DEFINE_OFFSET_ARRAY(PerThreadContext, per_thread, pthread_init_cnt, (OFF(progress_mutex), OFF(mutex)), (OFF(input_cond), OFF(progress_cond), OFF(output_cond))); #undef OFF -static av_cold void free_pthread(void *obj, const unsigned offsets[]) -{ - unsigned cnt = *(unsigned*)((char*)obj + offsets[0]); - const unsigned *cur_offset = offsets; - - for (; *(++cur_offset) != SENTINEL && cnt; cnt--) - pthread_mutex_destroy((pthread_mutex_t*)((char*)obj + *cur_offset)); - for (; *(++cur_offset) != SENTINEL && cnt; cnt--) - pthread_cond_destroy ((pthread_cond_t *)((char*)obj + *cur_offset)); -} - -static av_cold int init_pthread(void *obj, const unsigned offsets[]) -{ - const unsigned *cur_offset = offsets; - unsigned cnt = 0; - int err; - -#define PTHREAD_INIT_LOOP(type) \ - for (; *(++cur_offset) != SENTINEL; cnt++) { \ - pthread_ ## type ## _t *dst = (void*)((char*)obj + *cur_offset); \ - err = pthread_ ## type ## _init(dst, NULL); \ - if (err) { \ - err = AVERROR(err); \ - goto fail; \ - } \ - } - PTHREAD_INIT_LOOP(mutex) - PTHREAD_INIT_LOOP(cond) - -fail: - *(unsigned*)((char*)obj + offsets[0]) = cnt; - return err; -} - void ff_frame_thread_free(AVCodecContext *avctx, int thread_count) { FrameThreadContext *fctx = avctx->internal->thread_ctx; @@ -792,14 +751,14 @@ void ff_frame_thread_free(AVCodecContext *avctx, int thread_count) av_frame_free(&p->frame); - free_pthread(p, per_thread_offsets); + ff_pthread_free(p, per_thread_offsets); av_packet_free(&p->avpkt); av_freep(&p->avctx); } av_freep(&fctx->threads); - free_pthread(fctx, thread_ctx_offsets); + ff_pthread_free(fctx, thread_ctx_offsets); av_freep(&avctx->internal->thread_ctx); } @@ -845,7 +804,7 @@ static av_cold int init_thread(PerThreadContext *p, int *threads_to_free, } } - err = init_pthread(p, per_thread_offsets); + err = ff_pthread_init(p, per_thread_offsets); if (err < 0) return err; @@ -906,9 +865,9 @@ int ff_frame_thread_init(AVCodecContext *avctx) if (!fctx) return AVERROR(ENOMEM); - err = init_pthread(fctx, thread_ctx_offsets); + err = ff_pthread_init(fctx, thread_ctx_offsets); if (err < 0) { - free_pthread(fctx, thread_ctx_offsets); + ff_pthread_free(fctx, thread_ctx_offsets); av_freep(&avctx->internal->thread_ctx); return err; } diff --git a/libavcodec/pthread_internal.h b/libavcodec/pthread_internal.h index d2115cbbaf..d0b6a7a673 100644 --- a/libavcodec/pthread_internal.h +++ b/libavcodec/pthread_internal.h @@ -31,4 +31,36 @@ void ff_slice_thread_free(AVCodecContext *avctx); int ff_frame_thread_init(AVCodecContext *avctx); void ff_frame_thread_free(AVCodecContext *avctx, int thread_count); +#define THREAD_SENTINEL 0 // This forbids putting a mutex/condition variable at the front. +/** + * Initialize/destroy a list of mutexes/conditions contained in a structure. + * The positions of these mutexes/conditions in the structure are given by + * their offsets. Because it is undefined behaviour to destroy + * an uninitialized mutex/condition, ff_pthread_init() stores the number + * of successfully initialized mutexes and conditions in the object itself + * and ff_pthread_free() uses this number to destroy exactly the mutexes and + * condition variables that have been successfully initialized. + * + * @param obj The object containing the mutexes/conditions. + * @param[in] offsets An array of offsets. Its first member gives the offset + * of the variable that contains the count of successfully + * initialized mutexes/condition variables; said variable + * must be an unsigned int. Two arrays of offsets, each + * delimited by a THREAD_SENTINEL follow. The first + * contains the offsets of all the mutexes, the second + * contains the offsets of all the condition variables. + */ +int ff_pthread_init(void *obj, const unsigned offsets[]); +void ff_pthread_free(void *obj, const unsigned offsets[]); + +/** + * Macros to help creating the above lists. mutexes and conds need + * to be parentheses-enclosed lists of offsets in the containing structure. + */ +#define OFFSET_ARRAY(...) __VA_ARGS__, THREAD_SENTINEL +#define DEFINE_OFFSET_ARRAY(type, name, cnt_variable, mutexes, conds) \ +static const unsigned name ## _offsets[] = { offsetof(type, cnt_variable), \ + OFFSET_ARRAY mutexes, \ + OFFSET_ARRAY conds } + #endif // AVCODEC_PTHREAD_INTERNAL_H From patchwork Thu Sep 2 15:41:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29958 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp400042iov; Thu, 2 Sep 2021 08:42:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxSqTfsTxLr6vFoqa0QN7cGIngoLMKxlHV/nXcgHSGxzWXNFuQj0cpSv57fs8fSffRkYoBV X-Received: by 2002:a05:6402:493:: with SMTP id k19mr4079397edv.386.1630597331012; Thu, 02 Sep 2021 08:42:11 -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 u18si2010676ejk.196.2021.09.02.08.42.10; Thu, 02 Sep 2021 08:42:11 -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=L0rftxi8; 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 BC06668A5F8; Thu, 2 Sep 2021 18:41:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-oln040092070098.outbound.protection.outlook.com [40.92.70.98]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D1C8E68A5F3 for ; Thu, 2 Sep 2021 18:41:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NqYNQJRz9/qVnpdcsX5ZTCsVGoAp/+AEOgvg244uujDDv+TartLsYAk6yXR93xGp45sKjKAlCzgUNxyqhH9lPj5pyOiX1PR6zRdEiOGF/+DUFtB99CuneGO4O/oPHdRBPjwFxLs6nQKVrN6ACHleI58TXpMI+Qr199yaDhiNCUhyMabh+IdsDbjm0ZyoYGgNymCMcCm2N6U1pyJbb/8Iz4V6KT5xF785VqlN/kRyYGtROIYA4EIW4YYby05bSABTD/Oqsj+Q5cwgZch/gw3s9x+DerrVOKSGyIDhdgZ/y4LHyUryiiDalUQWie/JQY8tTAdRahBLtyMLuusodD5F+w== 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=HdE7SEhy59XD2Gw02WbMYmrBid89rpgJCqXrKfKlAbM=; b=Wft4Kerr2uTz5tfZMC90JQfz0cLYj8tKdtJPkejnvaubU9ZlKWXbe7Xykb6I2AgMb07c/rtKQMLuJOXc5807KvS2jw/NydhPWI3wJMo7yWyoWZJCmfs0oTliRFtt2Pj0p9OVsdvH38Dy9YyUK/ZGQvl0O0NQf2ArKxr8qucLQ1NJNFm5hvx24qao4cZlTncckxN5knV/3yJJoCdxl36EZ41l+VHRc6/iCd4ORyoYbRoqpVISZiDvhCfVsB6BKVk/ewrvEzEk+u3L7N9ZwXrQVAlv+8zUFdiTXSKxu3cXyr5m3y4QMLvtIqBA4B/BbhU33bqHchCHbJAGHqJu8EUiXA== 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=HdE7SEhy59XD2Gw02WbMYmrBid89rpgJCqXrKfKlAbM=; b=L0rftxi8Ty8aZwRt5LWGgN4vMbf0ksDEjQQPBpu0LLAqoVSdz9U/nYYMJ5NSoK9TSQZhzUGztur7iFF3mmGuYljD/xj8RGiN5CoL67LxExfUt56uEpKKAGQhHk8QcvMzSsq3egIAyr+caGdCY43uLeyj+8/K/R1D99D9jEsaebiWUQownzv8GXe08/mrLBAWmxuMcWg3OkAA/kHV/hvp3L04Xh1FIm0fPdYTps9blZXj8ps5EiZ2wQfuuvQfmw50GKKsH0wHwsufGfSWjvhhle/irbwF4VRJzNi40mGFUgAut7OleQyw0q/LikHs2ATPrZoUo0nFZZVCXqHGAPeJLw== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6532.eurprd03.prod.outlook.com (2603:10a6:20b:1c3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Thu, 2 Sep 2021 15:41:43 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Thu, 2 Sep 2021 15:41:43 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Sep 2021 17:41:17 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [fhcN/eBWkZXzvHoXwdfXg4I0+pbv5w1K] X-ClientProxiedBy: PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210902154127.2571616-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.20 via Frontend Transport; Thu, 2 Sep 2021 15:41:42 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0b540bd2-e0e0-4537-ed7d-08d96e2829ea X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNW7ZO6S4gJQgEvgNWj+v++jzsKubHpuI4RVruu56IovEWtHkmHehM50nDb+h2hHWrmqTkosxAE6rVJ09TLIdYjgmGFrTk/ywbprer9UrcNV/FuyEZahbWMhCW7Sfm9AK/CMWV9hNBs0slma5Tgtko8mkhCKdZHixQv9F3MNcaP1wmSvnfHn00hRI2wCvSi7zh26ezEIZVES5kn7iyObH/6jdVmOQNbSKq12RVS9YJBC/DhMKlrdIHy1AiT27Zzxjk501VDlGdP8JBreVYHuCr3JW+d119GqVXMjrgychzrhWJIQVc2HjRKVp1lLAOIXw8gQxDZKwZBqkYAfoiAWLoQEfxHYTdR7ieBfx8PwHwrNUlI2QYprWYplBlA88dc+9qc+wWHLYwdgPz016OJLz+HZCdMQhuaKqW9q8twVyVAPKmgJek+geN217bhses+MzJWto3y8iTaPu9ODWufS2byKG52k5kreZHNEKG5mkoEIZqTjztdaM/x8p5vH1VO4YFpqhDdiTEoOKZtcpjd0wi+n0Zcv21C0gnp3vni2WnKQl0e+0BCS3WpCh22nLPd0FPPwpRDKprNevXkNhCIXUxmkp116XfrlP6BOAvIVRMYDE/0YoS2Kcymg5FySHC5sRcwnYrpwX+4L+KTx39DqrRnN2kzv+XF1cC1n4SlZgPswxbpb2eYWo6v4BXnZ7CQtQPpmWUJngGfJP3NkTFIIHzIn8sUj4o6IyXU= X-MS-TrafficTypeDiagnostic: AM7PR03MB6532: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KVKOaiMGodivRP74mDel0IcpMpy4bkjnIN1efzXkZFP9skM0WLLvcQxQKr+CJYrmTjVETaiFs5X0D6wURTRJ4SPDb9SthD2NNG6IdoQQUKobTNG2+zx3kDAUK2AVY2wGvCf0jmTXeYf9JdAVMs3TNElmoiikqeTdPvtJbyygo3dZKsJxRSlblj76+vCbxzeSgJlz1acYLjgwkhz5MD6sWkdx7TkUIVR2pJwgDLRS7VgpaJzA0aunsGPA4QXIcqeblnpXtPxBxs75DA5pl4TnQVXBkFsxgZ1WkwyLuYpc2evfddlnk1UUO656dilfwPw81qY0cozqZGnpDWlVNN9+++YqRkBudgsWKuVErWUTceoQumuoqmjKxDz/XeIbWS/38Yl2Of5K2nnXnFVAQJrfSxRgb0Tdj7U0ibOa3Q5Uvna8mnXjLr1MOtKVR52Zo6yf X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: XHGszzeu9z5CtWOXtCNbBO9h1YDGlV15utLI0TGHtlvuC2HLDhT/AclbU9+09id4CJO1sWjUw9TNwU7B6O76/O9jWn9JTmv1YJsE8G69N4RfH1FqiYpLAy4ykAhXu1cHHT/cEeHQsPHaGU583lUPLA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0b540bd2-e0e0-4537-ed7d-08d96e2829ea X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2021 15:41:43.3014 (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: AM7PR03MB6532 Subject: [FFmpeg-devel] [PATCH 03/13] avcodec/vp9: Check initializing conditions/mutexes 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: 7S1Ceh8ZQIFn Also don't destroy uninitialized conditions/mutexes. Signed-off-by: Andreas Rheinhardt --- libavcodec/vp9.c | 17 +++++++++++------ libavcodec/vp9dec.h | 1 + 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c index 5c20a7ec5d..239475cdbe 100644 --- a/libavcodec/vp9.c +++ b/libavcodec/vp9.c @@ -27,6 +27,8 @@ #include "internal.h" #include "profiles.h" #include "thread.h" +#include "pthread_internal.h" + #include "videodsp.h" #include "vp56.h" #include "vp9.h" @@ -39,6 +41,10 @@ #define VP9_SYNCCODE 0x498342 #if HAVE_THREADS +DEFINE_OFFSET_ARRAY(VP9Context, vp9_context, pthread_init_cnt, + (offsetof(VP9Context, progress_mutex)), + (offsetof(VP9Context, progress_cond))); + static void vp9_free_entries(AVCodecContext *avctx) { VP9Context *s = avctx->priv_data; @@ -1248,10 +1254,7 @@ static av_cold int vp9_decode_free(AVCodecContext *avctx) free_buffers(s); vp9_free_entries(avctx); #if HAVE_THREADS - if (avctx->active_thread_type & FF_THREAD_SLICE) { - pthread_mutex_destroy(&s->progress_mutex); - pthread_cond_destroy(&s->progress_cond); - } + ff_pthread_free(s, vp9_context_offsets); #endif av_freep(&s->td); return 0; @@ -1794,14 +1797,16 @@ static void vp9_decode_flush(AVCodecContext *avctx) static av_cold int vp9_decode_init(AVCodecContext *avctx) { VP9Context *s = avctx->priv_data; + int ret; s->last_bpp = 0; s->s.h.filter.sharpness = -1; #if HAVE_THREADS if (avctx->active_thread_type & FF_THREAD_SLICE) { - pthread_mutex_init(&s->progress_mutex, NULL); - pthread_cond_init(&s->progress_cond, NULL); + ret = ff_pthread_init(s, vp9_context_offsets); + if (ret < 0) + return ret; } #endif diff --git a/libavcodec/vp9dec.h b/libavcodec/vp9dec.h index d82b258a3d..9cbd5839a8 100644 --- a/libavcodec/vp9dec.h +++ b/libavcodec/vp9dec.h @@ -105,6 +105,7 @@ typedef struct VP9Context { pthread_mutex_t progress_mutex; pthread_cond_t progress_cond; atomic_int *entries; + unsigned pthread_init_cnt; #endif uint8_t ss_h, ss_v; From patchwork Thu Sep 2 15:41:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29963 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp400879iov; Thu, 2 Sep 2021 08:43:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzWZcVZDRNOntWxxtKZ9JHnedjWcUBNDwOjlrGW3eZocnGqYCC6JS+sSly+UhK/OK5V6VLD X-Received: by 2002:a17:906:544f:: with SMTP id d15mr4408120ejp.520.1630597393079; Thu, 02 Sep 2021 08:43:13 -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 h17si2335080edv.349.2021.09.02.08.43.12; Thu, 02 Sep 2021 08:43:13 -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=eYpHe33n; 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 C6DEA68A67D; Thu, 2 Sep 2021 18:42:05 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064091.outbound.protection.outlook.com [40.92.64.91]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4060368A618 for ; Thu, 2 Sep 2021 18:41:57 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HnrQedsEsbUugI4WbiT5SQX3bZe0zn+eaUDUWHLfIzeHLytC5RkcaO8oamlaxIsWEc3SFum23C/jN8ToxSl/SUhfviuPjx4Y0fJ6r9qubW1JylpTodwJw7XhbYoY/Odr3es2JfhuP+/Cdv9JeEm01ElCG/A+sP0ZIPwRCPhO0VElTi66gyms/5t/En+PkN2Rm1PDy5VFbpqLuqHFe8w80hzyUgFb6/Es3uHtgK9tUuC8zTpZNrPEbQRN0D+vJN0TMEVEuKLmqcQaZFdzGumWbXbChWhyy9Ll/eyRp4mPnHrdunooxjoz7UG4iyk5rMg58LVkRPtYjQkCLPTX/nHzIQ== 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=0Ly0ayth1oib1zohARXoPvzTW3VIlajn2oTkjS/7gIw=; b=QLBcuYX3se7prHQk+9Yz85l/lcGYjF3jBTMHl13lyRlJ4lEHP+gbxAvS8ACVNvA+Dyhk+5rOMn1NZdnKWWcgqMVIZstJfg7ib00CH04xXoVs+75vhfnAs6Qx9Mtz5NTgnrJXTluRzf6CjPxogr32Jndeq4tc5PksxXSZ9xSJPN5Z1ODAEHoywaIhLsNlLoaG39+gagHUQ/2Ycc+PgkW4ttW9SJQKasO6oWRnEGNUerIFDtCCx0fj+CizBo6kHVOk3+2pC6NEDdy5iFnxAY4ssDDXGinSm2ooiQKqzPV+W/vKO+fkThREK77NZviXo7IALfDRx5rZh9TREIYy4LT90A== 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=0Ly0ayth1oib1zohARXoPvzTW3VIlajn2oTkjS/7gIw=; b=eYpHe33nDN60XNRuuxYsaZmAg1kGkNFM+V4V+5vsPhdQja8QCeirdH+5yYPC11N8wYVpD50Wc1+8SHqmN2U20au+16ObgOCLU174zpOytMb3rFOjn5q937Rj+qSp2AQHoZrwJnxzOctNNnL4svUuVQ8S1WcS6N18z9Wu+8qPDjRYhs/vFV/N47qtxBYgtULJYwCcerBvuCHFwMJma58w+k2Cz+nDetf3EmE7QTg9lq40p8vHjS/WPcG1Vv5X34lfaSDw/xnPIm25oHrA3a+NWMzioDZEGFwHfmXRh0qY1CfyCBahii1lfKxvmj2WpANr7aMjcLR5YswXH0y5cYli2w== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6532.eurprd03.prod.outlook.com (2603:10a6:20b:1c3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Thu, 2 Sep 2021 15:41:45 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Thu, 2 Sep 2021 15:41:45 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Sep 2021 17:41:18 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [NzI5J1S0eQ+aYUQYjh4j9KyvU478gqa1] X-ClientProxiedBy: PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210902154127.2571616-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.20 via Frontend Transport; Thu, 2 Sep 2021 15:41:44 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 02817939-56c4-4102-91fb-08d96e282b12 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNW7ZO6S4gJQgEvgNWj+v++jnly5rnj2Qw4MGrev5e9B61aRJyA8TdwGc75XiHzlR3P9mssnRPmN4hdhjhVYoGf9C60sr7KYUFX0jrJeeWWxuGJfDVPXIEpuP2hHSV72BgmcB1g9sjq9R5+fkpGbQtqJ6CqXptm3VNctRP9PcZlz1I6eJFTbneH3U1klQwq6AmfU+egr+iq0GUawx1PXf+gvbFpEdi4teZC1K7FAk34Aohu5lV2iGr8fnsfNnMqLQWHxEXPAppBIMFG4CP1YPrTuCLqWQvOaCTglhrVT2YcJM7yR+uEGi/A9LxgPBb4LJNf3FzJExLLPTu+8Uu2fCnzA01IGojDsiVYDMQwOX3kz5kqK/Jc7e03XcCboyBBd654g4wbwkEX/HXd6CsHvSLEpVxFWLRHY5fUfflZs7VtfD9udSw4MlXXIBJ+O42tEx6oh6xZ1Wa3YVnc7KK1bLBT0NFUpV//L+/vdaDIF01S9GmFvEIzRqlgg0gi3F71AOciKExYM3jpFZDmPRsTEk3Wfy5nUpw/UkFp6erPI0E19sacOb/AOcZB6qEp3EdVSNOKFI1jtTsrrRmQM42dOicICjP1MgZUJL3aYQRCBL8B+fjjw+1MES9VPe1TLqg36OP61uJdSoK0txAhDCd4ALMaT1kQnK0n0JOO1qz4Xck7bNcBUaM5Nb2oK/jqs6UYrDFy7U4sDKiN1hR1kJXuwNrJD2Wne/0VFXow= X-MS-TrafficTypeDiagnostic: AM7PR03MB6532: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Bh9DXRLOD9IFFh/ufFb2kaCxMRU1aW8EfuSJRGlclqjq66SF56afDnVCEBw7tqocM914bTseAE7VzoNISJsMjoUA9+Vw1CeH+bUglF/mjA2PagaR2YkGhejPUYR60ldedF3R4QWirS+gk82Fn7aBKfBuKIvwdHHDbh3TvspfJOH1Y79gy5lMoKgLdcTL9GVjnWtOpFHEXBl4FJkQ8fjhOG1SZpNsi1/Iuh17brYl3bRb2cxs8IlY9za81bAbiblwQV5pR23WalJ/Yljnuzg6LtTSX/UFKsxgnXCFMU3MvngrVvsi4apqF3yjOKV6svn+HLryjX+NBVO9U15XsRnfF3dia3hv6STKQ319v0mFnMBzV5OWkhR259RvORRFVu89vN+5KHDrD5RrGurcU2NSwtZsN2CnllbgIA58CMmZyVAaNIh15noMjZw8ylGZge96 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5uj/aomQW4Fv66TYzFNcAy68xhtDdm2xaSu6vnnIRwhtVPOEb/FP+1uJ3/1VzBog96VLKk1b7h57+VOwFdUbYvxtx4FtFwlQ1kS4qWtUpfm1m0AkZusOqi8appx6Vz2aupXbjq6Fjj1efNrDxzfnZQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02817939-56c4-4102-91fb-08d96e282b12 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2021 15:41:45.2071 (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: AM7PR03MB6532 Subject: [FFmpeg-devel] [PATCH 04/13] avcodec/vp9: Don't free buffer known to be NULL 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: /habQtHMaOI3 Signed-off-by: Andreas Rheinhardt --- libavcodec/vp9.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c index 239475cdbe..8eb57eb8e6 100644 --- a/libavcodec/vp9.c +++ b/libavcodec/vp9.c @@ -62,11 +62,8 @@ static int vp9_alloc_entries(AVCodecContext *avctx, int n) { av_freep(&s->entries); s->entries = av_malloc_array(n, sizeof(atomic_int)); - - if (!s->entries) { - av_freep(&s->entries); + if (!s->entries) return AVERROR(ENOMEM); - } for (i = 0; i < n; i++) atomic_init(&s->entries[i], 0); From patchwork Thu Sep 2 15:41:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29960 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp400577iov; Thu, 2 Sep 2021 08:42:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzwSjU3zox6jtoa54lgoeml+61ehaBFCVQ4kUDe0pI9dQ/Ul6gTPdpKhBPbIiDpEJ/Q6GTy X-Received: by 2002:a17:906:2bd0:: with SMTP id n16mr4482656ejg.132.1630597369296; Thu, 02 Sep 2021 08:42:49 -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 l15si2177463ejg.444.2021.09.02.08.42.48; Thu, 02 Sep 2021 08:42:49 -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=jbY8QOfN; 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 D1A8668A66B; Thu, 2 Sep 2021 18:42:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-oln040092070098.outbound.protection.outlook.com [40.92.70.98]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EACC268A609 for ; Thu, 2 Sep 2021 18:41:55 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e3ZEOAv+OiaLABfOE6t6kogRXXigjXB9VeqlgADDnwFZmm4zGJqLA/qnLR7hX0bkXRdlW5gZ2pBAmso7PLkX3GWvBX8SzvhpjNm8X4NAaB+Tr81mJKeCTI6wF+JP+v2Z7EBe/GGDxSuwaMofuHFKcuvNVmEp9yzjyTB1SuLNyggcbsLGBrUcz2Bt5x4045n+FE40K6cjpS+i2WmOfygCQGY1SE+TCOtIXf+wqnQEejObnGqqgW0GZh3wp5aY4Vfch1OezJapx2xPAS49gKiGINtRdDxsiBYP+xCfnaOM62wsUw5HlR3xlMNAqXH+G2zqaaTmfFrO/pJgKp2Kw/jWBw== 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=62+yjjb4cg5dkd6xpT69KxtA9LxQvs0FxbEP6+TMAmM=; b=jWRDPzs/0NXMyKmoaaBJRz4JgXb/Yl6ftJqHOiX/VkmsS1xq3WuUOmIYEYRpDVprX+50eg/Pzf0UIAzOQimsO259Mx65yIdy6zZ5onPgCm2vs+LJ7r9JAEYs+9QTZmu+ujmEzuJ043L65TpZYDjZp2HvqbN8kCkv0hg5tGwGun87C67UYuCP+dKkuIEcsUi3Xxp3xJa6noAVzNTHtAC/UageMQrehwVuJ6M7yd/Mtbzta8DZZsytXkmcU1IYgyFTgtZuZSO+nTr9LZPgvRnHK19p5M4MJT2Oy2lQ676j/Z2mKBHW7ZNxUYfgwQzalH8FaOuowdPpJQOkNDr3tDaJ0A== 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=62+yjjb4cg5dkd6xpT69KxtA9LxQvs0FxbEP6+TMAmM=; b=jbY8QOfNRdRqRJrQ668kPLzqOgKBb0ntkNrjFT9Pq/eptmXrR5R7eJ0BW8OnTsdduDPplp1LHwdhHWbfV3vRmNH8ROkoRmKXU7Z9Pg5GZNLxSjne+FwHbOHvqI08NEqmJp1RIA4X0FNywWoTlT1Zhkmtyapjsq88Fvu5b/L3LhNVqVMQ+W8oxWjVGwaEF6lwsaZonrORKJrlhaTG7wXesTWcOmpi3dkhiCGWhYNgqIGYeHnQxyESub6125HmJEhXhoDp7mM3zT2nlgiSzlAXiY05elO3D8AeRKI50RLTRPKXOmLKixYaerLeueML5/Ulgmy3+4W87ePw44pQfAjm/w== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6532.eurprd03.prod.outlook.com (2603:10a6:20b:1c3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Thu, 2 Sep 2021 15:41:46 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Thu, 2 Sep 2021 15:41:46 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Sep 2021 17:41:19 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [GzsvQTfh3+KlxvbVE1PFKL5Z4eA/wuk8] X-ClientProxiedBy: PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210902154127.2571616-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.20 via Frontend Transport; Thu, 2 Sep 2021 15:41:45 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ea0cdb75-5569-494b-9270-08d96e282bbc X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UI47HzvBIDxi1MyuBlz6AIUowHBf60J0CfwcSyFWrJylPNBp8EVEsRHpxV44rwpoXzrlyGRUC1qeMpsf4d9FMzOdKv39NDe5xukWHvPVy7QduxqbhfdYt9+U/JQgUlgP6JsPY11mgu7KPUX55kOfmPlepC2VKD0IZi5+CiRy5qkSMDHttKz0YFwnWYl2KdLXJzb+gQmF3uYc+9uZr3Gi7rgyVWYV1zsoZT6EOvMELgaDHZvvMe6zAlOnW7cZavB4TBIw/ox2YFHo2/naQSfm7HDw6eTpumZY4ovthXxshRbNptG76BuQ+4D2vwEIo8yBb45eF+zQC7I1vZbZkrebUj9aG93BFGAvVdkm3E6BY0t98qobbHhdAtUUxkzP4hVB2GTgOqFQDwbpCPybhJadwM3OmZaVOTMGYeIPidPgoQe8NP0Res8uBhY2Ep1bvudnEfxx8+GTbJnUa9tCJCUU7ccRXLZDTrWpF0b+gbEHcZNJqvenYFN0RyhHxn/ruenAgy8HXqmMeyWlIVtM+rzx+OyiE7OJykpr9QH8cK5FcYPe3EwTWLNcxW39nUsJ8wCTqsOYLc5x1soepMwS+MZf8crCq8XrtGZEbI4C06YwQtwnxQqFX4IX8Ln9tCbztPEtK0tHUmnYNYSPxDe/qkqQ4sLb7TTpV3w/VHScDeTpXiQmJZPzFGFcbvB/Su5T3Cj77Y8ytL+hQ/qpw== X-MS-TrafficTypeDiagnostic: AM7PR03MB6532: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jIV4/k+Gvm4s9Ptqxkoh54Q6wGXjBBFVKxuytrsLcvQFG4g1nTrv8gMHqRRId6NyVlPJgzhd1XNFTTAsMgEy1mvY5UVV91Ye5yIh7Q+8hfSJExnyPwrrawvjjeTVZaIPC4HeowYpi0PvcTA6P34Tt+qwHIvxJcLEqLknCNPTlZgUuoGr+veepcVXMuTVkG66/0BGe72Qvd5VbXIjMP/oK/AUIT/z1IOpdc8CCsxrPPkKBLUNiZxdzoTFr4PpUNFb16tCCHjVa4eGtcfnK65JpbK3aDsCWooO3+eGhGbJnVizt9xqe19MUd99VMQ7kBSZl06xzMnwjr8W//mbpJjeajGkc1Ia9ZSSMsUogcwstlNtZ17Eakw0zlv+MMCPVhZIehhb4AcPS91WWlAZ9N2Ludzj5KeUWyby6LH6fbzMamXADoRAZfSjzSmoapiEjBea X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 0b4l9UDr0jgj41E2WfYE0zwPRn1M/ioTBJvVaXAoOajou/kPQuNepEVjS1pwSy0lE1HiaD9mhuezjCs3okxBmvGDN0DwHczAuPT4yYXgFdalx3ElfOMY6eSXcygqacPoqtQCkEJ9auwNTAEbVKx2pQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ea0cdb75-5569-494b-9270-08d96e282bbc X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2021 15:41:46.3541 (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: AM7PR03MB6532 Subject: [FFmpeg-devel] [PATCH 05/13] avcodec/vp9: Use av_freep() instead of av_free() 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: ydJ6PdZy+gYN Otherwise the context would be in an inconsistent state if vp9_alloc_entries() failed (and if this would be checked). Signed-off-by: Andreas Rheinhardt --- libavcodec/vp9.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c index 8eb57eb8e6..8bdcb86625 100644 --- a/libavcodec/vp9.c +++ b/libavcodec/vp9.c @@ -790,7 +790,7 @@ static int decode_frame_header(AVCodecContext *avctx, if (s->td) { for (i = 0; i < s->active_tile_cols; i++) vp9_tile_data_free(&s->td[i]); - av_free(s->td); + av_freep(&s->td); } s->s.h.tiling.tile_cols = 1 << s->s.h.tiling.log2_tile_cols; From patchwork Thu Sep 2 15:41:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29962 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp401626iov; Thu, 2 Sep 2021 08:44:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy6N75vSlsnKgQq2vpjGCVU1FdeTUS35HpB+E0OrA1ByfG/3dHS1Vjs3aPJzmMz+noSzbRs X-Received: by 2002:a17:906:56cc:: with SMTP id an12mr4487557ejc.456.1630597449109; Thu, 02 Sep 2021 08:44:09 -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 j25si2242324eje.334.2021.09.02.08.44.08; Thu, 02 Sep 2021 08:44:09 -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=Z176nHpF; 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 9F18468A701; Thu, 2 Sep 2021 18:42:09 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064091.outbound.protection.outlook.com [40.92.64.91]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 90DEC68A630 for ; Thu, 2 Sep 2021 18:42:02 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C9r7WYPnBQLGtsCb+dsnD8u+F0cFO22PVkiYf/Sv8bDV1lwv4xvoPx4CI2HBHOfmxwjqhlAQYOh2/tp1b8f3FY+5bPEyQUXhVlVGs2RFpSzofhM5oijEcgYf9wpmcBtwJYWM3/LrNRY5+6eT8GSLjjdGQdYj2xEy23OvzgRj7OsjRWDQyXsD5Uzk1GUCWxW4Hk++n2WwkeGCIvhZaDvINRxA8RyazWt4EBdWEQ1we622dtCLd13yvb0Fba2qkg2WN9g7EEO6zlKkPEzo2SprFyjUyt8fp1pmlkB2pyy7/5nlC7txQRGVKzv9ciOdrRjbejIU/Ubo/ypgZ6B73JR2lg== 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=7PuqTqEvR3BJLxeQE8sUF6obFltARgUo1BX6zWTuvd0=; b=CZX/QCOtyYa8eSficTn4AwRNLTRLOvadjeWjfiipq3bnL9KV/79/EAkry4PpGh3JgVf/78JvDn7PN+simr9yT7n6f9CoudbfvlcRRlR7GN8uVwyNqAl3jiHluNgPiKBJ3C0Y7l/vgu8eAloX7T6te2GDwPyF2zBXkkuSxpInNiq6matW1Aq6TzoaJdqh1L0qUBwh8ImX3TkbAQALUfyuRreYiH8h8UOfSBbA8MBTzfECD66xrEvXhT8ecmZPwqzUY4soKLuczPpxgYJQkAENRy2Acikf8v0Ju81C531lt1pe6fwSkNMRQWA6w2C6eo5v+o6Rq/lo8kgVHDVZduQMaA== 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=7PuqTqEvR3BJLxeQE8sUF6obFltARgUo1BX6zWTuvd0=; b=Z176nHpF5NV1oLsiolyYF2AESvQx15Xik+3heVGODrA5VRNpmESezxuiGZ/vIa+oVyymeCy1qBH2MQX/UE5tO+NyLL68ZYE/WkrE0jtpokW5B6lry0Hq/N/1u9d0H8LgUsWzTXN61qkOf92/TPcC/Xcebe8q3nIz0OYZAFSc3Ktr2YyhyIywoMhJxhXHFi8nNLbXmR9q8GH0tAYBfvQllGpmcjbeO5rpNW+XYpf6C4kfFCwk6ZcLe1+DEzllIZixJtQ8oa+l/ya6cU4hfUScVJgDy0Lwws58ju2mgfz8OT7Bir/W9p/+eDHsAw9//NJzZVZsmpfPtu3MIen0URr4xg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6532.eurprd03.prod.outlook.com (2603:10a6:20b:1c3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Thu, 2 Sep 2021 15:41:47 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Thu, 2 Sep 2021 15:41:47 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Sep 2021 17:41:20 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [nVU5g9ugy4l3XxhmWafCyH7Au8pGmg+G] X-ClientProxiedBy: PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210902154127.2571616-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.20 via Frontend Transport; Thu, 2 Sep 2021 15:41:46 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 705d6088-401f-4dbb-c6a3-08d96e282c62 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiRAro5Pl0DReHj5zSq9SRg2j1C5mT4H/h9cz1g+O7S9MWvsxZOgyizfIFHBE0bYbWeaQcbosyuWImDECB4yjmwcAJoys78HJJBOP0Ju3vvqz47BJFG4PcRhhTK1DBXxesfcr0RMLEPXPczQ+PTJ1XmL40AWBKUDO4FCx7zYGprGCUsB6wXFQn54esk54yHgB8Wxw9zckmjNyYIH8GiCmKkjRAXV5EmxCslilw9MNSRKSaGjOu4D8MfNE5D6hj0It8p4Jm2Vsz985Zm2whJHdXC8eXetuix2ObfHzX5sLmzkHXhwmA4ecbuMEv7GXAUCRao+COG8cbKWiyvYj3s6oomBWoXFYOmwmWFE4drHjxONFCtUwFc4rgYXDsDtzS77nqNNk1jf5E25qqNkPzgq9BHm1SJLwZt2c6mi0TB5tNWzU2tblnShFArexQknI+Mv25Ikwlo3E6r0KqNSMP6hsoObAQYnRD36vHIPQCC8l4xQoGq3wjeAm1SA86MSjmR5v59EFfbltsFSomWYGW4zAVspAvB1CfXHZSiqFHgzRDazmQWRkP0J+e7FteD5JzIB6hbj7AtsoucBFmQGc1+uI3lKoqJSqwSBtXeHqWi3wyuUhx5NhfXVPYz47WM9xG4MxflNftaD0CxDDYv6zP5MrslHUGp5UpXPfoFH/ylnz3nDsjQGpaM72pyhRog7+CfWcswetT7j7VnSYZXzAhMiAEFQ3rNk0vXQoy+vdllMdZGEZPejDw+Cspuz3dWEQUZcZjw= X-MS-TrafficTypeDiagnostic: AM7PR03MB6532: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /+FUMUJj9WPfkUU/tBXB0y/ZGYzXWCCvuJw/kg9w2swHGAPse5hVFW9kUDh45NJPtMirEkwfK43WNiLgwfPv7HiJwPRZ0ezrKnZDU6QPAz8cF+TjYjbw+a21pTkcOy73F0OKdvsRiBGRItfMB4LYwDRJS4H5yO0As87S0Z7xNjw51EtrivP8/7YouVREUZICe//xDAGDCow2gDBZSAmCEdkPYWbhtYAmrx0Pim4S9Z/fP1fukPTy5btdozMZq2qlS/mQzfHJ9KsdlHv2FHe2lobjKROicu/kCZPJ6ql69Is7sRiQqo0AWryJE9AZU9rW4VfGJehM8peh7mxLD5u/usM4+mS7I+zYhf5haIA1NRiGV+LjGOCGi/yIqICcWDoAbolX6Sot8OOsCs4FGN2QxPqeLTiUNULbxWFEpsOt9xHECyiWePCwDEiWVqzjfhqe X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +VfoGNfDwLlthQJGbwB8i9In3aUceX/dltpHSHtatG/PNdW9vO8dI+Shon6MFMwWyJKm2X+JigHkjjvFdctKEnGXtRMdRhpVF7QVNdKQsKSzloTqEGxQQJFWWBl/LBYTbLeWBUdhQ1cRA4yTNcUncw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 705d6088-401f-4dbb-c6a3-08d96e282c62 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2021 15:41:47.3985 (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: AM7PR03MB6532 Subject: [FFmpeg-devel] [PATCH 06/13] avcodec/vp9: Remove vp9_free_entries() 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: HWm9fg0dsd7p Now that the mutexes and conditions are only initialized and destroyed once, said function only had one purpose: free the entries array. Given that vp9_alloc_entries() already does this if the array is already allocated it is unnecessary to call vp9_free_entries() anywhere except when closing. And then one can just inline the one free into vp9_decode_free(). Signed-off-by: Andreas Rheinhardt --- libavcodec/vp9.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c index 8bdcb86625..c1b58d4752 100644 --- a/libavcodec/vp9.c +++ b/libavcodec/vp9.c @@ -45,14 +45,6 @@ DEFINE_OFFSET_ARRAY(VP9Context, vp9_context, pthread_init_cnt, (offsetof(VP9Context, progress_mutex)), (offsetof(VP9Context, progress_cond))); -static void vp9_free_entries(AVCodecContext *avctx) { - VP9Context *s = avctx->priv_data; - - if (avctx->active_thread_type & FF_THREAD_SLICE) { - av_freep(&s->entries); - } -} - static int vp9_alloc_entries(AVCodecContext *avctx, int n) { VP9Context *s = avctx->priv_data; int i; @@ -88,7 +80,6 @@ static void vp9_await_tile_progress(VP9Context *s, int field, int n) { pthread_mutex_unlock(&s->progress_mutex); } #else -static void vp9_free_entries(AVCodecContext *avctx) {} static int vp9_alloc_entries(AVCodecContext *avctx, int n) { return 0; } #endif @@ -794,7 +785,6 @@ static int decode_frame_header(AVCodecContext *avctx, } s->s.h.tiling.tile_cols = 1 << s->s.h.tiling.log2_tile_cols; - vp9_free_entries(avctx); s->active_tile_cols = avctx->active_thread_type == FF_THREAD_SLICE ? s->s.h.tiling.tile_cols : 1; vp9_alloc_entries(avctx, s->sb_rows); @@ -1249,8 +1239,8 @@ static av_cold int vp9_decode_free(AVCodecContext *avctx) } free_buffers(s); - vp9_free_entries(avctx); #if HAVE_THREADS + av_freep(&s->entries); ff_pthread_free(s, vp9_context_offsets); #endif av_freep(&s->td); From patchwork Thu Sep 2 15:41:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29959 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp400719iov; Thu, 2 Sep 2021 08:43:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx3mJ1HlbA63JBAWxi9McQcdQlX5O/dUXa9hAyxZmEn1taV+zUGlYW8eTy8Ap8Tw6zyHEuJ X-Received: by 2002:a17:906:6011:: with SMTP id o17mr4400445ejj.157.1630597380741; Thu, 02 Sep 2021 08:43:00 -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 jg30si2140756ejc.709.2021.09.02.08.43.00; Thu, 02 Sep 2021 08:43:00 -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=Otp9Kqnk; 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 C001B68A56C; Thu, 2 Sep 2021 18:42:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064055.outbound.protection.outlook.com [40.92.64.55]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1905D68A60C for ; Thu, 2 Sep 2021 18:42:01 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Cyd4qQc86Vl48271UeE8zHRp/2M9dee60ErGyviomgE8iVD1Zso2n+bbwun6/NmMVvi2kRG16LAmV4KWshvG1UhQiCZr+IY5q9R9bd6mSr06asL9iyLoD7oNvAJHRXcaEIzTUcPJUXvKco8V4AUImrJ/CnLbHi0B4LEf1EW2wbCquYAhd6SW74GDlNZEvYRBBj1W3CcMnDG1h2u1J6G5MIcxyrCw8lrwroYgSGzUGiRwkNuZmrgJ/V+kuY51Jr4cNLLCkvv3qgXni/K63lRg+2SjmXgx4S26a62BEgSl7RjGc7C+XpYYoqfKcy/ZBSxRjzhNn0KjjRbsEND2KnBwFw== 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=QqsZ84jeEP01pqAFjTRCWp4ATJ4LDjEOl/XwYTobQuo=; b=nlvnm5OuPQLjFTDkEwbMf4L0trhqdycKT4c5/IL9pF26IMyrGAdIJAoZxCxiWYPyyCDk1HFgxg9AEDbgvAzqvTfZpnHry98G+teEv/+6JLTlZ6dxhAK4E8x4iAQA6F7DDUJrGWX3KR9DhpW5yWBY31SZY0euYc5trSnNdcW8ZuLOuzGzHJEZSw/6NLTnEGxq90YbI/tnk3Sy+K+S3NddDKB52mXnYT/7Pa7AJY/EQZU0N1Xvhgit/SCrUQZd+DbOdq41RirdqA6KvRDkwqo5G3eN2Kw5aV5C6xrCQIuzlaJIAGTIzMCZkPjYQnqa7NxKG+v9UhzaK7IO4yX3nD5JzA== 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=QqsZ84jeEP01pqAFjTRCWp4ATJ4LDjEOl/XwYTobQuo=; b=Otp9KqnkF93mq1dxnZsSrY4syvtvklffZcKXTMyvMJMMZFwYfOp2CSbJlNEJWd3FdCqvfAwElgr/0zr/6zyafYzh6rnav3pwk3GA3SIuDFbtU/HUpiqyB5nDZ37IgvGO4zLvrir9GGArQ01tLkW03GqqtEJetWmxrX1wqwQpxMItTM/CflxuNnDtlChyFLwta8ysWpzsuGCwK8lAzqFDoz3CmP9+Rg80CJtCLmn4EJwdvpzVAn0FyIMA0QXrWfeETNV8TT/eNyuXht8fT6U2rDf3baoRGkzb353XOEerbyYOeU/e90sn4gXdk0CqDEtDikD1w7cyst8eVNUPJBgskg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6532.eurprd03.prod.outlook.com (2603:10a6:20b:1c3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Thu, 2 Sep 2021 15:41:48 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Thu, 2 Sep 2021 15:41:48 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Sep 2021 17:41:21 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [i3sts1GMO+orvVXMnIMcm9ubkACDARrY] X-ClientProxiedBy: PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210902154127.2571616-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.20 via Frontend Transport; Thu, 2 Sep 2021 15:41:48 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5e6ea7fa-67db-415e-e5aa-08d96e282d2d X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiRAro5Pl0DReHj5zSq9SRg207texylz2fYWp3r0eytqA96m8Er4k8Wo/4KJX2idheX3C4g/LJEp/S9qYl3KuqVTPtJU2wzIR4feBvoDjTQTDJSP84ZGwX9lcVuxcxKQDEg/HpUdTVrHiMOF6PZRp4E5AZC8LJebx4OzqAt8xIAKVPtAgw1C9B0QgyKCUl9ctXzCPgbzx/9h7vROsR/VkslceWvjhgdQflEh6W9CXFdKRjE5PZH5sbKPXhUnfWMuc+b4TUb635nuWDNnB8uTS+3estzDQSVIr+7+3Za/dhYO3dsNR15CphJdrojvLChsq/iozSw+xj+EqlF/gjrni0zLaxf+CrhkMx9lW2vCk3S0ggURfo1P+RcewnxPcGP4kqJ5pBYFrxVzluPqPJvTOebzNZ90wvFO50F+eMrNvmZuyu4XlpTcWKD5rKfPaQ2y1AlcGyN5n3xHjC7boWp3PmFdGXffSJ6GnS1u6zb9OJqnxQ+rAeTH859uQpx98A9zjSy4xDMohratR5UKMzwA4OIMKQ0ApuXa5xkGtZlEkTR0QOOAtPhvjSZOSagANgpvpV8ISk/rLz1xmRD3ZKMNO94DJTUMzwQYKJTYgevANJctF96fC7zrM1R42vtcrrjeYXhXSdCrKIJVUwp13HPiVBJDc9PmHyI/u646TDB/uLAkODTGZJlrd8KCMrmDz9nwOBk1OTy47HQzMsoK/aGLu/8ABX1t6aGlEgUYWjyXG1CM8OdtzTVuWTVnd5VfrIKf+tE= X-MS-TrafficTypeDiagnostic: AM7PR03MB6532: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: V+d/RTtHzrpf/tf/v57JHXxWflGCLhjupqrFcMhqAS+YOh328fi3VS2zs/kV9TndvrBI3ms6hPhsxw4i3d+lb4xFors/SMXCNEJ+uST1VqSCdvqNi19TklfRQJBhKuHxfwIakRz35TTznWrzlQ271fWuZFBlGI9DGMovSA4ujajobwkxnqiGafn8LLYYurfZW5ZFRdipekjJpwevLSIPiGrACfXgNwbUPNL9VA7E7uc7+cXyZRuIuD0PtcINUrmQCdLxD2pDKt9yCwu7tAcwXLvzop7hLjmapBHRYhJvZVeY8dhkL4PSauAJRc8W9zxB7CgA0Zxbkf69ekzz5n+s1s2X2bHwFH2V1yChpAGlcUqbYz7zt3AWCfJrsRFpWNP733E5+f8tQUjTeHN4qrPAu9GdPaPH0ajL3es44kgv+ZDjBglFsBvNijvOy/jCBySR X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vEspVnC9aRSdblFQUQT83dUjYvg+W4clh5n1U3p+KbC9+9h3bnsFqYBF8saRbHhY3iH4O515CH/5x7hxra5LlUjCwFikD4Q9zCGX2G/DGPMXYTxnGdmTXoytkBEbxUaARAgzfHqHAXzoPKi0NKxEhQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e6ea7fa-67db-415e-e5aa-08d96e282d2d X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2021 15:41:48.7327 (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: AM7PR03MB6532 Subject: [FFmpeg-devel] [PATCH 07/13] avcodec/frame_thread_encoder: Check initializing mutexes/conditions 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: AifFOFkQsQbb Signed-off-by: Andreas Rheinhardt --- libavcodec/frame_thread_encoder.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/libavcodec/frame_thread_encoder.c b/libavcodec/frame_thread_encoder.c index 9bc48c7761..e5f6544750 100644 --- a/libavcodec/frame_thread_encoder.c +++ b/libavcodec/frame_thread_encoder.c @@ -29,6 +29,7 @@ #include "libavutil/thread.h" #include "avcodec.h" #include "internal.h" +#include "pthread_internal.h" #include "thread.h" #define MAX_THREADS 64 @@ -52,6 +53,7 @@ typedef struct{ pthread_mutex_t task_fifo_mutex; /* Used to guard (next_)task_index */ pthread_cond_t task_fifo_cond; + unsigned pthread_init_cnt; unsigned max_tasks; Task tasks[BUFFER_SIZE]; pthread_mutex_t finished_task_mutex; /* Guards tasks[i].finished */ @@ -65,6 +67,12 @@ typedef struct{ atomic_int exit; } ThreadContext; +#define OFF(member) offsetof(ThreadContext, member) +DEFINE_OFFSET_ARRAY(ThreadContext, thread_ctx, pthread_init_cnt, + (OFF(buffer_mutex), OFF(task_fifo_mutex), OFF(finished_task_mutex)), + (OFF(task_fifo_cond), OFF(finished_task_cond))); +#undef OFF + static void * attribute_align_arg worker(void *v){ AVCodecContext *avctx = v; ThreadContext *c = avctx->internal->frame_thread_encoder; @@ -127,6 +135,7 @@ int ff_frame_thread_encoder_init(AVCodecContext *avctx) int i=0; ThreadContext *c; AVCodecContext *thread_avctx = NULL; + int ret; if( !(avctx->thread_type & FF_THREAD_FRAME) || !(avctx->codec->capabilities & AV_CODEC_CAP_FRAME_THREADS)) @@ -185,11 +194,9 @@ int ff_frame_thread_encoder_init(AVCodecContext *avctx) c->parent_avctx = avctx; - pthread_mutex_init(&c->task_fifo_mutex, NULL); - pthread_mutex_init(&c->finished_task_mutex, NULL); - pthread_mutex_init(&c->buffer_mutex, NULL); - pthread_cond_init(&c->task_fifo_cond, NULL); - pthread_cond_init(&c->finished_task_cond, NULL); + ret = ff_pthread_init(c, thread_ctx_offsets); + if (ret < 0) + goto fail; atomic_init(&c->exit, 0); c->max_tasks = avctx->thread_count + 2; @@ -246,6 +253,10 @@ void ff_frame_thread_encoder_free(AVCodecContext *avctx){ int i; ThreadContext *c= avctx->internal->frame_thread_encoder; + /* In case initializing the mutexes/condition variables failed, + * they must not be used. In this case the thread_count is zero + * as no thread has been initialized yet. */ + if (avctx->thread_count > 0) { pthread_mutex_lock(&c->task_fifo_mutex); atomic_store(&c->exit, 1); pthread_cond_broadcast(&c->task_fifo_cond); @@ -254,17 +265,14 @@ void ff_frame_thread_encoder_free(AVCodecContext *avctx){ for (i=0; ithread_count; i++) { pthread_join(c->worker[i], NULL); } + } for (unsigned i = 0; i < c->max_tasks; i++) { av_frame_free(&c->tasks[i].indata); av_packet_free(&c->tasks[i].outdata); } - pthread_mutex_destroy(&c->task_fifo_mutex); - pthread_mutex_destroy(&c->finished_task_mutex); - pthread_mutex_destroy(&c->buffer_mutex); - pthread_cond_destroy(&c->task_fifo_cond); - pthread_cond_destroy(&c->finished_task_cond); + ff_pthread_free(c, thread_ctx_offsets); av_freep(&avctx->internal->frame_thread_encoder); } From patchwork Thu Sep 2 15:41:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29961 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp401071iov; Thu, 2 Sep 2021 08:43:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyPGsvtrq7sIxGI1mHQfMWjS41lG3zHrD1fRD0T6ni27sujywj3JaMK20fHZNnaWJrea2XZ X-Received: by 2002:a17:906:a3c3:: with SMTP id ca3mr4429486ejb.337.1630597406038; Thu, 02 Sep 2021 08:43:26 -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 m27si2041849eje.688.2021.09.02.08.43.25; Thu, 02 Sep 2021 08:43:25 -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=MOy6+M0O; 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 E553868A630; Thu, 2 Sep 2021 18:42:06 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064055.outbound.protection.outlook.com [40.92.64.55]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4AF1A68A60C for ; Thu, 2 Sep 2021 18:42:02 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PyipRYs4WWE8oPKfk/l6WHpnMMWZCjzGHbDKkqZM7NEjJ8kY758ztRLaJtaDVdlicgowyDNKw944LK+5jSvA5RJxtbx28M6z3m5vKNXaZOG0vrsMoRDxYvjiq6x3LF5GkwgBM97SLqLRHBtWJItG2CSNikC6BuNpLmS+RZCSRDZc59NUNatopRrGZyemwpxFgDCBkVCiQESfsHerkZgVoIa1DV9RM+1ZrHjyIjGD1emmplekDx72O0DLwQQC07z6EDmjbYaA7DY2MXvmGyi3g9dsven6Laof1vLmp1/FH9+BXDtods3vNNEE92IS6CFkE9wEKxjVPteGENmPYGRqGQ== 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=Hs8V02W1Vi9kMCxJT6xlxnkmgAP3IgBfIKa3WNH11g8=; b=bBYW3nJ0SuGHw5rCIZKsu14lWnCF6dz1cIDSQ1ye7x6ZD7J82I7vpYhIhXgkyrq0+MCHAigJgPdViX+obXQcku77J/FLDtbIoga+E7qxTuUkEUD5kCV4hwgvrv5flyvuhrryDh37sxLgukYO+DExqMIGjX7DhdqffN/dEbxDELpfmVc99Kjimh+Qk18UGIFpFSgIzSB4OESSS5wfb4ai3HU+FSNAAlYLInf+QNWZJB91+3ayxa9p90kUGyOHgNBVkR2eYEXaCH6P8+q8bTnGnmWW1cRltutrxo8DFdv5Dt61GUulpjsAu5zrWy9yb91W89ZiQ3UUH9QTJdFSxEdDnA== 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=Hs8V02W1Vi9kMCxJT6xlxnkmgAP3IgBfIKa3WNH11g8=; b=MOy6+M0O2SVFhuTD4Go8QhcNCRucC3VgWxmiEUCReCwBrwFr4zDU/ONWT6CPKP4u+UKEqA3KbmqyBr7eQngDAR3axZpdDKEDAXPTkMts5GEx+QiV04FTvozubHeeG/fuZrIurxggh3IwgknTw0RJfjcIrz31wjdnlbzQaJg0W+QOqzcGBykVFPcnRrN72fdQQz/+BrlUK/gOM936ux2Z+P5DX9Grwo9uUZimQFA6S+memVsXMtTiucxXqPExvrbAimtOdQsegt6ADqmzXjLaH5tg3epW7/9PO3XlYo1jdq1NQXF3qxC60i/mDz1lKftzD4ZyreNTmJHrkOmmlvdJwQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6532.eurprd03.prod.outlook.com (2603:10a6:20b:1c3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Thu, 2 Sep 2021 15:41:49 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Thu, 2 Sep 2021 15:41:49 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Sep 2021 17:41:22 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [GCCAmvak8a9wyEiQsh15+RgRWveUaeyb] X-ClientProxiedBy: PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210902154127.2571616-7-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.20 via Frontend Transport; Thu, 2 Sep 2021 15:41:49 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0c4ef1bd-e922-4b84-f8ef-08d96e282dc5 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiRAro5Pl0DReHj5zSq9SRg2IKML9ZuGSN19IfQvm0K5F0UaXItQmRHLqEneaNL6vYjIR0heTn/7MVqo51Xn48QzK6cbLfPD0IvynQBg1y+VXBt3XnUX5pWcM0IYGhbvS2zYWXr0p4t3kJ65INIfSpJbHYTPva9x2YBOzq09Tr/2ERc3bpl68+153foJqJDFxzRHVTqmOMwBT4cNd5O5UvhAyd+x2eA15iC8gY/O42nCQwH8uOfVWoUyzg1s11VyI3/0yDluCzBg6WxR560pfkObQmo+JUMtRRpMgJyC/xYe8er0o7w0LHQLTy/Um/SBFiByOAjIdHO16foFIPRMvfgZYm32qrhjcUnJ4Je123pxFFfUh9TzO80OsU2eyJcU8d4sGoCAzJwQNpsJJw7nwQCqqzICd+gPXnF36unz6elTJYR0ZXGyqqDuGOel7LnVVoMWNO2/frsTofMPjF/kcG78HOpUR9ae9AW8sVDXE0ZHI5Yod9/uPGE4PmElWWM1mP01QPMdwGIjqCbGUBHL7nTJssb9WM+ZVjFsaws1bBJ5d/9j8+pVYH1fGyDbGbB/kOY4Fq7AB8JnE/4eRbt+ouIFWcqHrmItrlAuw59S/9P17asL8sAfKbkD3xzzZ2qJfLAZNgSqLfCMUqzJg337FHgv/M4EDzr301+D4/cJ+9FviULf4z1uy4WbM2WLMNFtM6/RKQYyA//oRmRp4SkpJd/jKCKCkgS8QEM3YP+7ktKGZNzO8qr+wxZ6PVdOAdrrmP4= X-MS-TrafficTypeDiagnostic: AM7PR03MB6532: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2MSPyPhcHUpD/eEATP9EdhDekciMSMlwk9lP4emOCa/IGe1g8YPuFRR8bJbLLG1/aajQnX+9O01tj4Wh8KVvArq+Bn3rmOVW2m1z5e/xo9qmXycrrvQrS2TLlVpHWAcT9aEmLSnWDMVIeUXpWZbGxq7Zmb36KR0FeHYvuhn1M3q4WX/fGA+YxleP3MKXWB8EYrqg4iIih40JxuWtgUtmzDtCtIFER4uOVlvE0lWSN71JFJwFHUcdsJ0cR6BKA5kU4/W9lNkv0wG3Tr+4pwNv3xpvsKUoTccNDY0qqFNNfzbUTLoJZLOrgqHNHSJKN0PIiBcp8iCl/AmfxZa4EAOcgVxchsBiUUY7RKOHS4QekzVNyVOytRt1sdoMpHTHOsyDqXyx2fPNMigh6HyCyI1aRf001vIPlyZ2Ylo5c2JH6gJQ+qvBZG78pZowV+NtNgTY X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Q3mhyzC50U/k9JuN4D9nrRJ+1xuK1FFBT6mZCFYLVii7BQOmq4D2d09DY3C0ZY/8LsXej+fLPkXTDIoG+0qi1w/+UZ5iWlcoXh0iL0Hk7vR41orgRQDCITTZ18dLQzP5Zk9Gz44DPf6JNZ0b12VG7g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c4ef1bd-e922-4b84-f8ef-08d96e282dc5 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2021 15:41:49.7612 (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: AM7PR03MB6532 Subject: [FFmpeg-devel] [PATCH 08/13] avcodec/frame_thread_encoder: Reindent after the previous commit 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: PxLa3JpZcH04 Signed-off-by: Andreas Rheinhardt --- libavcodec/frame_thread_encoder.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/libavcodec/frame_thread_encoder.c b/libavcodec/frame_thread_encoder.c index e5f6544750..8f8294374f 100644 --- a/libavcodec/frame_thread_encoder.c +++ b/libavcodec/frame_thread_encoder.c @@ -250,21 +250,19 @@ fail: } void ff_frame_thread_encoder_free(AVCodecContext *avctx){ - int i; ThreadContext *c= avctx->internal->frame_thread_encoder; /* In case initializing the mutexes/condition variables failed, * they must not be used. In this case the thread_count is zero * as no thread has been initialized yet. */ if (avctx->thread_count > 0) { - pthread_mutex_lock(&c->task_fifo_mutex); - atomic_store(&c->exit, 1); - pthread_cond_broadcast(&c->task_fifo_cond); - pthread_mutex_unlock(&c->task_fifo_mutex); + pthread_mutex_lock(&c->task_fifo_mutex); + atomic_store(&c->exit, 1); + pthread_cond_broadcast(&c->task_fifo_cond); + pthread_mutex_unlock(&c->task_fifo_mutex); - for (i=0; ithread_count; i++) { - pthread_join(c->worker[i], NULL); - } + for (int i = 0; i < avctx->thread_count; i++) + pthread_join(c->worker[i], NULL); } for (unsigned i = 0; i < c->max_tasks; i++) { From patchwork Thu Sep 2 15:41:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29967 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp401251iov; Thu, 2 Sep 2021 08:43:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxQZwusw+07rd1KMuaoHRE24wam3/c7J4Q1mh/lfh2zkv99GuPSNOI86SKAUe/uuGiPVHtu X-Received: by 2002:a17:906:5953:: with SMTP id g19mr4501826ejr.443.1630597420419; Thu, 02 Sep 2021 08:43:40 -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 s18si2133016eji.655.2021.09.02.08.43.39; Thu, 02 Sep 2021 08:43:40 -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=KtXsSgah; 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 DA52968A62A; Thu, 2 Sep 2021 18:42:07 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064091.outbound.protection.outlook.com [40.92.64.91]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6ED9968A62A for ; Thu, 2 Sep 2021 18:42:02 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dY9BHEzKES3wYz9StU+pxYNlpg/DhhIXBHD3CJKOxqx2ix3MVlrX/F+mfxWOYfC3cqpHS312NPOtm7D+rZL+VCfhDMWZPxVCpbZSn56Vs5BgUiEFicPgFqmf7OlJO5q1aB87SuiKO7cEZSW1U0HplB4HcOzI0jJ4UqT7rqa4YOZw148UyF7EderJk34t1wPpZlAydb5ba9ulLM+vubCjvmNmutTVFsEYK8RNGquCKY7QQNEsPKB12OjwzuigtEkUQeF9w7y7p6ff6OLdAgQ/nMPC8NDrukIjEqJFpfJXC8gZ34Kbt5mwlRlyR0DNrg90NK6FlNYy/rqqU7bH7TWW9Q== 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=W3cEc1Of76hrTthnnnjwt6uBkfhghSIIaE9dp+0WNrg=; b=Q70RkBWeTfRo6XIW4hyQ5OW0ip3QRi7pu9mel6ElXyi57yka8j+qoBQhyL1Z5XGO6OMPc5+gBUM9ALR7lUtuHQI4mRNDpx1z326tPZrvg9MqjPTRHm7f9HoMXcbZvDBCjRfA4WcAqY2KK8jbe0MO0eeqNcXjoE3LT1Vg2Vp3/Dlxk1VVtT+t5TgTuF0OtUBZKksML9IX3MZ5tgR6GwM7m9jxUZzPh5uSBf592tZ0KxiagXguH3KYfxI3uNIusLILzzQQuEK05GnbIqURTJVRMtq9T65WLMSKrTrX1Kio4aLAJrQFTxDtbcEGb4or3YYBcSJvPMp9Ol2NBNCHYxHDYg== 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=W3cEc1Of76hrTthnnnjwt6uBkfhghSIIaE9dp+0WNrg=; b=KtXsSgah289AuqPtbU6zO8ztw7TmqG3WyoWFPs00W5j1kx6uTHtfdjSX7X7PAvoriBh4R/gdkxJtmgFnBeDf2MBgEQGZGDntcUewBHKDOeIfcJox80zEsTRA3Vl30carbyE+33PKkoedKxeFh+hynpXzteChVkibPdQLGn0fJnIUEkbu1bBdm+zZV6PHN1a1nkTH8FJaSmqEbk3Pc//3JDHXVdrOuXIfj6hTGSaJ/7O1qv17tUsBEuNXhPH2f+FoY4hT9BdykPVmtTrY+O0FveNpdog6TwK0gfW3xkx/vp8RaiNVu9gCYHvZKGXotMLKEE8DMg1UroZ9TuZRhFMJLA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6532.eurprd03.prod.outlook.com (2603:10a6:20b:1c3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Thu, 2 Sep 2021 15:41:50 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Thu, 2 Sep 2021 15:41:50 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Sep 2021 17:41:23 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [3fHCJGTjowX6lI3y7XzGPuoOa3d/oQAc] X-ClientProxiedBy: PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210902154127.2571616-8-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.20 via Frontend Transport; Thu, 2 Sep 2021 15:41:50 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 860e8b2c-af92-4e67-60d2-08d96e282e68 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiRAro5Pl0DReHj5zSq9SRg28rtCFKKu308u8FUaT53qoQcazxtaOQFIC1M8i4uAiQ+FBEb1rsSgKSVypBB3VDqu9lY1YzbDkoujm5r3wF2aTD7d+P2lN3JsbwUAJcKcZ+NlN1wVlOVSWOEgxVt9oMsggnqywh59HZ6g7YIYoJb3c+ijSAIvZnBTTMusCUBErVjkWfv87gzYrjri1eVJ8J/sxqQ9dXFHiC0f5xRPTQ3pmmsjl3AaltALizjN2XqNS55KRIA6X3ONmxQMwTiTu1W8VpWcCAtXIVvAPyrEpVep9zV/6u0atCnMchmFjO8/ygMdrJ4EbtlBbIDqAZMENcUoSP22z5oJA9ICSnugJ8RyVaU4K/YkYlL7AP0fkebl9sJl1w4e5p2K/j/Fj/uYipEFGpvzfXnkq15MX5LchCic4tQUqxHT9yAJ75A4DcCTvF0ZO39TINZgVJQU9zY7tkWDJWmY0I4RpTHrwUgJox9gP/rHr9DlsWKcRklw2ulgxQIh8DXkBhf7+Jxw/C3IYJ0UZ5gqoFFs0DpF7/2ePH2EdMZ8SCVzxnnc9qV1/chn4NHe1GBsRdqVpPacp93ksYsFi+g5LqQejyn7U2RMlv9/7j1pSFY1JHGsQNINfb2QfNEEkIH8jfSBHovvhNZwaLB41iVWCch/Bd9wCosf1gIk+KEWSIqStcP1QNP0GxEOcI5UOWHZl5X0xyRU+IYZHqEyLcAHYK5MLMYDauAJOMaAlFcQyhakcfXK7BMEmV0u7y8= X-MS-TrafficTypeDiagnostic: AM7PR03MB6532: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: csbdeAflxy0tu8qItX+Z+o0iAAmcRYkoDUTK3rQRQ+WBJj9zeJiay5J06X1fEYDX3eNpswZ/xNqTZUG2ZgOrqkDxHKSKCxUvGbV/2FN+MwwmUK9PioZhn7fn7Nn46RV7uoZ0hYljGO4A/kDr9cJbJaMEbnBztmJ1VdThvemcOS4VzvXyf39gTNv1ghnfHiDM7Dz2gP819UyHuTp33wODU3Mf+2WcWkcGG2FjFsxU1rOHSbAFuY/hRyonLzcd9KWWPDNjob6bf2lYZU6Fs55Guz6QucBOQV2y5AYiYGVSIpRpEUMusiO6XUSvyMPRYDvs9GLj+6GVq7iAcY3xXWRfDfMmwXcAgl5oWNoRldHC5ofAsfiIBhuTDslZoa9ITMs/k0J6HMob4E8yjzmvP2Ko0lSe9fiBk7fl/e0C4hZ5jrLlx7W8udBGTFO1fcMRhhTb X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: i73KGC4UPRLvD8+bIkLtkMqSXUkiPLtKkRrNSk/87GNy0B7nFRhkuH3kAouwvOUS8NYaLdbrUW5Ro8unopg1AoNy8VaN1is1cfIjbOQKmEd8zzN3l0VbJbyc68OLanA1PTl/pW1X52oOwP3Ym5Avwg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 860e8b2c-af92-4e67-60d2-08d96e282e68 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2021 15:41:50.8554 (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: AM7PR03MB6532 Subject: [FFmpeg-devel] [PATCH 09/13] avcodec/frame_thread_encoder: Don't shadow variables 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: TkBHvt5YlsgK Signed-off-by: Andreas Rheinhardt --- libavcodec/frame_thread_encoder.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libavcodec/frame_thread_encoder.c b/libavcodec/frame_thread_encoder.c index 8f8294374f..219d65cce7 100644 --- a/libavcodec/frame_thread_encoder.c +++ b/libavcodec/frame_thread_encoder.c @@ -200,14 +200,13 @@ int ff_frame_thread_encoder_init(AVCodecContext *avctx) atomic_init(&c->exit, 0); c->max_tasks = avctx->thread_count + 2; - for (unsigned i = 0; i < c->max_tasks; i++) { - if (!(c->tasks[i].indata = av_frame_alloc()) || - !(c->tasks[i].outdata = av_packet_alloc())) + for (unsigned j = 0; j < c->max_tasks; j++) { + if (!(c->tasks[j].indata = av_frame_alloc()) || + !(c->tasks[j].outdata = av_packet_alloc())) goto fail; } for(i=0; ithread_count ; i++){ - int ret; void *tmpv; thread_avctx = avcodec_alloc_context3(avctx->codec); if(!thread_avctx) @@ -221,7 +220,7 @@ int ff_frame_thread_encoder_init(AVCodecContext *avctx) if (ret < 0) goto fail; if (avctx->codec->priv_class) { - int ret = av_opt_copy(thread_avctx->priv_data, avctx->priv_data); + ret = av_opt_copy(thread_avctx->priv_data, avctx->priv_data); if (ret < 0) goto fail; } From patchwork Thu Sep 2 15:41: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: 29966 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp401444iov; Thu, 2 Sep 2021 08:43:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxPadsdChK09AMQzxTw4uqVVxWixwfUTUhduxDnzymek0BXcHU8N9ENUISP01e+K5T53NyM X-Received: by 2002:a17:906:3708:: with SMTP id d8mr4578999ejc.310.1630597435083; Thu, 02 Sep 2021 08:43:55 -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 z26si2691563ejc.230.2021.09.02.08.43.54; Thu, 02 Sep 2021 08:43:55 -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=WbtQIxbK; 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 C1C9568A6E7; Thu, 2 Sep 2021 18:42:08 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064055.outbound.protection.outlook.com [40.92.64.55]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6CAB768A628 for ; Thu, 2 Sep 2021 18:42:02 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n/TVYxgquYhbAgjrLUDNKv/qJAxLcz0HARRnXo2L6yXTc45Mc3msXSC4Qis1ikn/iPSogQqKUzEBabcPv9BtBK5a2a03nqGKMB4O8yI56l/WSvoSYIms8LbFjtpHjlmbhchhqqcgisdCToOwwWOgrCFG72IWJEBAip6H6yzmxVW7OjMi8x89q99ucC9noDFJ9Ve7IOQU9ykh3hOXXBjP1Pf5Nzve0Rqd9p3XslUVoTZE7VgaAM5BSc20ru3ZZbZu3K1if3L5UQhjkcAdYziCI0TG5VGHByN10UAm148xF4tbKcp+9/OY7td9QO7bdDN1+dctA/BTun1Hl+VktSbLTQ== 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=JcmskCyF4GP3XGiQ3YDq2guJhXsANNXS/qlwL9hQA+0=; b=DcTAYQuoJq9VQy6oXslFjNJP/3R4DccwbQtVcn8C+ZgEnEfaHNlE/EY2U33kuPYbmGNuWCQCNmsKoQTV+o3PxUy9GbUuFpjMHeaczCMl/ROcC4slfv+IqtJ+RZE3OcHhKzVzYdSZ7710PurHaR9xNpFixr79+xg1OoI5nZWk7wV5L6aCOd5OPzoqjXdKiGLScfkgb9sPc/OaANbq5oIbd1/XQRPH/der8kulP3Y7rlXRsPYXr9fuD7xS3AR21//XpaFqScQh1wA2eAyR+Luz96dYHZvSKUz1hO8C0UmTFZZQ1fZhqvwOMy1sg/ZxyHhtDWL8hlsLuSLuCp7aI9MjXw== 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=JcmskCyF4GP3XGiQ3YDq2guJhXsANNXS/qlwL9hQA+0=; b=WbtQIxbKzI1PiNuevl14rNo59OkSm+moSQRdTh1s5ewwJBDvY4U+xsJOWAS5TAwBH8NH4HxeniXuNpkdKXYP86qXBUJYMZexzist1wlFjY+7+fpy0YLSo2ct2VH4FAKW/PP8O2LjAoKL1PHuUKOYEvM1JKZkrg6vi+aWBRRFiKE9TTuuEs2eETervTawHPh0gySoZfdVPf+dSTOfdFUWclG0QTIWkkTf8nJK3QKENPKQZpHqCNV2rnBr5HzJqUqny9Bi6TheoMN7gvnHdce8cpqQj2/XyVlR2gxy4utUAMMf9XWiJ0ZLy7CIEdVJBqdlri674oMRq+lP6h6Xxq8XLg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6532.eurprd03.prod.outlook.com (2603:10a6:20b:1c3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Thu, 2 Sep 2021 15:41:51 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Thu, 2 Sep 2021 15:41:51 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Sep 2021 17:41:24 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [/3yEpt1edN9Pgyhe4rwlMZrsGx9ZOzla] X-ClientProxiedBy: PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210902154127.2571616-9-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.20 via Frontend Transport; Thu, 2 Sep 2021 15:41:51 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a3461d32-14ce-4b16-f8e9-08d96e282f01 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UI47HzvBIDxi1MyuBlz6AIUMLYT2iYSqZDHGmX5QmQght46p/pEA/2xMGW1nN53w3Eyfv7Pp0pkJJuVJu0tGyLgdf8ppyDKbaDeySduRrt5ocNyaW7k//n9YjCNJEr4NWRro1gXxWzLFsmQg148NizAiO+nBgkvQRP8iVVyPynNgF/NLppkrZCVJmyOjGnLbYAI5cxHAr5qrygHTFm4flcq4xlbCmP/darY0K0D+1MD3FJRI7e6torM+lQH1GfrjDsywOtPt+T4r0L2oORiYVpLlhu/Faygpq1crv5GAeENxuP3qcmQU8qYKGEDwYLt9C+DA3HKSjoOHeKRtwhnPcvnl+emuGriqVkmajqYfQMJx/Jxf0UEtt/lupKl2SvwEuX+zs4dp5OHQaUP7hC4cAFv0ui3Nmr9I7dYJLUpTXzmgvCb7fdXs3RUDMJjox8AIQdcwarNukYZNmbW1a+IXDLyZOfFR7FpU4jXWdWJCUZlENcpNxADoS1npotkS8BAFtFh92c3MIeMXvCe8S4hzYS8qimgoIyfXhH6rLbrPxiQst+HXcpxPmWIDbmuSh57ZxUC123tST3b7k4W4zQksvC1qMghkGk8n8IS8ED8YUj4kKWDsaVKcQ0+/mLxfS7S6YQEYc8Ijtfh9Kg9m72HMr/fnnHzUUzlcV01pd536uvq9a3wGss0jGKlyyoNDnCK9TjTxhADoKHRGQ== X-MS-TrafficTypeDiagnostic: AM7PR03MB6532: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gpkyxeIdokr9nxQF0satD6KgdOtecWhBsGUzKVJ+iXPGn8joSyZ5jo0O6nJ1uJSkLIXH0YEr143zarWb8PHfCJhPZhS2x/CESDVbQwzHsFZnDHzL/Eb6ThI8/j7WahF4GEdUDbD2QldIAx1Hr2c5vX/A7mBXAljY+HNqm+qPVR22hZoIKbKFy7H2p8oYIddFikdoVZspei11rkGjvImrkSZinYiWHbG7aGUkKrCrEMsqruxl92Ii9XiLoW3FrughmSI2e2xtz97jZuxh/900GipODQzZVrgczZ4GRFEUDLwdm4qPyLVuyBJXV/S5nQL6bAB1hdbmFpTeQ807glPbPfZ+8TpeWzup5ScMbO2basIqaRL6+VRMFN/xPs5LQQM4L24A9524x3gc6OoesAIvkh+ghCAitRe7wXiV2/vSpTjZJ+CivlIdPKAqkX1iSlUb X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2ICvfTTnfUeguYaJnIC70BQ1U+dGytv9r/xy5Go4YK7ERWbH/JK6TKRz+XBF1nKfc1quUQvI5M+I48cfQ5WPfl4GICljM2rXAc9FtgZ9u9ad8R3hi9hOnBjmOqecEU0wYGJQre9JREMq5UsZbSzu/g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a3461d32-14ce-4b16-f8e9-08d96e282f01 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2021 15:41:51.8958 (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: AM7PR03MB6532 Subject: [FFmpeg-devel] [PATCH 10/13] avcodec/frame_thread_encoder: Return proper error codes 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: J73GWFN3zFjq Signed-off-by: Andreas Rheinhardt --- libavcodec/frame_thread_encoder.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/libavcodec/frame_thread_encoder.c b/libavcodec/frame_thread_encoder.c index 219d65cce7..e9a5a146ca 100644 --- a/libavcodec/frame_thread_encoder.c +++ b/libavcodec/frame_thread_encoder.c @@ -202,15 +202,19 @@ int ff_frame_thread_encoder_init(AVCodecContext *avctx) c->max_tasks = avctx->thread_count + 2; for (unsigned j = 0; j < c->max_tasks; j++) { if (!(c->tasks[j].indata = av_frame_alloc()) || - !(c->tasks[j].outdata = av_packet_alloc())) + !(c->tasks[j].outdata = av_packet_alloc())) { + ret = AVERROR(ENOMEM); goto fail; + } } for(i=0; ithread_count ; i++){ void *tmpv; thread_avctx = avcodec_alloc_context3(avctx->codec); - if(!thread_avctx) + if (!thread_avctx) { + ret = AVERROR(ENOMEM); goto fail; + } tmpv = thread_avctx->priv_data; *thread_avctx = *avctx; thread_avctx->priv_data = tmpv; @@ -227,11 +231,12 @@ int ff_frame_thread_encoder_init(AVCodecContext *avctx) thread_avctx->thread_count = 1; thread_avctx->active_thread_type &= ~FF_THREAD_FRAME; - if (avcodec_open2(thread_avctx, avctx->codec, NULL) < 0) + if ((ret = avcodec_open2(thread_avctx, avctx->codec, NULL)) < 0) goto fail; av_assert0(!thread_avctx->internal->frame_thread_encoder); thread_avctx->internal->frame_thread_encoder = c; - if(pthread_create(&c->worker[i], NULL, worker, thread_avctx)) { + if ((ret = pthread_create(&c->worker[i], NULL, worker, thread_avctx))) { + ret = AVERROR(ret); goto fail; } } @@ -245,7 +250,7 @@ fail: avctx->thread_count = i; av_log(avctx, AV_LOG_ERROR, "ff_frame_thread_encoder_init failed\n"); ff_frame_thread_encoder_free(avctx); - return -1; + return ret; } void ff_frame_thread_encoder_free(AVCodecContext *avctx){ From patchwork Thu Sep 2 15:41:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29965 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp401805iov; Thu, 2 Sep 2021 08:44:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzO4il7JnGk4lA93DusmibQekYSR6XXIjW3LeBHp6B2FVm3sXk3Mup8KXbSgjqYQs3X/s9f X-Received: by 2002:a17:906:3548:: with SMTP id s8mr4590570eja.185.1630597461869; Thu, 02 Sep 2021 08:44:21 -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 s23si2313702edw.173.2021.09.02.08.44.20; Thu, 02 Sep 2021 08:44:21 -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=KkamxqU4; 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 702F768A718; Thu, 2 Sep 2021 18:42:10 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064055.outbound.protection.outlook.com [40.92.64.55]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8F8FD68A62F for ; Thu, 2 Sep 2021 18:42:02 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hAETAwotTVg1rgGBTNZM0aaZEfBKj1th7l4CuDkWOqVp0LcaZ7prLRvV3ZMNpvN5k3qYrbh3PdgckgQrDa7rbQ2/75ua8zAw0smlLttz9KuqLINDVIG0OQWcULnf0QoUJ48w8+aGObnzAK1IR0rvP5q4ryQ/0WSNiT2DrmbbF9xw0aKMM8JI9cRXSAtw/dFgiewPmhPyC7JC6ELluqQouN1/3/Mf7layHVSwEu+oU890e2XObpq2bh2IUyyuOYAU9lhCR6X6uQwnAK3dpSssjZeS/jOODjb9rhvpjZRhzsZjna5EjlcMq3t8Oe7hdez5hfT/2xZy5QvJmvyIYk8Pmw== 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=IyDfxGvRj8PkXsWIpGO5ysXSyd1q1AkVt2mywIMeGNk=; b=RWin63pAmhwwyyNiKl8yMVExMg+IzZaebXQHUzPAJe7KzjoLziK31aGAnV8DjLvEfr+jwGfliff1xVWSPk1OPj/jibhZ6EAQN4fnV8+6pjMmVuzAsoLUaWSaMo9JbqhVFGTqxDuzmZoMqC3u7JLUBDXw/oMRUR8czATJ7sanF395Jjv8umuD+mk91Mmbjmayo/OBFm2NaWXIxgN6mJVjMFljt1m5/epbwqpxpfNcKKjR+iwcLkiy2HOiehPdk7nBt1EKnTiPhvNILvWBp7DTLvd5Tc5L91hup1dRgTW3leXM0AyCHtTt7RM6e5vO/olxlt+P2cVhhX5L7Ko51AmI3g== 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=IyDfxGvRj8PkXsWIpGO5ysXSyd1q1AkVt2mywIMeGNk=; b=KkamxqU4LDGjaB4OqreY4ZVSmBQhEFrdsx16KewHdDu9iabp2PMz6aoXxwyHgx1WsIJ+JzamRiNKByYMZSg/jKN/KWCunpe2a46vDhBA6eqz45lqzIaiisdkqfP/f53y5IEwbmJrjo+KV+BzfXYF8TDmwTXsKo4sl6r+3Tu+RkMvyqaLjd0PuKBXRIlVVv/U2gHa6vD2Xjro4qvKiVwNxq/gExEvqty6tQioIcSV8wx5msZrrqNVALh7aTkZrTBIvpHValIt0i3OFceJUhS18douZxxXc/STbQ+iTw/2dUAxcPqlMGMdj+kdy6REWxa3eARULWu1ihd8tVXqDud6ng== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6532.eurprd03.prod.outlook.com (2603:10a6:20b:1c3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Thu, 2 Sep 2021 15:41:53 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Thu, 2 Sep 2021 15:41:53 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Sep 2021 17:41:25 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [JrKrSdFGewQuha4FpISQQarkYAE3Mc6A] X-ClientProxiedBy: PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210902154127.2571616-10-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.20 via Frontend Transport; Thu, 2 Sep 2021 15:41:52 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4d0e7475-f663-46d0-f67c-08d96e282fb2 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNW7ZO6S4gJQgEvgNWj+v++j3L6In/t61L8MrYRFf0Szlb3i4FaqRTe0XrGRvwMc3ivC5uvB0QBHQ3aNQXKidCfbuL4VVSWTFicDCtqMqTOXhNMWOT2uQyO3ne7v2yJjTpmddz1gok3nBpJzcP1fm1o/sEL8p5Sx7u2K3HLxUHF3LwvPfurv8cixTmtzIRHOEq3rFUXKUVmQEioVqhoXqGzJ/YaUJdK80fXBPtKof2tKIGzu4FPcx+/OobLn757YEQQEXzBa3jlB7uV+4xYwmg9Z6EmiO4HqxsYwOKNAeYlooxWxuvkEdYRlgYAAo+InbVRPHVRRWzqTnc2OYvicwUp9jTds4fle8skoEKGROz0teXkhhQEVcpsFuvK2A7s8uzoG1h47Mi9KTV3IV7676dCjfGf0hswNKFxsd0H/Jecoa30dTpTmXEze6vss+6e0XPeC1mLdSDxY0644wF/rbIrM02/3KN/RFMojlh1p/vO+CBHNGPf01H9Q80nY/0Y2xUQ4I/hV8DRrz4XBKyE7tzHtL0Ip5LJWkqXjq4YQkVXXOqHnhKggZRO2U6JDAL8G61E8nRpkN6PYbje0QTV9j3+x4oN0e+ii2QI/z6PlGv5vw/LfMjd1C4YNgCD6ViJEaxILLaarGm+T+cw4vQjDWXAL2cLLlseU3XlzJX9OXRByLniY1ABtnaqSGxx6cneAo317d93QFj3q8CcQlNe8x/zX1npl6c1H2KY= X-MS-TrafficTypeDiagnostic: AM7PR03MB6532: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HKnqa/+Tr7phEAYdo28AgcBwe1KHYujr06lGEswU+PvjkMq5V20TleyvF/K5nm8pR/rRmgC1W6AsFWvpgHd+FHd7cFBafOjexlSfUVVM8AY7mYGaxEOrupzzbxTOcnjArskKjHxcTnrK0uCoOgxkwe5681Lo85EJqutMTh+9H+XRx7iMfQvpvrNPWwQKvUea3LWMyWWhqBvnIOuyslekWKHzgHtHJuanfgbmrt0AEPlq9/kYydoniPu+4SMjQjGE3nyuAep/BRNx4aYXvKxRQ9Ykn5vNVIGivx0GDPd3nvsMKEZYJmbfNf8H3BKNn0Ct34GniBPizSI/UHHvDT0LsNUeIEX2h1UTu02swqm3isPimm+JmYv1DiZYJbsxDID9/MShVYSBqcdzfZxqpAi15TPgC9xe3xij8sfDSzVKq3gplk/ifuaZZY3aLKmXhybN X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Vlh9u4UESRfWMr55sX+RxWP703TNYbyISEHGsLZaPZawSLgRq61JwfTM1yLDnSW78eQ8f2A0JhXKlsUGKjJrFquF9wwDjEbY0rE2pkHGG5IX0FRsELLYfjVp0Zog3WGKij513gxfif6F1vdrZrxa6A== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d0e7475-f663-46d0-f67c-08d96e282fb2 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2021 15:41:52.9980 (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: AM7PR03MB6532 Subject: [FFmpeg-devel] [PATCH 11/13] avcodec/frame_thread_encoder: Mark init and free functions as av_cold 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: GWBTnxlVbyUh Signed-off-by: Andreas Rheinhardt --- libavcodec/frame_thread_encoder.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/frame_thread_encoder.c b/libavcodec/frame_thread_encoder.c index e9a5a146ca..d4f86f7418 100644 --- a/libavcodec/frame_thread_encoder.c +++ b/libavcodec/frame_thread_encoder.c @@ -130,7 +130,7 @@ end: return NULL; } -int ff_frame_thread_encoder_init(AVCodecContext *avctx) +av_cold int ff_frame_thread_encoder_init(AVCodecContext *avctx) { int i=0; ThreadContext *c; @@ -253,7 +253,8 @@ fail: return ret; } -void ff_frame_thread_encoder_free(AVCodecContext *avctx){ +av_cold void ff_frame_thread_encoder_free(AVCodecContext *avctx) +{ ThreadContext *c= avctx->internal->frame_thread_encoder; /* In case initializing the mutexes/condition variables failed, From patchwork Thu Sep 2 15:41:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29964 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp400274iov; Thu, 2 Sep 2021 08:42:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwTJM0BbGKXjNE8n/OcNM3z+ps3jiDoefjaQaD+e1IvLL6okaMhGRxf5ki6FpeOaVWdndEp X-Received: by 2002:a17:906:3497:: with SMTP id g23mr4488959ejb.85.1630597344114; Thu, 02 Sep 2021 08:42:24 -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 hr16si2412204ejc.352.2021.09.02.08.42.23; Thu, 02 Sep 2021 08:42:24 -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=WtT71ofj; 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 CC5C268A5F7; Thu, 2 Sep 2021 18:42:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074061.outbound.protection.outlook.com [40.92.74.61]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4FED668A56C for ; Thu, 2 Sep 2021 18:41:55 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=na/SomO+xIP3dolZBmgVrbmx9VCeKMFHK+FK+egaknUF9qvNojQUsM85lwIFAl7LHT14BwGa5EDKxKNNyD+2/hW9g5X+qcOuI9FoAp7deByN0Sf2jvCBSfEkJU+HjH/HrMI6HJTzf2Yglh0w1sRcpZNw7oR+/DZ1FcQqhb09I29YVOZXsQrD7qxs3+v5fHqqtAbtrTz13LK/MvdC6Sepxsp2EEcgGguIyJQbfJhwffZa64nm+Iw1noxycgimGNVOGUKMgDP/RFdfoa3UayPE/TCv5jyLQZzyRcX+aGz45WPtT+rA0uSR6X0aXnBAWzgPufuY+eef79D/qFIyfsaf+g== 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; bh=424dqzrSGF7E3e6MoIvqzIRNLLL3ryWQolh+4CRS/XM=; b=oNi5xeN7S4za47PcS2WdGKXDfO2D/vejfxUuHjdEo3CMrHE8TQpRIXmBTNZY9dW7YlY3zhqBaNIrAut1+rA02pmiTkmcCKUMd2L/ttnPi464xIc4E9KicbV7RT1XjkXqjJYNBIX3eHaNt4+qtgRsb5tdtPkTfBD6Z8OmiVPd+CzLY/xQkYq2/KhcJPIGWAktB4tMgyw27MfqSLb+yKq3j4H9l+6J8N9A3Md4rwB6V1/bio/u3hbffelvMxETpYkf1uBVBdrylIWVOl/EKTlFgUbeXkf66eAME1L1QxDZQyNJE/cNisl0JjEuUugn4mH4j6R+ZfzwfP197MClEuGVcg== 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=424dqzrSGF7E3e6MoIvqzIRNLLL3ryWQolh+4CRS/XM=; b=WtT71ofjl8QFv978N9PQ/djrmJsEjhU8aO+MNvqlSHKX7IrWF9Tdw5UQrC3ZKYrNopJVKGf2wdW0tETUSwo6fAMDgrxMdwvPsry/0JbEGxS5mXf3ExkhXOdmCw28uzCTlkl6Dhn0xyxoL5MJdr27FACB/6uAQtEkdPZH2hh8Q0wmi3GDJru8p+GndayliwXq5Jpzl5JfsyyVRWuDktSDnPZP5NbwulPwa55fmEnFehddA8TftgNmV5SU9f+p8xDosS6tFFcvYdQIlT94C1vLlyYHctrRc289q5Sm8997Mze4pnkU0Lba6VBUXwP9NiV9fn7mkqQiacWWwu1n/akjNQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM5PR0301MB2436.eurprd03.prod.outlook.com (2603:10a6:203:8::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.19; Thu, 2 Sep 2021 15:41:54 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Thu, 2 Sep 2021 15:41:54 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Sep 2021 17:41:26 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [WryGBBqqOA/eKDvuECiG0D/dO1FTv+q9] X-ClientProxiedBy: PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210902154127.2571616-11-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.20 via Frontend Transport; Thu, 2 Sep 2021 15:41:53 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b6d142bd-c118-42c7-a2dd-08d96e28305e X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNW7ZO6S4gJQgEvgNWj+v++jwUl3JxxzG0r6IkKnEvydZb5OnOpX2hygjZE4TyceQIr1pUqcRhfo4HX+WiPpdVz0D3SYG4vSeW7BijOCOgvlmQIu4w919vLxEDbPUBP6Wcko2VQgLLVMhvxDCOLoePRtiaQPoFeDjOPVlnzY8YFYI2wXDlSmhiToZrpJYNwD6J6SsuxMO0ylq7fMDi0Z5pOPLPbA7l6guKuw/CHpsDO+Vgm+9TZF6wXjJIlTr7MJo9DrObH2QWGr5Ox1rfXlQb0lq9HuR6X5508drDZDX+cssv9pDozpNrPD/Qxd1aC/saIwILbgKKT0n3lviek2Hup53Hqbfn2m9zxA7yoduiYae+YoFheFCkRTj+zU0gUUGZ2v6ynLEHzwX49ZxhgRKW9kk38jXC2zTQp6dBsStLoEEImdVvI7ET1cBO29+EXXBkF3GKTQ2RwfeDIPSgmbirJ/u800YFvzkzOec5ZnOz5a/8BLv7S4kOkiosMj4+gahkDhi1avv9Hqi8yFTb3z8EYQ2FCDJonHH7/w858kmZ2/6nII+x9dAc26INdY5e25D+EnXUfrH61WQ+e/94R4T5da6TimldDnj8jnpcLHI1sSkTxK8dK9XX0OvOYcDMd3CKfZ9dfsUziNTL9GuGjouMdx+nt0KlwpkAO7uPAVluoIW3Ph2+PXIrW6v38TQye1RnDomhfuUEuQNDiRBvib/KWs4AIZX9GmClo= X-MS-TrafficTypeDiagnostic: AM5PR0301MB2436: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KlQTKXnlj1DqKcVvT/R84Q1VJKZOdki5brwrhQDgOEpt2z42ZLvB93yoPBH97UszVTJOjVwj/jcG+wX+WJiTDwlag8MWU7+eb/iGzCE60TBX1qEnB6Y2EbDhKFYo9fmYO17/pWt3haIlff4VbRck2REUXVX3OLoJv5wo7NEoanZxgUu03bd1pjaIX5Cs9moqu7bl7gCbjxtZPJtmF6T8LiFlUnk3egLsEnf/ogc6A7UZaD7/0Vjs//dhaFnFv5jNb1nlvu13BbvQFxVOmcOAIhduR/nWaul0iVxIKYgCOmYAKbFdcNTsANy2Q+QViWvvhrJXf4nFOidW7itaVSvWH4/UVpWXsyy16os72Q1mEQqxISb4Xs38PRAzMY8gY1ku+7jcwBJn9IWb7/ip1lvSppRdHImddUeYkXa+1ere+qqZ5kFKaCgnMG/NRYo2xW8u X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: kVPHvS4VTIomNsiu/OH6spFuMk3TfvkT+/fSD+Bk1U3Z9hXpqUidjC/PZ76bgBrt2gs7d4nPqQ2TwqwyOTuOl1D8wD5i5FH+wQ/jR/sKRR1hTTjYa8+6ygc6UtezGjHI6EsbwwkDOQ6Yamc7jVBMNA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b6d142bd-c118-42c7-a2dd-08d96e28305e X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2021 15:41:54.0852 (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: AM5PR0301MB2436 Subject: [FFmpeg-devel] [PATCH 12/13] avcodec/omx: Check initializing mutexes/conditions 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: 8xmnKYPo1PtG The earlier code did not properly check these initializations: It only recorded whether the part of init where these initializations are has been reached, but it did not check whether the initializations were successful, although destroying them would be undefined behaviour if they had not been initialized successfully. Furthermore cleanup() always locked a mutex regardless of whether there was any attempt to initialize these mutexes at all. Signed-off-by: Andreas Rheinhardt --- This is mostly untested: I only tested whether it compiles. libavcodec/omx.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/libavcodec/omx.c b/libavcodec/omx.c index 9597c60057..7086ddd3a4 100644 --- a/libavcodec/omx.c +++ b/libavcodec/omx.c @@ -43,6 +43,7 @@ #include "avcodec.h" #include "h264.h" #include "internal.h" +#include "pthread_internal.h" #ifdef OMX_SKIP64BIT static OMX_TICKS to_omx_ticks(int64_t value) @@ -218,7 +219,7 @@ typedef struct OMXCodecContext { OMX_STATETYPE state; OMX_ERRORTYPE error; - int mutex_cond_inited; + unsigned mutex_cond_inited_cnt; int eos_sent, got_eos; @@ -229,6 +230,12 @@ typedef struct OMXCodecContext { int profile; } OMXCodecContext; +#define NB_MUTEX_CONDS 6 +#define OFF(field) offsetof(OMXCodecContext, field) +DEFINE_OFFSET_ARRAY(OMXCodecContext, omx_codec_context, mutex_cond_inited_cnt, + (OFF(input_mutex), OFF(output_mutex), OFF(state_mutex)), + (OFF(input_cond), OFF(output_cond), OFF(state_cond))); + static void append_buffer(pthread_mutex_t *mutex, pthread_cond_t *cond, int* array_size, OMX_BUFFERHEADERTYPE **array, OMX_BUFFERHEADERTYPE *buffer) @@ -591,6 +598,9 @@ static av_cold void cleanup(OMXCodecContext *s) { int i, executing; + /* If the mutexes/condition variables have not been properly initialized, + * nothing has been initialized and locking the mutex might be unsafe. */ + if (s->mutex_cond_inited_cnt == NB_MUTEX_CONDS) { pthread_mutex_lock(&s->state_mutex); executing = s->state == OMX_StateExecuting; pthread_mutex_unlock(&s->state_mutex); @@ -620,20 +630,13 @@ static av_cold void cleanup(OMXCodecContext *s) omx_deinit(s->omx_context); s->omx_context = NULL; - if (s->mutex_cond_inited) { - pthread_cond_destroy(&s->state_cond); - pthread_mutex_destroy(&s->state_mutex); - pthread_cond_destroy(&s->input_cond); - pthread_mutex_destroy(&s->input_mutex); - pthread_cond_destroy(&s->output_cond); - pthread_mutex_destroy(&s->output_mutex); - s->mutex_cond_inited = 0; - } av_freep(&s->in_buffer_headers); av_freep(&s->out_buffer_headers); av_freep(&s->free_in_buffers); av_freep(&s->done_out_buffers); av_freep(&s->output_buf); + } + ff_pthread_free(s, omx_codec_context_offsets); } static av_cold int omx_encode_init(AVCodecContext *avctx) @@ -644,17 +647,14 @@ static av_cold int omx_encode_init(AVCodecContext *avctx) OMX_BUFFERHEADERTYPE *buffer; OMX_ERRORTYPE err; + /* cleanup relies on the mutexes/conditions being initialized first. */ + ret = ff_pthread_init(s, omx_codec_context_offsets); + if (ret < 0) + return ret; s->omx_context = omx_init(avctx, s->libname, s->libprefix); if (!s->omx_context) return AVERROR_ENCODER_NOT_FOUND; - pthread_mutex_init(&s->state_mutex, NULL); - pthread_cond_init(&s->state_cond, NULL); - pthread_mutex_init(&s->input_mutex, NULL); - pthread_cond_init(&s->input_cond, NULL); - pthread_mutex_init(&s->output_mutex, NULL); - pthread_cond_init(&s->output_cond, NULL); - s->mutex_cond_inited = 1; s->avctx = avctx; s->state = OMX_StateLoaded; s->error = OMX_ErrorNone; From patchwork Thu Sep 2 15:41:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29969 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp400434iov; Thu, 2 Sep 2021 08:42:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx+0eBMzgWTM+gfuTREyvqhyuq9DMaHDIeimP77fqDjVskOstyJsAX8u+ofz0BbHrbT4gRo X-Received: by 2002:a17:906:878f:: with SMTP id za15mr4550333ejb.140.1630597357527; Thu, 02 Sep 2021 08:42:37 -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 n25si2085703ejl.672.2021.09.02.08.42.37; Thu, 02 Sep 2021 08:42:37 -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=ffKMYpbF; 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 CA5A168A62F; Thu, 2 Sep 2021 18:42:02 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074061.outbound.protection.outlook.com [40.92.74.61]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 80B1668A56C for ; Thu, 2 Sep 2021 18:42:00 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gckRuLEsPML21cyDtw/mn55ivG/fnSYddgeQ9VeiYa2rgVXwrPIohctfS0x2ylnNx2e5Y4YWyozDWCzUuONI5MNb5J3XY7mZDeTm04XtVmbOm2uzAtvNxHdMy9BizLMl/TrfQq16R84Bh23EnCMeiUTj15MiPmtd07m0gryEVJtlmayoZpvgjzWjICZaruOn5aaCx5gUbZ0nlui96lULAGBzl1MXyY2lYzKBo/SUEJYGA/4Pb9/EjBiZTFLWeFrCdfJOgmt50ty+ORgSH4Q9YjPaDXMpT7HirR11ProIEXhSdE/3Ctlms2h4AFjKzuUQiXKaVdUpgHFW5OiQPk4Tjg== 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; bh=OU+asJWM85uywzSK5+3s5iI9whYOKK6YdKfO2SqipYA=; b=O4uvervMcOJCTRNggOMYmwZ1PktqTmoCED9wVHVBD4AAo9NXGCuKTCf5YSfLECHBW4eJgQnbnzZMWLcgu+OjO/Mk/0sIEgMohlBSS6jifcv4Do1/CxNg0jBn7/GSsP0uU+0HDOijkDJbYT7MN5JXFtmaWeZpXzADA6vF6Dkz/qHt3IRShI89QNtBmLOXpSqemEQ8aue/Pr9En3yuW+WZA22XuqqX+y2oVLSnmK1IDcRlR4ovB6GJ1smVSwyHx1LtcyCmTm9l83qAVmLyvKHcD6woBLv/ejJyW2vitl834sZTfCf6Gr8Jd8VunlxmLrFGu9TleZC4QOLBtrokxTy6Fw== 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=OU+asJWM85uywzSK5+3s5iI9whYOKK6YdKfO2SqipYA=; b=ffKMYpbF6zDk55SCzqJ9hWor+CymYwK5DWu+KiF5H/DOMouFxy9QzchnuFbur7suChsrFhX0eBEEQpEaVH0Opfp117lh1fR4jCTMQWrb2rsJTczjw6vukjmRT8N1TNUExy4f4ubYH72Wnlz6tpqkgmZpW1qwC6nTQ1TW1gVDnRmM1+Qy0IqYE+KZSiBNqzkKZCsow2fIEhIN67ItjfGJS59bHgpW8kk9QSVgxdQYMTLkqe21+9PqMGmZpkvfKYfQCdBTojTEItbwWoY03rwKPB4EKcOJRMcKdBercS9S7O8ZOA/T3kA9raeVHv9iOlPTuehn4je6VDXkz/q2C4s1Ow== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM5PR0301MB2436.eurprd03.prod.outlook.com (2603:10a6:203:8::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.19; Thu, 2 Sep 2021 15:41:55 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f8b5:1ef2:89b2:f8c5%7]) with mapi id 15.20.4457.024; Thu, 2 Sep 2021 15:41:55 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Sep 2021 17:41:27 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [EnPTL/N1NdnX13xyfNwOO0cIUD5CQZAS] X-ClientProxiedBy: PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210902154127.2571616-12-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0031.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.20 via Frontend Transport; Thu, 2 Sep 2021 15:41:54 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 67c6bf95-de6e-4c34-bfd0-08d96e2830f9 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UI47HzvBIDxi1MyuBlz6AIUdMTW1jCPOuc2mcRG5dlGgVvOXEZOkq5z9OBMIr5UJSgKYfpd9lUIKH+XeMouWI+kamDVWsxSG/GTDLd7TmLGaFlZYE21N5W63LeTw8kPdypSp4kfzgI4ffeThbUwm0t0O2kCuYQssXjD3jdFKREGzg0QlzRijlanjrjtNgaNxYICbfhHXVdyMmgWCmT/t30kFyWlwI4+W7yAm4edkkGwkLpnM28HRgF0VkDcICTELau4j3CiZZVKGQiSycOcxYPXJ2aQfZQhg0cymTvpfYS+L39QBc4WykqXLpFpya4XYN4i70ERj01usk3vbQzGoMPQGRdocMRbH8lETpaIUE5G7h+5c8aARtaIw9Wj1L58sgpbeiz/kOO14ZTqpCYF5/7N5ygBx9kgvAZ4Gugi/24gSBCkPWQq+hsqYZoNGgzZCf6RVJGrzTYrhe7+LU07B3aOrpjboOcQJdwCtxzQQ/kx7Eq4qqP+l2Pk7cFU8acBTOY4nuD45xYTkHYIsXtkGzDVj6X592XKA1ub/r+0VIv5Ekf4ySv6mBy2EfYx55d0xtM9msWG78gLATbPwG2MpuGUY51hOzNJyM3M8LvqtXFu7kVHc/eQcxuGVXBKeA7p50vj+X42t909PSUsRsGD0kfBqE2+DnIZGi9QDulU0G2FmJyb1kmBASj+NaP+bILBrSTGezyf8wjTRg== X-MS-TrafficTypeDiagnostic: AM5PR0301MB2436: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: k/JHa0hjA0NPlCh2vDHxVH4hmWT9Z0EAXxwcUTW78XwBBiROdh/hp/kl5lRg/Cs8UY+BP1YA8gYagY7yWn/RUK8Iin0JxNQtoZ95Orq1BOFf0Ju7BY8q09w/clW6meOA2kYQcUWHaImTfWSSYdMGnDUcy/LxgcKtvCGKIeug3oH20/pbVmakY7OLmT+h0fWOVfPdQAGZiueF/IiSPK7+B4+KWCNa1FI+N1Yr4mUpC9G+tyeTN4S0kuQ8yQ7sT8uqhbW1xzXHmgB4OMPFaPW/l5RJVT7R2r3Car2AC6H67AlK0ieBFToSNgIb+DvTJrYwsUY9Nk32YZdKuQNdSVrw9DxEVCu+JxAjMawIz4u2Cipef2MNrYPKUh3Le6BEo34V3S8TjU56VWtGZ/vscBX/BP35/uBLHgxvOdDwvQoTaEIYo5vp8fWzCN7JwqCoWSGy X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LuhrZezSQ5orzr/0u8enzMG3cAdNPJyZJjfdBNUlIiwTGmhCWfvhJD7QFdEdv/JGn2EulGqLqdW+JK6eVNdKZ+ROvKSac1bfad2FmHe8Q8szPBuJRKjFLihgH1et18dClOx+9fT7tZbLv2BSb9RuMQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 67c6bf95-de6e-4c34-bfd0-08d96e2830f9 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2021 15:41:55.1476 (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: AM5PR0301MB2436 Subject: [FFmpeg-devel] [PATCH 13/13] avcodec/omx: Reindentation 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: PBWhOSaeg7wP Signed-off-by: Andreas Rheinhardt --- libavcodec/omx.c | 62 ++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/libavcodec/omx.c b/libavcodec/omx.c index 7086ddd3a4..4078ac84a4 100644 --- a/libavcodec/omx.c +++ b/libavcodec/omx.c @@ -596,45 +596,45 @@ static av_cold int omx_component_init(AVCodecContext *avctx, const char *role) static av_cold void cleanup(OMXCodecContext *s) { - int i, executing; + int executing; /* If the mutexes/condition variables have not been properly initialized, * nothing has been initialized and locking the mutex might be unsafe. */ if (s->mutex_cond_inited_cnt == NB_MUTEX_CONDS) { - pthread_mutex_lock(&s->state_mutex); - executing = s->state == OMX_StateExecuting; - pthread_mutex_unlock(&s->state_mutex); + pthread_mutex_lock(&s->state_mutex); + executing = s->state == OMX_StateExecuting; + pthread_mutex_unlock(&s->state_mutex); - if (executing) { - OMX_SendCommand(s->handle, OMX_CommandStateSet, OMX_StateIdle, NULL); - wait_for_state(s, OMX_StateIdle); - OMX_SendCommand(s->handle, OMX_CommandStateSet, OMX_StateLoaded, NULL); - for (i = 0; i < s->num_in_buffers; i++) { - OMX_BUFFERHEADERTYPE *buffer = get_buffer(&s->input_mutex, &s->input_cond, - &s->num_free_in_buffers, s->free_in_buffers, 1); - if (s->input_zerocopy) - buffer->pBuffer = NULL; - OMX_FreeBuffer(s->handle, s->in_port, buffer); + if (executing) { + OMX_SendCommand(s->handle, OMX_CommandStateSet, OMX_StateIdle, NULL); + wait_for_state(s, OMX_StateIdle); + OMX_SendCommand(s->handle, OMX_CommandStateSet, OMX_StateLoaded, NULL); + for (int i = 0; i < s->num_in_buffers; i++) { + OMX_BUFFERHEADERTYPE *buffer = get_buffer(&s->input_mutex, &s->input_cond, + &s->num_free_in_buffers, s->free_in_buffers, 1); + if (s->input_zerocopy) + buffer->pBuffer = NULL; + OMX_FreeBuffer(s->handle, s->in_port, buffer); + } + for (int i = 0; i < s->num_out_buffers; i++) { + OMX_BUFFERHEADERTYPE *buffer = get_buffer(&s->output_mutex, &s->output_cond, + &s->num_done_out_buffers, s->done_out_buffers, 1); + OMX_FreeBuffer(s->handle, s->out_port, buffer); + } + wait_for_state(s, OMX_StateLoaded); } - for (i = 0; i < s->num_out_buffers; i++) { - OMX_BUFFERHEADERTYPE *buffer = get_buffer(&s->output_mutex, &s->output_cond, - &s->num_done_out_buffers, s->done_out_buffers, 1); - OMX_FreeBuffer(s->handle, s->out_port, buffer); + if (s->handle) { + s->omx_context->ptr_FreeHandle(s->handle); + s->handle = NULL; } - wait_for_state(s, OMX_StateLoaded); - } - if (s->handle) { - s->omx_context->ptr_FreeHandle(s->handle); - s->handle = NULL; - } - omx_deinit(s->omx_context); - s->omx_context = NULL; - av_freep(&s->in_buffer_headers); - av_freep(&s->out_buffer_headers); - av_freep(&s->free_in_buffers); - av_freep(&s->done_out_buffers); - av_freep(&s->output_buf); + omx_deinit(s->omx_context); + s->omx_context = NULL; + av_freep(&s->in_buffer_headers); + av_freep(&s->out_buffer_headers); + av_freep(&s->free_in_buffers); + av_freep(&s->done_out_buffers); + av_freep(&s->output_buf); } ff_pthread_free(s, omx_codec_context_offsets); }