From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 59F4642990 for ; Wed, 6 Apr 2022 15:46:21 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AF26B68B0E6; Wed, 6 Apr 2022 18:46:17 +0300 (EEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10olkn2036.outbound.protection.outlook.com [40.92.40.36]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6B1D768AE7C for ; Wed, 6 Apr 2022 18:46:11 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BKSG08IFjQ5woVsdPM7B2b3XeGzos00Xj3eHuybfZnTf/97cu0LxvIK3NNbopoSw73BXKHfYNIl9LvhNsFFi9JIUARITTYH4kZ9yaH+Y0q1mEdf8RoNS02W4pK2eP9yeuoPXmYO8iXia1MFMJ4Fslz9PlopNyTdumiB9atTw5iF7uxUfUOh29aPzC86wE2RniznvH+qj+CJJjsjPRo2/dgxL1vZW2eKYNmc4+MWF/tMIreokSjNdUsZjbKJjxr+0eERYvrz0TzYpAuZ+TnJQUWrlu8ps6SxpjMLn/SRSWPtjKoebRkjS8jmEMi4pwRTiqVDXg51EnaC74N6U+ft0Ig== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZoHSYZoFrzkEYcOxaqsExn7kzbeJQx0MiPqcr82Xg+U=; b=KnZxDVPCGyQyoNgZxO1gtYrT70R2kbao5iipgMgyjcc1UbYHeh4a3YjKUJ0nbtmT6Z7T9+RxRrhThAVJQxj0XlDYw/e/A+hryOMNZHZipLLL3gKVw3FGOWp45GWVIWWjJsfYE8AvACtpI1x5mtBePyyVe5osC/AWflIBh+7KJZQ92Uw9ocY2Db37wI9LcMSPwKCoDPFkeMSc7LlGA1TgdLq35mQb9tznAhA9jexEupkHgYontJiXiN3M497ls8405iN73kcicHiLBoltKSD79z30O6PW0zAraKN6qL52lZW1Xms76MjIOl8rvYvaQiyCYgDFSkQ5+dwC4JlIUBstEg== 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=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZoHSYZoFrzkEYcOxaqsExn7kzbeJQx0MiPqcr82Xg+U=; b=f41W2BFaM/Wa6yy2HgV+7fcRMTnzr4lb3C7Shk5dBkbCRESwFcgigBMs6u9XOHQY8vd6Mi05iu7bIpO4+Nbmeg5VEOHlAVos3vpMm1PI5gZs1DvGbCuxqKvneao7GMYWwb38NUptxaI1Vq9AeNDRx7S6JL0zZlydU2v6ralYf60FvMibOuH7dL0MSYibXVpjnAtP/mld/PYMI9OuyPd8t8899DqWdsKz60Vqz5ODs6xmzi7GI2uJcm35HH7jMyV8oQyEKwXgGaGB914qy2DseUO00/yEWhsK50M2Ckt356oSfyiVX2WeDV3sDWdCyhxYXeoX/z+vIK11wVBypkMGvA== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by BL3P223MB0212.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:34e::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.21; Wed, 6 Apr 2022 15:46:08 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::1d14:8778:3a51:ed0]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::1d14:8778:3a51:ed0%5]) with mapi id 15.20.5123.031; Wed, 6 Apr 2022 15:46:08 +0000 From: Soft Works To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [RFC] Switching ffmpeg.c to a threaded architecture Thread-Index: AQHYSBeuHAE+RPuGxESL7bK+MVIG+KzhsuYAgAAIfACAAAOyUIAAFjsA////4ACAAOptgIAAR7kA Date: Wed, 6 Apr 2022 15:46:08 +0000 Message-ID: References: <20220404113037.13070-1-anton@khirnov.net> <20220405191542.GV2829255@pb2> <164918796468.24258.6158464741625303482@lain.red.khirnov.net> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-tmn: [Miu+YdeBHbsmAEq8PToDqBIkmIySzR9R] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e7da9aab-5be6-4ef4-d298-08da17e4918f x-ms-traffictypediagnostic: BL3P223MB0212:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: B2b7RJ90cGCA/Ufdb91mAA3f+UHZ3D8W/K1ig0owGaQM4ZSxpFf5YvF/xVwKfHZ7iLx/4U6TPeKney2cY3IWP1D0TQ8tEDUv47cmoMAovcAM1jwE9g24KyXcOvJ8RmtSjCzTSzgGt59aTwy51Ql8tmXa+uKpabd3SVWAzQZ8TGTket7NSL7d9iLtLok/s7l+nPECeDg7X0t8TPmr7cupTC/9916jJnFmrFRIZj/kLDGPlNv87GgcyNc8zSUV/2yyPrc16Evro6P6QF+AXg8fvrKHrjqdgDKlmZIIsQFH2L+9v97NH0RW3QXC9YdnPXCY3ofcs78gy40FAt776UUz2S4yANOX0ue2shGOOtnaFVClJEBLO08vaZMN+x5PVKVyajMfOX7nOe0RBg+Mm5k9aJbyfdEdhEOXAns4pRVG1wwzipXRDm7hMihTomh3wt5WlOIRICshTw8sny1SZG1aT7CrdallqaNP5aDYqxFxXD5mCzAuUJodneAbmvVrl1SUl6YuG2vzq7LLV2NO3f8Q4Y4gSpuHMcavLM0mrzOSzLVgqd/1sBFZhzOaev9u6wyqxgOtS4YDeXc7tGEGzIETlA== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?N0w3YWVoUXlvNld4UFZaUHNGWDBXM25VQ1hmb05PbWYyV0licm5YSkRtWE1M?= =?utf-8?B?VlR3Q00yM1VuZVI4YWJtQ2FQTjZkaGRZbzZuN1BFaEFMUWd3OGhoV0JSL2RP?= =?utf-8?B?eGxtN2V1QWROSHpXTHZ5WUliYW94YW5leU93MmU3VnVadjdNTDIrdVl3ZTZT?= =?utf-8?B?QW1LN0F2SXI1MGx5b0VtVnR1VUozajlKUzZnamhOWWRLZmxQeDQ0eHJGNUYy?= =?utf-8?B?RkdUN09CRXBFemQzWmNhZ2cyUjhibkJNRXJpWURUY3Qrd0VKbzNiNWVMVFRh?= =?utf-8?B?SktBcG4vYzhzQjlFazhlbXZDNHRhWCtSVTJTWHZvZU1yT0dMdWJqN3BoS0lI?= =?utf-8?B?SjVOOWNIYldDbXZjN2d2RUxOVHFBSThxVGV2TGJiOUdodWd4RmhmMU4yS3lZ?= =?utf-8?B?Z0hKNFRHb2J2MzRXRDBpMldESkFIZkExQmJHbHB3dFU2SklhS1U4WG1aY2V0?= =?utf-8?B?L1M1UDZFYW85T1NTZ3E0Rm01MWpZVHJVVFZuMlBTTy9Cdm1yZ0t2UG0xQWhx?= =?utf-8?B?NVMxNFF2NDRXcnlGd1l6NG9VOXpQVEh0ZUJ1ZUIrQk1YbmtkWlNtdDB5VzlX?= =?utf-8?B?MUNQU0JUR1EzYXN4VEhyK1hLNkNaeEhHZDlTWXY2MlMxYmpwd3Z4QlFxeHEx?= =?utf-8?B?eUhxdi9LM3BnYzU1QkM5azdiWFdRakVHR2p6c3pvejNVUmpqWjQwejQvT1RZ?= =?utf-8?B?WkN6eGtVMVFQc1VrQnhkTytjZGFEeCtON1g5U1NraTNJYkJEVjNJME45RnQy?= =?utf-8?B?ckNsTWtkYVZyWmsrWnoxWW0vZ1VyMk9hUDdFUmVSL2ZGSGpobTJBM2xOV0RR?= =?utf-8?B?ejhmM2lOME9GblJGN0ZOL0RVcTVNU1FRVjVNVGs0VTJWbGFoL0RLN0dmYzJn?= =?utf-8?B?KzlXcU5lNkVRN20xYlR0ZUFPOGVBRXVMMXNRMEFhR3pFY3FoZ05OQ2dIaFVn?= =?utf-8?B?TkRDai82Rlhyc0J3ZXBnOXY1aWZSdmF5RHJsTGFzUGJqeVhFSkpLVTNjTkY3?= =?utf-8?B?eng2bFRndUVGbWd3c2Jyd1ZoY21lR0o3RVdCUW9ZWXdOMGJ1cVpQTmNqYjN4?= =?utf-8?B?TVBUV3FYTEppZEhFZ1hUaEEwU1RFMExTTi9rQytNUXlESy81N2JOZ1gxMWkv?= =?utf-8?B?NGNLYk5YKzJ6emtTajZVMVpHdFEwcmFodFBqWE1XUTR6a3lVNGxqNDdBbmhW?= =?utf-8?B?RDJzc1NmbVBaYmdxeDBEN1pYbnNqcXFhTlZmck51V2JUVHZnOU5GczlEWTM1?= =?utf-8?B?MzdLNmVMcmF2S3M1SUtxdjRUVFduNEhTdU1GUDdmblBFRzRSNmZtaTJ3ZTNG?= =?utf-8?B?ckxaaEFTdklQTmdLOFczREF5a0dUV2pmYWM1V25KNm5pQVN3Y0MxcTV0SWZR?= =?utf-8?B?eGRwMEhCTUVOaUhUaU0vSE1kdDNNb0pQTi9BS2lnTDRPR3VzRHFLYzZhbko2?= =?utf-8?B?L1BjaXZ5WnZ6dmxISmM2dzZCQnZrUk11SjY2UmtCMUZLQ1B4MlVGaEEwOGM0?= =?utf-8?B?WU9vKzU2UXdtR2NLME92blJ0QWxsUXV4UXBnb2lCdjc5RnBlUlhmWTcybzQ4?= =?utf-8?B?MHFYTFY1T1ZKTWRrTVBQc25kdlYvdzQvS3A1eXlGOTd2RHFlRHAyTnZmS0JY?= =?utf-8?B?TTVjMVdZWkI1aDVpc1NlaGtJV09ndm1tenNwTTNUbWlOazBjNEFDMzBFOUVi?= =?utf-8?B?QmM0bStURG9vckVCU3ZhM29ETi9vdEtQb0FOM05wQWdqRStObFJvMmhjdkdu?= =?utf-8?B?OUgxamlXQ3FkdHkvOU9KRldGMlVFa2tWS2RETXpQenA5UktiVW5ITnlQdUhL?= =?utf-8?B?eWFBaC9aajVHY01LOHNKUDRLYzdPQ2NISC8xUmtXZVZnZUgwYmhJTHNjNjg2?= =?utf-8?B?SUIrVWl4K2g4T3dLY2QyenFtem9qMCtySHV0Y0N6UExiTEdjenIvb212Ymwr?= =?utf-8?Q?bZOYkTnAA4E=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-1ff67.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: e7da9aab-5be6-4ef4-d298-08da17e4918f X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Apr 2022 15:46:08.7968 (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: BL3P223MB0212 Subject: Re: [FFmpeg-devel] [RFC] Switching ffmpeg.c to a threaded architecture 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: > -----Original Message----- > From: ffmpeg-devel On Behalf Of Paul > B Mahol > Sent: Wednesday, April 6, 2022 1:17 PM > To: FFmpeg development discussions and patches devel@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [RFC] Switching ffmpeg.c to a threaded > architecture > > On Tue, Apr 5, 2022 at 11:20 PM Soft Works > wrote: > > > > > > > > -----Original Message----- > > > From: ffmpeg-devel On Behalf Of > Paul > > > B Mahol > > > Sent: Tuesday, April 5, 2022 11:19 PM > > > To: FFmpeg development discussions and patches > > devel@ffmpeg.org> > > > Subject: Re: [FFmpeg-devel] [RFC] Switching ffmpeg.c to a threaded > > > architecture > > > > > > On Tue, Apr 5, 2022 at 11:06 PM Soft Works > > > wrote: > > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: ffmpeg-devel On Behalf > Of > > > > > Anton Khirnov > > > > > Sent: Tuesday, April 5, 2022 9:46 PM > > > > > To: FFmpeg development discussions and patches > > > > devel@ffmpeg.org> > > > > > Subject: Re: [FFmpeg-devel] [RFC] Switching ffmpeg.c to a > threaded > > > > > architecture > > > > > > > > > > Quoting Michael Niedermayer (2022-04-05 21:15:42) > > > > > > On Mon, Apr 04, 2022 at 01:29:48PM +0200, Anton Khirnov > wrote: > > > > > > > Hi, > > > > > > > this WIP patchset is the first major part of my ongoing > work > > > to > > > > > change > > > > > > > ffmpeg.c architecture such that every > > > > > > > - demuxer > > > > > > > - decoder > > > > > > > - filtergraph > > > > > > > - encoder > > > > > > > - muxer > > > > > > > lives in its own thread. The advantages of doing this, > beyond > > > > > increased > > > > > > > throughput, would be enforced separation between these > > > components, > > > > > > > making the code more local and easier to reason about. > > > > > > > > > > > > > > This set implements threading for muxers. My tentative > plan is > > > to > > > > > > > continue with encoders and then filters. The patches still > > > need > > > > > some > > > > > > > polishing, especially the last one. Two FATE tests do not > yet > > > > > pass, this > > > > > > > will be fixed in later iterations. > > > > > > > > > > > > > > Meanwhile, comments on the overall approach are especially > > > > > welcome. > > > > > > > > > > > > I agree that cleanup/modularization to make the code easier > to > > > > > > understand is a good idea! > > > > > > Didnt really look at the patchset yet. > > > > > > I assume these changes have no real disadvantage ? > > > > > > > > > > Playing the devil's advocate, I can think of the following: > > > > > 1) ffmpeg.c will hard-depend on threads > > > > > 2) execution flow will become non-deterministic > > > > > 3) overall resource usage will likely go up due to inter- > thread > > > > > synchronization and overhead related to new objects > > > > > 4) large-scale code changes always carry a higher risk of > > > regressions > > > > > > > > > > re 1): should not be a problem for any serious system > > > > > re 2): I spent a lot of effort to ensure the _output_ remains > > > > > deterministic (it actually becomes more predictable for > > > some > > > > > cases) > > > > > re 3): I expect the impact to be small and negligible, > > > respectively, > > > > > but > > > > > would have to be measured once the conversion is > complete > > > > > re 4): the only way to avoid this completely would be to stop > > > > > development > > > > > > > > > > Overall, I believe the advantages far outweigh the potential > > > > > negatives. > > > > > > > > Hi, > > > > > > > > do I understand it right that there won't be a single-thread > > > > operation mode that replicates/corresponds the current behavior? > > > > > > > > Not that I wouldn't welcome the performance improvements, but > one > > > > concern I have is debugging filtergraph operations. This is > already > > > > a pretty tedious task in itself, because many relevant decisions > > > > are made in sub-sub-sub-sub-sub-functions, spread over many > places. > > > > When adding an additional - not even deterministic - part to the > > > > game, it won't make things easier. It could even create > situations > > > > where it could no longer be possible to replicate an error in a > > > > debugger - in case the existence of a debugger would cause a > > > variance > > > > within the constraints of the non-determinism range. > > > > > > > > > > > Can you elaborate more?, otherwise this is PEBKAC. > > > > You mean like WKOFAIT? > > > > You failed to provide useful facts to backup your claims above. > > So I can not take your inputs seriously at this time. I was just wondering What Kind Of F..funny Acronym Is That? (knowing you won't find it, after being too lazy to lookup yours..) Getting serious again - I will answer your question, but please give me some time until I'm back to work in this area, then I'll explain in detail and provide the callstacks that I meant. Thanks, softworkz _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".