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 F3A3D49CDF for ; Fri, 8 Mar 2024 11:18:33 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3429A68B979; Fri, 8 Mar 2024 13:18:31 +0200 (EET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01olkn2083.outbound.protection.outlook.com [40.92.65.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C8C2168CB1D for ; Fri, 8 Mar 2024 13:18:23 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GhdKD4tYivawKCjBMLmDKD2mf6ZtxtMlFNROVybyKlYjQfJ5LQeWtFIVTVrpzVhsG3GQDSIeo8XsXeKHjKcR/ATG9IriUzdEgtOP3ifcQXr1Gz+2UQT0Xuha4pc71U3sgSaDBBybnzdkuMTpE7kaapN5xxv3XvSdklW5dU+azgDyqhHDdCa4FORqb1tul0wz+V32USdqZXrhZGxLL3mQ1X6rsAHWLYLjNdYPNcBxipZ0/lQWKfF70Nqgh0jXXDZgO6LBNSE8JUhlYRPncArECejWve6T632BP+egj32WxoGSLp3SZOz6wix534KeUIWQBp7RYz5ul4ZqAzEgJerkxg== 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=rzCQxijIjkS6/SWir8FuqZDN39QIam+7RCwB9N8im8A=; b=MKFNc5aCfyvvvf/7jS8dz8tZrbYkXT7Xiy1fGMGOy4bhCqUsNzuUAXx1gXkdkbEBJGt5Qz+V5kEo/EqUzxVvNLCTAPr5ZclcVHIm+T2wPryrjy6oh5MJkmzPtYrtqehxkQRAA42wqBVrKVY8mEk9Kf9ZqMVLmbePs2HL3D4oKELLXWZ8Imxj/anU7b8xkqm/igrdRoFxJP78chiNvfFAI3EpiX2vP4n9HSgNzGuyNrcRbb86a0QKQuFEVslGbG3nSMTthTBvsmjbWXXyoOF4OswXoorrbHKJz2PmItfU6OC3BDk0ms8Ip5IGoQh5e5b3vGW3hdSsyYWewyKO6y2c0w== 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=rzCQxijIjkS6/SWir8FuqZDN39QIam+7RCwB9N8im8A=; b=s2IBVFxmofrd0geYWFD5CkQHC7QnG1WRW7Nku5XQCEibVjEx6E32eF6J+c7sXJER/ONVqfTgW3eaBn9Oi7wGzNsQ9ImwfzE5viwlo9wjooDMn9oT1i2n963r/KI1Tagi0fiSCkqZpFJhSlmY69YbozQNK0uBn5XD2OAvwoFLXCvP+mOmFTHr2+8g8k+dRHYC/6K8U9yYy+bMePA6MdyGToVloldEoxJS7YRn6ljMfb3LUhOPRIFD29rnvGNunM9VTE7Y3drHXE4fBXIRe4bvIWkUE9usEB2to+oBlnmDWKSjwN3HcslcOJt5SpV3ONgBDVTErTUG3Zh9Vg3ruZaOxA== Received: from GV1SPRMB0052.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:109::15) by PR3P250MB0227.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17a::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.26; Fri, 8 Mar 2024 11:18:22 +0000 Received: from GV1SPRMB0052.EURP250.PROD.OUTLOOK.COM ([fe80::a8f2:5082:22e4:8d1b]) by GV1SPRMB0052.EURP250.PROD.OUTLOOK.COM ([fe80::a8f2:5082:22e4:8d1b%5]) with mapi id 15.20.7339.035; Fri, 8 Mar 2024 11:18:21 +0000 Message-ID: Date: Fri, 8 Mar 2024 12:18:19 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20240308082749.20028-1-anton@khirnov.net> <20240308082749.20028-2-anton@khirnov.net> <170989285192.7287.17016576053815588581@lain.khirnov.net> <170989331707.7287.60934458751012067@lain.khirnov.net> <170989589460.662.6679884374613626910@lain.khirnov.net> From: Andreas Rheinhardt In-Reply-To: <170989589460.662.6679884374613626910@lain.khirnov.net> X-TMN: [GhHrdW1fPsu3G/4fThpWRuFz11HY4GAr07PTx10YlrU=] X-ClientProxiedBy: ZR0P278CA0191.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:44::10) To GV1SPRMB0052.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:109::15) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1SPRMB0052:EE_|PR3P250MB0227:EE_ X-MS-Office365-Filtering-Correlation-Id: 3d9b3330-3e3e-458b-0692-08dc3f6176a7 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5UiOtll2EhkKyv9DlC5bv9xtKu9Xy4bgVY7PSD8D5PhdapsbsffXCXbu8snEAvMpOIJd4d4Er85xfSojwrVIA08VbNbmrzoC8OTkr05P9CEUyMpfQyvhTewLJkaWte9jpXtROtT5CbBr4jvaq0lwMLe/cggTqrglYGioEC5eH/DA5rYLknNlt3IqO6B+OhukZwxE9vGsCC/0NfIHmXKaxEMo7ehuOzLf9Krdg9rmbfa6jx/3AWHK7Vvh9DEpOAAnCkJY6LcYapaej1Y1hTDOcQ6II6BgvnIVtLu4XtSozIa4U880aPxBF5K770egVXBL7cMkHGSybuf+BP2eULBW/Lco4lnzMgP1w3vY9sCm36QqhT9Gycqc8KHUWc3GxBcA/KfeQ9vBrh0nhwzznDPZAuFJiu/KsN+d/hT6DXU5azC+/GfGLFNkA33d3NRDVJOHKA/R4+2lSAn26xssyKOYs6uggtYVl6vmfoHO3SWazdkeizjz0My4C03b1J4JF9YJ/4fX6E8N5zC+5gmZ6hNpLWJaO6JWP/crZHTMWDxtDn18q/Ps2u6fJWdzxgeyh+s1 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZUZnWWpWMTU2RVBMZlNQUE1YVFAvbS9wVFpYZUtGNkdYZlNCdzdtekluNWFR?= =?utf-8?B?eGdqaEV0eSsrUFNZbHVqWlJXdnFuZXM4UTBrenIwcW1LbGVUMTdhVXJ2QUtM?= =?utf-8?B?d2RmVzA3Z2h2QTQ5MG5NN2V4cSs3WHcxZkVJa2t5d1hUUnp4aXF0K3dIZGdz?= =?utf-8?B?SFlvdW4zK1lYUllTNUNUL2xPQUJrSFEwUUJsdnlnVUhWZ3p6Umw0ZzBBb1U1?= =?utf-8?B?ZUtncEJEajhxYTBrVFVQTWNyY2tSbGs1Vmo1ZFNuQ3Q5L01STVNLWm9CL2Rj?= =?utf-8?B?M016eHY0Mk01dEd1NlN5TGw0OVZCRlRLRDJDV3pRZm0yTlVCV0p5NHJ0OStB?= =?utf-8?B?Y0pEVWVQeFhMR1VUb2tlMTBVbzJMZUpiVkZ6aTFhTWpLcEcyUWtuektWRmMw?= =?utf-8?B?ZnZzS0xQbUhGVnZ4MzNJbFF1dytHLzZHaDlXckl0UHJFdmcxekkzUlpOak1p?= =?utf-8?B?bkFwQTU0RVVKalJNOU1LSnVwbWduTTRjb21Wc0ErblJhL2h6RjZnZk03VlBT?= =?utf-8?B?NEN3a2JkdVhtSlpnbFl3OCs0UXNMZ1ZZdHFHKzdCQ2xQbzdac3M2cHVnY0ww?= =?utf-8?B?NVBxMGw0S0N5VUpxa2NjamxwUHVSc2l6VzQxMGJVTGZnLzZpVmtBbmZjbUJ1?= =?utf-8?B?cjI1ZWxuZEZEY3RxUldIYk9qZFVidGNTa0p1MFFQN0xYNmhqSHQxYWZuU3RW?= =?utf-8?B?OHc4dm9zaG9vaERrcUdXUGsvRmRNT1hrODZaZU55UVIzVUZPazlvOEl2VFgv?= =?utf-8?B?V0tLZU05aW1NRUNiR0NyTEx4Wm1FL1lpMENJNHlMeVpwRGZWdk8zWVppeFhX?= =?utf-8?B?V3dIT0kwalhXL1d0YUhZanlieGQzbnBwZ1FFRXFlZkFTVkpvUTh2Vis1Q3lm?= =?utf-8?B?Y3RnMlpmRDBzZDVXdnpvU1k1QkdJc3hueGZTL0FxZlk2TVV0dGhqcnJ5L05O?= =?utf-8?B?cnVKK253K2JvcDhUUUo5OTZjMXZHQ050cjYxcmZkMVJqRnhpOUJIVzUwRWpa?= =?utf-8?B?N0toTGs3MlhsbWl6eTRoUnpKeTBVWlNZWEttcXhJTmxoeDBQcVpkUVFsSita?= =?utf-8?B?ekY4VUJkRzByaTZiWk0yK0F4V01iUWIzMVB0OWpqOGJHY0tlUUdDN2JJVFJY?= =?utf-8?B?eHpxVHQ0U3piTlFtZm4zOWQ2dkc0OEttY0NJZ0lCNGVFWXh0R2tJdis2aFZF?= =?utf-8?B?WDg3bkFnMk1IVjh3N1RwRzlpdDFLMlZqeEFObjBxeVZVaHFtaVh0R2RCUmxt?= =?utf-8?B?WkhQbU91Z0wzUk9nOTF1cE5heER4dklNcHhINVZYZGlRSXV6MHdGQkhOTVdC?= =?utf-8?B?eTduYVQ2RjdHRVQrem11NXVUV2J0MXJHWGoySDRIaHE5cWJQSHFmYmZPZVoy?= =?utf-8?B?dWQrbmxMVVZxSm9NRkM3SjR3ZmY5cFFRWmxINFRGbENScW1ETm5YMENyQWli?= =?utf-8?B?dzFvZFVoTFpObXRUSC9EZSt1ZUN3djlRY1Iwa2RYcUp0RkxaL0NkZVlVaDNV?= =?utf-8?B?Uzk3NnRJNFY5dGxSaUNUdzVjNndrdExBN3J0Wk5RRFdId1lIeWc2TUlKdE9k?= =?utf-8?B?R0tnampuaml3VTBMa0tHREFHcERaaGtRcGY5S0RnNXI3Z21ROGhNeWYyRkpY?= =?utf-8?B?QTZYUHVPVGxEV3ZaZjNIUnFJeDZlaDAwSXZJcTlzTHBVTmNXYkRYMEtEeWRW?= =?utf-8?B?YVhtWDBHVVBxTER4ZHgyS21ZU3EyWFFZeEdjZWc2U0dSYzQ3MVRreWtRPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d9b3330-3e3e-458b-0692-08dc3f6176a7 X-MS-Exchange-CrossTenant-AuthSource: GV1SPRMB0052.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2024 11:18:21.6653 (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: PR3P250MB0227 Subject: Re: [FFmpeg-devel] [PATCH 2/3] lavc: replace ff_thread_get_buffer() with ff_get_buffer() 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: Anton Khirnov: > Quoting Andreas Rheinhardt (2024-03-08 11:44:12) >> Anton Khirnov: >>> Quoting Andreas Rheinhardt (2024-03-08 11:19:59) >>>> Anton Khirnov: >>>>> Quoting Andreas Rheinhardt (2024-03-08 11:03:18) >>>>>> Anton Khirnov: >>>>>>> ff_thread_get_buffer() has exactly the same semantics as >>>>>>> ff_get_buffer(), except it is supposed to be used in frame-threaded >>>>>>> decoders. Since the decoder instance knows whether frame threading is in >>>>>>> use, there is no point in forcing decoder implementations to use a >>>>>>> different function merely because they happen to support frame >>>>>>> threading. >>>>>>> --- >>>>>>> libavcodec/aic.c | 4 ++-- >>>>>>> libavcodec/alac.c | 4 ++-- >>>>>>> libavcodec/av1dec.c | 2 +- >>>>>>> libavcodec/avcodec_internal.h | 13 +++++++++++++ >>>>>>> libavcodec/bitpacked_dec.c | 4 ++-- >>>>>>> libavcodec/cfhd.c | 4 ++-- >>>>>>> libavcodec/cllc.c | 8 ++++---- >>>>>>> libavcodec/cri.c | 2 +- >>>>>>> libavcodec/decode.c | 13 ++++++++++++- >>>>>>> libavcodec/dnxhddec.c | 2 +- >>>>>>> libavcodec/dvdec.c | 2 +- >>>>>>> libavcodec/dxtory.c | 12 ++++++------ >>>>>>> libavcodec/dxv.c | 4 ++-- >>>>>>> libavcodec/exr.c | 2 +- >>>>>>> libavcodec/flacdec.c | 4 ++-- >>>>>>> libavcodec/fraps.c | 4 ++-- >>>>>>> libavcodec/h264_slice.c | 2 +- >>>>>>> libavcodec/hapdec.c | 4 ++-- >>>>>>> libavcodec/hdrdec.c | 2 +- >>>>>>> libavcodec/hevcdec.c | 2 +- >>>>>>> libavcodec/hqx.c | 4 ++-- >>>>>>> libavcodec/huffyuvdec.c | 4 ++-- >>>>>>> libavcodec/jpeg2000dec.c | 2 +- >>>>>>> libavcodec/lagarith.c | 12 ++++++------ >>>>>>> libavcodec/lcldec.c | 4 ++-- >>>>>>> libavcodec/magicyuv.c | 2 +- >>>>>>> libavcodec/mdec.c | 4 ++-- >>>>>>> libavcodec/notchlc.c | 2 +- >>>>>>> libavcodec/photocd.c | 2 +- >>>>>>> libavcodec/pixlet.c | 2 +- >>>>>>> libavcodec/pngdec.c | 4 ++-- >>>>>>> libavcodec/proresdec2.c | 2 +- >>>>>>> libavcodec/pthread_frame.c | 7 ++----- >>>>>>> libavcodec/qoidec.c | 2 +- >>>>>>> libavcodec/rtv1.c | 2 +- >>>>>>> libavcodec/sheervideo.c | 4 ++-- >>>>>>> libavcodec/takdec.c | 5 +++-- >>>>>>> libavcodec/thread.h | 10 ---------- >>>>>>> libavcodec/tiff.c | 2 +- >>>>>>> libavcodec/tta.c | 4 ++-- >>>>>>> libavcodec/utils.c | 5 ----- >>>>>>> libavcodec/utvideodec.c | 4 ++-- >>>>>>> libavcodec/v210dec.c | 4 ++-- >>>>>>> libavcodec/v410dec.c | 4 ++-- >>>>>>> libavcodec/vaapi_av1.c | 4 ++-- >>>>>>> libavcodec/vble.c | 4 ++-- >>>>>>> libavcodec/vmixdec.c | 2 +- >>>>>>> libavcodec/vvc/vvc_refs.c | 4 ++-- >>>>>>> libavcodec/wbmpdec.c | 2 +- >>>>>>> libavcodec/webp.c | 2 +- >>>>>>> libavcodec/ylc.c | 4 ++-- >>>>>>> 51 files changed, 110 insertions(+), 103 deletions(-) >>>>>>> >>>>>> >>>>>> -1: This adds avoidable runtime checks. >>>>> >>>>> What checks and why is that a problem? >>>>> >>>> It adds a runtime check to every call to ff_get_buffer() by every >>>> decoder not supporting frame-threading (by checking whether >>>> frame-threading is currently in use). >>> >>> I cannot imagine any situation where it could have a measurable impact. >>> >> >> And? It is avoidable, therefore it should be avoided. > > Why should it be avoided when it can never have any measurable impact? > > The maintenance cost of a more complex API is higher than the > infinitesimal cost of this check. > What maintenance cost and complexity are you referring to? I checked and could not find a single commit where one had to fix an ff_get_buffer() to ff_thread_get_buffer() because it has been forgotten when the decoder has been declared to support frame threading. - Andreas _______________________________________________ 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".