From patchwork Sat Sep 18 03:40:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 30336 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2785955iov; Fri, 17 Sep 2021 20:41:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz5SI6Y81K7LYE5EUDKunYIg6XbKChfFlasRjpd4rNZrVrWCv9M4u5pG9QkrT02qWUGJ6++ X-Received: by 2002:a05:6402:198:: with SMTP id r24mr16497096edv.93.1631936466860; Fri, 17 Sep 2021 20:41:06 -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 bc12si9207262edb.480.2021.09.17.20.41.06; Fri, 17 Sep 2021 20:41:06 -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="gUq4z0/P"; 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 0966768B186; Sat, 18 Sep 2021 06:41:02 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075040.outbound.protection.outlook.com [40.92.75.40]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5A4F668A9CC for ; Sat, 18 Sep 2021 06:40:54 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MhUwvV+w4jONrOs2VsSjyfUfsHGlEcfbuT1jKlepXL+JiWFuIC7X+x7HP+QwSCJMoTVmgnB6nW/fb73odRVXD/X0dTQD7IbtSrJomHhu6tIrkzinGobfkEyaNY7rYkE5pHdIxUigmepGZ1xXvEPQ8wXHA2FeKzrdQDb6Hw2NVGeHsg+ROQKAzff6Swbb8IULbJVk12eaEg83oDJuugMXluDQwd6cewHM4cDUqfykXbYBBLDZdWbYmHLdYQFzYm24BXCyfRvTuVIWPL7wDP9N3KkBroEMG5PadTD6/5evpo5pSGpxcvFd/RBY1x2XnaeJmTJgHPYjY4RfZpzE1mhA2A== 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=zq42JOURlrYXsuUnCmIackW/DaypqQd7GXN/SVvBx54=; b=hYdV+HnFjEPPeKtFUiI29dMr2Tr2nOZ/xZ3X09ZnfHpZp6fbic8syfSPPQvwBkHpjNXG41PWluJUTV9oRS62xoWDyeVmj/dAuoWCVN3AyVC/Bgumej0VZQTnPT6Q3LeoeDzmxoWlL3P6O8pF9JmOefNoPJmoEN40xLdQ7f+Ig/lulGibhRqdQW0ujIDQJc2asVKFEzy3jg/J2G1Nt06/ES7D8ZQ9ziIpC3ZYsySILIR7Cuz3DA32T8C5pt9KLySXxxJ/lTnGnyrs0kAT/tG3F36ZIfsX+hW7XstbjYBhjIa+hyKmaW0KorUunHuWIhkM+kdCHlWM9NYzqLnrfonsLQ== 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=zq42JOURlrYXsuUnCmIackW/DaypqQd7GXN/SVvBx54=; b=gUq4z0/PHhnCdUQ4BYtYB7mKl2Qt0o1RuwTIF8WX7WySEZlCI9RJIRafoMJddHhRTjOTmVw080DsxfvZOC8EbPzu1O3LE/vAqQc7QT0le4y6mrpA8dbXbQCdmvTrp0o0F1VBR724mG2dSpiClXBFFY5q+rpMtrJn+A8XLzHRWin1F1di0UA8nKhrLpAiW0kYkdBo7cAyB19ePATICMfLjcgkmhBID7Fd8TJ3mrJE/pstocdsv8dN+3XQ+Dh4YDq4mjLnBmzTwhI3GcpuDzVMdtjcBOGMB9eU7ywXiEQFz/rf+Mf0g/fdfwsVIdtXutrjqEDyD3s4abVyKfvjN6KqGA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB3958.eurprd03.prod.outlook.com (2603:10a6:20b:23::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.18; Sat, 18 Sep 2021 03:40:52 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::787b:2156:ca99:fe00]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::787b:2156:ca99:fe00%3]) with mapi id 15.20.4523.016; Sat, 18 Sep 2021 03:40:52 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 18 Sep 2021 05:40:41 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 X-TMN: [hKQG71XSCpvFniMqkRIdRIym48KhEivN] X-ClientProxiedBy: PR0P264CA0087.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:18::27) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210918034043.1325980-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR0P264CA0087.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:18::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14 via Frontend Transport; Sat, 18 Sep 2021 03:40:51 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 94fd62ca-04f1-4127-f06d-08d97a561cad X-MS-Exchange-SLBlob-MailProps: EpEO96k6Wol7u7rKrWAHjlkRuuJcqbbaYF5yvLixVDtt3UprCY5gkBB/x81UAnibeRF/aZmMTzjIdt82yyX0kI2WyXBO4CGUVahkoBxQMMbHj2ZsIuQoi6TnlYhFMkBMRxKHuLTocRJ9Vsfp+k9wz6nxiVBtqlhy0xSL6E1odz2F8AG267yT0lDciLR43KiFPvNTaPCUddu+7FnMhPS7OxlN/HwC5K/cjbPWKrUlzjRRwhOcpbuB3UugIVMeQjfgY7Wwc7xYbZx008yjP/KOhdQ1xiafYvAhSlawzw7SphYQz5bcfgBgqTNLrXyp+FdxdkO3JlR3ZI3EeLV5hytSugX8m0RLUTq68DZX74T7XaXM93ji/8i3nQJNq2YgTEg69MxH5YEO2cV1tcGA4fMAUSCp5gl8jM5T42VMFMB4GGojgCJoFojxj5uKR6+6JBCOLrEu9X7bFdDOJPgrQS81yXwyVtCh2EO4i/4eDIHLW/rZOo3btsnmj9YFw9p3gJgx168jPtHwYZxjGY8lYsclWUSSLx6HGyleDrqzBOCTmb8Qx4zupoPugAEuGk7quA1EWYonADDkuYShFZCb9oxR2a0RiH6kkV1G01Gv1wgG2G7UzOTu9BSRbE5HhFtP0H6WoBHA7FQKDclfVbdw7fbP2zExTzJKaHe/qzLTbBRjWr7i4pw2fK9oROR+nbERPp5Y46QqBL0OF04fiJNS1yFAncXkCRpe1UuP2hXruHJE3SwyidukIVM02DRAnmRnhImUhKDgWyIn9Bk= X-MS-TrafficTypeDiagnostic: AM6PR03MB3958: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OrMeEUi9ZuM3KZuLEj2ptzHVVzMTfulfucZJu3F2Fb4NKw7pBawpNNjEu58T/ugCGr1KJbvh067dsUw99/I4ahj+tWkvxO4iG2/1xstYl3VHJQqhyVhoWI4u51maK3Q2vuDhzHtDEb41+lYc5LOKQ2naw8OVCucMlF0cLmMkQnWdjC/+ZpvlDeXcV5YSLcDyIwebcJz2Cw+Fj2U7TU1+zG0JRpfv0ThCbJ40T6tWW9S2u+Pjn1OMp0arNn+JKhOdzBMcm0tosZRgwqojbalejV2qWVlqfL80h+e+PMz8MiR3CE1UkgTC4aF4qCnYi+hJHRkp+GBt2D+lMr1CPmuUKJ2mtqyr4ujxwmQHkZ+y5Kd4pD33+e7FOwAjw1YQFp4hQ2FXaeUN+rGMmMcWgWJLAA0qTBi0DNMB2G5w77QeoYPODt56oZVr5CifptUzZ/ry X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: CmyX+2vhGVi3XTDPbZRHKxR5JuExQkcz7bDpDRA2daSpjfLv7I9MHLOV7hwfCjgBrIt+ITfGd7t33XAKby1M189eHS6j8Ri0sTxIJwZfoJqMkQ8SOHsx3eXxcm35xizaHxTFibuaykVwOAmru90YqQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 94fd62ca-04f1-4127-f06d-08d97a561cad X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2021 03:40:52.4498 (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: AM6PR03MB3958 Subject: [FFmpeg-devel] [PATCH 1/3] libswscale/options: Add parent_log_context_offset to AVClass 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: gvT6EbZPlFRb This allows to associate log messages from slice contexts to the user-visible SwsContext. Signed-off-by: Andreas Rheinhardt --- libswscale/options.c | 1 + libswscale/swscale_internal.h | 2 ++ libswscale/utils.c | 2 ++ 3 files changed, 5 insertions(+) diff --git a/libswscale/options.c b/libswscale/options.c index 4b71a23e37..f6ea9e1f9d 100644 --- a/libswscale/options.c +++ b/libswscale/options.c @@ -91,6 +91,7 @@ const AVClass ff_sws_context_class = { .class_name = "SWScaler", .item_name = sws_context_to_name, .option = swscale_options, + .parent_log_context_offset = OFFSET(parent), .category = AV_CLASS_CATEGORY_SWSCALER, .version = LIBAVUTIL_VERSION_INT, }; diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index fbfc08a89f..0d60dd2e6f 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -301,6 +301,8 @@ typedef struct SwsContext { */ const AVClass *av_class; + struct SwsContext *parent; + AVSliceThread *slicethread; struct SwsContext **slice_ctx; int *slice_err; diff --git a/libswscale/utils.c b/libswscale/utils.c index 25051ead72..84a29c4dc7 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1214,6 +1214,8 @@ static int context_init_threaded(SwsContext *c, if (!c->slice_ctx[i]) return AVERROR(ENOMEM); + c->slice_ctx[i]->parent = c; + ret = av_opt_copy((void*)c->slice_ctx[i], (void*)c); if (ret < 0) return ret; From patchwork Sat Sep 18 03:43: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: 30337 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2787180iov; Fri, 17 Sep 2021 20:43:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwRymQ2P2FRPk8EtvVJQY/kMgyQFsiYAz6jq70cKckXPMJbNDo2WKpOywgOLf8MRZ80jEPq X-Received: by 2002:a17:906:b886:: with SMTP id hb6mr16214864ejb.193.1631936626389; Fri, 17 Sep 2021 20:43:46 -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 s6si8621880edd.0.2021.09.17.20.43.46; Fri, 17 Sep 2021 20:43:46 -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=aEYArBJL; 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 53D8E68B1A8; Sat, 18 Sep 2021 06:43:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073107.outbound.protection.outlook.com [40.92.73.107]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F2A0E68A82A for ; Sat, 18 Sep 2021 06:43:35 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OUx9fXDdjsf9tf52pxed5CpfwrH4+BDdlbRNVsFFIVtsA3eM05aAMVPXKPraTpOc9VaKk/SU4O1/r74c+XK9t30SpQr/aaYaq5q9uBqp9EULNLAnYsYVfNy8QrKT1YqLlPKSKYyjERIbpsqyff/5VA8Ak35kr4qAa920VVZxCWaLNLpsfPfpluHi/VaIwklJhkExSW47MERs0G/s70Np4n+Er0vklYNQn4WqLUA1kQdSWASlA3tKtkoWcQyKm1kJkl+/qqXPpn/yoq2O45JIbw8yFCXanP4u59FwRIxuHVOxRPLXzCWXF5lLwWuUq3Evy7vQvOeiU5BoRjK1lpUCMg== 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=sPROaSo1bhHuBxhIWmvbfHNYSBCWs9otXJ+WnYQxM/c=; b=JomzteDV7v3mifRLXQ/AdLVzqEDYl+XAFWH1xwiSw+U1yl13ofVwOk8wgVvTchoUU1QkvVV0TArlDfeLRC4TrZflNHhjc2VrrZ8y7awcFpjNZMoR4AnMwZK0+UGLbDSHiu/1O5HwW5keghztY8CIoyRzEu7jZ0t/GMHAVsWhEr7AwJB1hdvxoxIUHS/bBRSFVd3IFeUZ3S/gnrhFycsI9nuZSLnjZtN1IgOCljZL20paQdOyhnYWNn/cxc/PJ09leXJO6V+i3YIdusDE/HCUBlnes/8SukHgdVC2UfR8YeaPBLHO8FkpXGRp5sz+i42M4eO0zGOZdQ2J3jE0qHFwew== 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=sPROaSo1bhHuBxhIWmvbfHNYSBCWs9otXJ+WnYQxM/c=; b=aEYArBJLjUrfrfAxIjGkpPzhf7RKvmguBDs+Fwg6mR+vttyxtAIcHGz+rev59coh9QTXCgoai8zVV9D3nadJDyXyFsJ1EvtFd3oUCxKE38WGP51afnlROZuYw6HqritN6sDzJRAhKgS1OW1xs/AXRPfhsG025eHIykrGxtfiX4Vf0Xp0Ipvwpmc9YeT2Cag/utcLwVvnC8ZzKHPpDj/Gte7BQj0RQzLTv+3Q9sK34W2LSEvC0L6mcOWgQjsCR3uewtjR2PoPD1DNH7mfBYEe1Dz2yZwvZzf290acc084hqj95ONdJi1fLG+xpkKK3lppqLniCFmWDR/VUYt7WIy2Cg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB3830.eurprd03.prod.outlook.com (2603:10a6:20b:24::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.16; Sat, 18 Sep 2021 03:43:34 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::787b:2156:ca99:fe00]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::787b:2156:ca99:fe00%3]) with mapi id 15.20.4523.016; Sat, 18 Sep 2021 03:43:33 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 18 Sep 2021 05:43:25 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [SqvqDEisi7uD6473RQt5TmDWFCzqyV0S] X-ClientProxiedBy: AM0PR02CA0115.eurprd02.prod.outlook.com (2603:10a6:20b:28c::12) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210918034326.1326057-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM0PR02CA0115.eurprd02.prod.outlook.com (2603:10a6:20b:28c::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14 via Frontend Transport; Sat, 18 Sep 2021 03:43:33 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 965d8818-193a-4d08-851b-08d97a567d42 X-MS-Exchange-SLBlob-MailProps: EpEO96k6Wol7u7rKrWAHjlkRuuJcqbba7hdTbm2cYD+D/R8GCmAOI2dIvO/PXxD3ZyDOEiF+SADhmZmd0JKTMh/rdg1sMbQMNyO28tGF9Hnr++u2ZfSHUd8eWA3mkfgJ40/fUCd1vTjUBk3XIWPcotQ0BrcKtoNLjv0yEolRSlH5wJHvcq4P1Wk/yF046n31PdTSFxw/UNEhC3tj7/vrkNxPDARYPd3geUgbcHXbU9jph+XXGQ/A13NXeB3DGrXsJlRWOM/G1hTzuPSm1dA1ThF2c+hTUOhKC4JP01XwLuUOuYRCeT2VcXzHkiZyhPnV9KqAovYTjtWrarkV9zeevzZvItMyNNwu9juBSu1LNZuKsy8tymMdAWUtxMPYvlJgF6R4YJ8wj26+Ls0gB2vg+QJxfV+q2IoqWQAE6DHFOxY2EaqVOxYq6VxOjfmItYnul/kjDpsNvCDShvfWrPKWq6nHDiZ9vRYosLQLP1OXdAfCvQ5Xx32Sty+W136x8NIsKyF6JkHuhHEpRBvAB0iLogvdwPPYe+iIlBbpefcLb0WeAf380zYVWyOVOocPv1RIUPDquzCp2SIk7lb0P3a8YcUW91VWdHiSrR4xrMvJm2jYghUzETRPg9KhlLY70ftXkDfEqbACjvXJJ9Nmrf6KMqmy2z1IAkhsPX2HQHz+461BzqqqipmWDzt5NOdaUDXZbLvx0z2OJsX+g/1Z+l+s1jkcH7PmsDYe5lQ7FcSBRsaGTnRf3l7zrBpLeTLHOGUVUYVc3NQuYXI= X-MS-TrafficTypeDiagnostic: AM6PR03MB3830: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ej53AzuBjDqBcybBi2VY5HjPv8vmjR4nKq7GKLJmVTpNS0qIwsG99o/Hft4GRitqKrGLy+NNSWxBf364Ov+4JPQO3+h0MH4tVckereAy6Pi+TqHm3NElstjnq+fhp3YTd94OqUFMBWigwrWhFkhpXo8Ei14rTL5aRS2TyzP0j3pXjEEy5/TyJ0q3WS0H7gk6Ie8kdfswPmFkt13b+7/6SaNsePSRN6TgCmm0Omnr994PIEIxv61ME8oTWtkVCoAmL+RghzItgWuGl/JF7oaJvbEkWoSH6Ravxb0Pp0zQKY5Y8GtYxjFkh4UwjRQs5pkDR4mRIQfUAxk08Og81tKtucz5WG9u14XaI1xP29bu5+OGyumQ4zhxkFiapwF6wNzlS/r1UTj6w4ES2IYjt/m9V4FGpP+hK4vYsoTIQrS6qgFOiXMPYDvF9h8QHyBX/V4b X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gAQJ6Gik3TImjlAon9y9QFvvV+tiaQCTKgvJ02CShuUK6JrBZinjG3B1/6mw9nUsWxJ7wP6klR3Fn0VE9lWJ97SkMcxNCFAnpg+cOrimWZeB7lKBiT9nkeNTKtOlCi4Z8xE5cYCF8jV5p/8ivAd/9w== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 965d8818-193a-4d08-851b-08d97a567d42 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2021 03:43:33.8805 (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: AM6PR03MB3830 Subject: [FFmpeg-devel] [PATCH 2/3] swscale/swscale: Fix races when using unaligned strides/data 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: 2n97OQUk/ed1 In this case the current code tries to warn once; to do so, it uses ordinary static ints to store whether the warning has already been emitted. This is both a data race (and therefore undefined behaviour) as well as a race condition, because it is really possible for multiple threads to be the one thread to emit the warning. This is actually common since the introduction of the new multithreaded scaling API. This commit fixes this by using atomic integers for the state; furthermore, these are not static anymore, but rather contained in the user-facing SwsContext (i.e. the parent SwsContext in case of slice-threading). Given that these atomic variables are not intended for synchronization at all (but only for atomicity, i.e. only to output the warning once), the atomic operations use memory_order_relaxed. This affected nv12, nv21, yuv420, yuv420p10, yuv422, yuv422p10 and yuv444 filter-overlay FATE-tests. Signed-off-by: Andreas Rheinhardt --- Of course, one could also use static atomic integers. libswscale/swscale.c | 12 ++++++------ libswscale/swscale_internal.h | 4 ++++ libswscale/utils.c | 2 ++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/libswscale/swscale.c b/libswscale/swscale.c index b9c9647fcb..040172752f 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -312,12 +312,12 @@ static int swscale(SwsContext *c, const uint8_t *src[], if (dstStride[0]&15 || dstStride[1]&15 || dstStride[2]&15 || dstStride[3]&15) { - static int warnedAlready = 0; // FIXME maybe move this into the context - if (flags & SWS_PRINT_INFO && !warnedAlready) { + SwsContext *const ctx = c->parent ? c->parent : c; + if (flags & SWS_PRINT_INFO && + !atomic_exchange_explicit(&ctx->stride_unaligned_warned, 1, memory_order_relaxed)) { av_log(c, AV_LOG_WARNING, "Warning: dstStride is not aligned!\n" " ->cannot do aligned memory accesses anymore\n"); - warnedAlready = 1; } } @@ -326,11 +326,11 @@ static int swscale(SwsContext *c, const uint8_t *src[], || dstStride[0]&15 || dstStride[1]&15 || dstStride[2]&15 || dstStride[3]&15 || srcStride[0]&15 || srcStride[1]&15 || srcStride[2]&15 || srcStride[3]&15 ) { - static int warnedAlready=0; + SwsContext *const ctx = c->parent ? c->parent : c; int cpu_flags = av_get_cpu_flags(); - if (HAVE_MMXEXT && (cpu_flags & AV_CPU_FLAG_SSE2) && !warnedAlready){ + if (HAVE_MMXEXT && (cpu_flags & AV_CPU_FLAG_SSE2) && + !atomic_exchange_explicit(&ctx->stride_unaligned_warned,1, memory_order_relaxed)) { av_log(c, AV_LOG_WARNING, "Warning: data is not aligned! This can lead to a speed loss\n"); - warnedAlready=1; } } diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index 0d60dd2e6f..e6e7b934b6 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -21,6 +21,8 @@ #ifndef SWSCALE_SWSCALE_INTERNAL_H #define SWSCALE_SWSCALE_INTERNAL_H +#include + #include "config.h" #include "version.h" @@ -672,6 +674,8 @@ typedef struct SwsContext { unsigned int xyz_scratch_allocated; unsigned int dst_slice_align; + atomic_int stride_unaligned_warned; + atomic_int data_unaligned_warned; } SwsContext; //FIXME check init (where 0) diff --git a/libswscale/utils.c b/libswscale/utils.c index 84a29c4dc7..fcfba971c6 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1112,6 +1112,8 @@ SwsContext *sws_alloc_context(void) if (c) { c->av_class = &ff_sws_context_class; av_opt_set_defaults(c); + atomic_init(&c->stride_unaligned_warned, 0); + atomic_init(&c->data_unaligned_warned, 0); } return c; From patchwork Sat Sep 18 03:43: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: 30338 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2787249iov; Fri, 17 Sep 2021 20:43:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwp9qTdQuU4B91hHOiWYVGBZ/pMKjKrA+VtuVVUVbcS7V9XzWcRReAghTasSiNHBHwWamMb X-Received: by 2002:a05:6402:4cf:: with SMTP id n15mr16335168edw.269.1631936635427; Fri, 17 Sep 2021 20: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 q21si4520478edc.349.2021.09.17.20.43.55; Fri, 17 Sep 2021 20: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=IHoA64YN; 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 676B268AA98; Sat, 18 Sep 2021 06:43:49 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073107.outbound.protection.outlook.com [40.92.73.107]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 269DA6880FC for ; Sat, 18 Sep 2021 06:43:41 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DEhIFOLPemM3xQ8Dd6+jqV5Z3Wv/tzuUer5QZFyaImpFe1Q1LYrljnVQ2bFnH2hUo4DVNpUzDL+RJd8XOs5n2NNOLAAxW9RUPXPDRFCjDT4W1ZZcNCSeMkkcC5XDKMXtCit0f3ABivBGdqKsVxeFeJnUuh0o9KXi4I7MBtaikD9IK5KiBAFAY7U/AhZzKPkxrTp4ePsqntOsiLLcsEBxxBIFF9ylyDB9tN1xUdcrU52ONeQExFDUNW58m96hnEu90F8tAbagFc7BC3PsOV+NSRMJwNq0MfaVgInwVlGa9LgieYJfStsaw7B2vIttk58GfTwMSL3iKueQOzl4oYTz4Q== 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=cldppPjbQ6NQ2EgzvXVKBr6P2VGRYOlfgwmDTSU8Uq0=; b=GyeQTWZMiFOjZlnKJ4vHLp2tVc0QWTOgwVSrKGb3mhOuNkf+Q2qAyGpa85ybwbG9rurlz5p0wztuqW25u946tbhoGZ8cZRcvByjWUafV7wktTCBqVzqv3rxNeghn8WQrVQ/mshxok+rNDy2IX7Df6tmPjCTfUkNc0wwWLGLRXn6L5U2FoBD/lLrkG7EmbibXdoJEQzsqVLWRZZXnUtgSAvOdMZj3rw8eYkOh7+QLMhZ6VjMN44mKuxL5qrPIX5dIFDQ900l9fosbs5ez26IV7a2t8l6exxBP6ZZyZ6NrOM4qi3/VZlNWkLphzOLkgX0vvZXdGaowYP9grBJ0B5YZOA== 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=cldppPjbQ6NQ2EgzvXVKBr6P2VGRYOlfgwmDTSU8Uq0=; b=IHoA64YNbYYaGASqOxl57h7MUYRmKNCZkVq0dAZauaCnPfyCQ5puz0yv8qzJuRH9PExpD18IFH4BNmlzX19icEK99fEGTiMe1KphBjhnruURUM5tDBPdBbPlXn1PD+KZrmut01dUykNXsfQzQjrGcsYHlvwThW3Onkqp0eiW6nNZnFs2ON5g1LBRCeZFMjY1knATZeQdr/XWkWAErgFCHJfIm5oplU2CtA8jT0Kxk5oOvHhOJEitpDz+j7C3sKZjvo5Zhqq8vr+Cw7mrH2GWNoG5OY1r0epSwBOW3NHPEDjvc54WD2mD3ktwHj7fqLlX9SI3iO3hns4gI1kJuIxcIQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB3830.eurprd03.prod.outlook.com (2603:10a6:20b:24::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.16; Sat, 18 Sep 2021 03:43:36 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::787b:2156:ca99:fe00]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::787b:2156:ca99:fe00%3]) with mapi id 15.20.4523.016; Sat, 18 Sep 2021 03:43:36 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 18 Sep 2021 05:43:26 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [+QdVU/yG/jty89PHHbYXHCXbGnbPT80X] X-ClientProxiedBy: AM0PR02CA0115.eurprd02.prod.outlook.com (2603:10a6:20b:28c::12) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210918034326.1326057-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM0PR02CA0115.eurprd02.prod.outlook.com (2603:10a6:20b:28c::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14 via Frontend Transport; Sat, 18 Sep 2021 03:43:35 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ed35b3ef-949b-49df-5ce8-08d97a567e9d X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNV0a6Qq3jQ5TKO6Sqcbzb8z/3pS+N0X6vfSzC2s3Hl5VNQFcyp6XMXOfAuosWaqJ35ck0O7QZUcPO2MQsMJrj+kWhzLi2gpNXNBZdtt2KKWomnRSyjHoCvGR01MXq1veBBQR8MiBATX+BG9sHeZM3I/aeSeNMIY9INkl0I2GwpXcrS9J5CNyN02JmNKoRqQnkyoEkdLxeDNrnWy4J5hlWTjy4Z3/6zTmogi5aruZjL9RzEg9PM3yTv4Y2UlG5W3iCTWbJzLgXzIIAIvvRkDrfjvDU4i7oe8aH5LRQWVDEJ/zo+3R+HHJ37C7PmbnBS/PlZ2l99tTwZYpWVgLHF/JX/m/HLUrkMEaflFI1BXeOEUZEkfJdXlddccuup0hbRNntm4g2YVvJDUxg9HccDTi6+XglW8RPUyOpWYgqmmWCkYbTmi6SqsZtZkL21MSUthg21xO51CcCnrpJMoWoQ+zuona2jau3njv5JUSk7RWnlrLjr6FGHAKlaq+Ek55nXi9a3J3i8zNlvoZtr/TMLiC8XzCOhb3PAo1pLw6KTMM65MK03eyaJFyLBG5lr88wuF1IYYH7+V6XUt8e55JWzizzDBcoeVhgbpF0fOwhVGCuUO4MBMWbmoyB/5JlIwEvkT9xBwYTp8GBo+BDuALKYxRF+NxfaJMCRCpc7ssqAWUoQ5mOcFCnpeKLXWBqNmJQTSHcLtGB4zhCG3NcZ8iXN3qxzzM494FOpUuGs= X-MS-TrafficTypeDiagnostic: AM6PR03MB3830: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WQ24DtISBrL7gVL9btlTNoZNxdwKd0My5We0I8XMV96G2NhMa05tISFVVXvIgqBj0tc542nmRImdUh2OhCgXxLvi8Il8RmMQB4FzmaC+7xpT/xHRurf/j4EkXJOwMksADhbdyfgoWPqjsumRw1nEpewf+ppcQWOsj6ALtHDrxUQDZDlKCZEHKD4Lsd4HKffkC6izmY53g0AsfQCqVKQcyF9pHzwuvhBpmARKWydKbDRYElTeTslwRNT0vYOtwL3FMTB7tzBQbXSmxPaRlxdMAtvZcvORHHSRMuOIvlE9DwIevjUrcmS771XJs7Yc0CNuJHvVnv9bK2uGKrpL68p+M4AOJPyJqweDMobp5cDocXUtv1tjjrH2qauTh4ggj8c08gVr8/LYx/rigEHdHprQGBNnj8ZszHnOf3VhVnC38FR7S7Fe5TmkimGb+KDI3gnI X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: lOIOclhzCim1GzjB41H/0sQH51PFULpVLeibf4EEvrGmC8rfbdG4rnXZwg9kg0VlpZS0tjqj2JdsbBAAGKP7ASsPGh453GFrdSdZNQb35kvl9I2l2IliL/3+U0U3XPTunww8aQyQ/dEA0jGTXX/1Gw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ed35b3ef-949b-49df-5ce8-08d97a567e9d X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2021 03:43:36.1725 (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: AM6PR03MB3830 Subject: [FFmpeg-devel] [PATCH 3/3] swscale/swscale: Disable x86-specific code for other arches 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: gDa9E2xulGUp SSE2 is x86 specific, yet due to the call to av_get_cpu_flags() compilers were unable to optimize the checks (and the call) away on other arches. Signed-off-by: Andreas Rheinhardt --- This is not really tested. But what is there to test? libswscale/swscale.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libswscale/swscale.c b/libswscale/swscale.c index 040172752f..c7069ae7b2 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -321,6 +321,7 @@ static int swscale(SwsContext *c, const uint8_t *src[], } } +#if ARCH_X86 if ( (uintptr_t)dst[0]&15 || (uintptr_t)dst[1]&15 || (uintptr_t)dst[2]&15 || (uintptr_t)src[0]&15 || (uintptr_t)src[1]&15 || (uintptr_t)src[2]&15 || dstStride[0]&15 || dstStride[1]&15 || dstStride[2]&15 || dstStride[3]&15 @@ -333,6 +334,7 @@ static int swscale(SwsContext *c, const uint8_t *src[], av_log(c, AV_LOG_WARNING, "Warning: data is not aligned! This can lead to a speed loss\n"); } } +#endif if (scale_dst) { dstY = dstSliceY;