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 AAA7A476D8 for ; Thu, 21 Sep 2023 00:27:00 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3C81468C8C1; Thu, 21 Sep 2023 03:26:57 +0300 (EEST) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2024.outbound.protection.outlook.com [40.92.74.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1C5B168C87A for ; Thu, 21 Sep 2023 03:26:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b1k0eLWQR6prfTqSt+fi2bs6KDo6nXg76nZkPOG+G5qFvyWNZguC3iSodUSX7cGs/bDq5UD6rQyNF5RwCUZC3SgnnTy2XwjMVglI0U77GUHpnaMFCiCQleB2+xBrD+m0VH/jclq/BBs03ikRQpjiZtRcRtOoS4a+yOv1h4R9z5TU5aRgeXPX+E2M1gszUU6f3m3pgbCI1XwJdOyQqcnms9XdoI4Wu6MNstKgoiKaSnW15UhtWgJ9Rf0W/fyklSzJhtE983MRKYu8BAyT7Zmh7QwP2ScWVIyyB9diZ4fMHKZ7ks2/hKLFmdkCvHspbC2l28dXX8n3LjQ0CtffGVE78g== 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=yolXLTzw8unkG/7ocSIiaxMDacm3s3IqvSThQE5DCi8=; b=Lh0KsXo2qQx+r/e6J9DC/4VTlMZDb2fu77aSgqFbwbWwFDuoXc9cUYY3U9RVZ/gkj4FTYtn3aXamQVfyDXAKnnjyVgqoaZF/fDNwg5KLyb1FiMMbUPMXa+WTzw01doVzDK5/UJoDplFw7ypC4n9cSU/kbvOiTxwuGBP7Txf4Kv1eNa+uqY6p2dMH/pYLW7AtwIVgA9r5W0UfQwOXk5eObt3f7sf7uj8Ag1/imCP54uycfq+MCLQOoonwUqVnDWXXxMt6iyXR3k0zJjVBNLNpNL7t5kl7L0XHOU2iRJSa6EbTt3ZI6bHsZIERP/+keL46wxWWLvcKj2mH7Bqk0JcgPQ== 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=yolXLTzw8unkG/7ocSIiaxMDacm3s3IqvSThQE5DCi8=; b=q7rZDyvBdoPr2aj0D+dENPGvAnie6xM3ILX6TyTMKhRb3G9z6ANHgWTTSNqWMZ/+L0hyRjFphX5fiGW2ZgRnKv9Zdh8r2y6wM+vCOZwhdYgJWRR9u24zEdfjcwrJ1HeZQS3QZ/V9VmLNtVCOYrZmH9sCON4mowS+EIx3qdEnizg4JN6S9zLrzPv49YBfj7rU1wGCFY8VmmZdoMFss9CdsE5K0PfSDmbf64MaNHQ93GIPT/Xxq5r0LQ47yOgQ8/mtW0zA5Av9JtPpBdpVRKJ2YsXGx0SGyRf95NKLvyuTBe715CVR6HhS2vI6gfBq0xcMwgbOSM3O+QHzlLl1MZU63Q== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS1P250MB0407.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4ab::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.26; Thu, 21 Sep 2023 00:26:48 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6792.026; Thu, 21 Sep 2023 00:26:48 +0000 Message-ID: Date: Thu, 21 Sep 2023 02:28:01 +0200 To: ffmpeg-devel@ffmpeg.org References: <20230920194426.GM8640@pb2> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20230920194426.GM8640@pb2> X-TMN: [dyLP5wKBKr3f9NdJD3rKPUAQcQG1ku1R] X-ClientProxiedBy: ZR2P278CA0062.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:52::10) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS1P250MB0407:EE_ X-MS-Office365-Filtering-Correlation-Id: 800f82b1-f359-4301-be85-08dbba39715e X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Na7rhKQYruqFguIQ2LOOmyViVsGeiJpufHXBMYq/VMLGX8vnnPMOCODBcZqNBacwJzMFZkOodTYBlvj66LU7ldm84OBHub0YqNk6Wy8VvQNxN83wT+atcZWvti4XRPJJhabXMH+f1kqp5eCqcvVXLW6I2v9X0nj4eE5Td8M+NkwVyi/QRYuEO7XA53AwZ+dpzVDnA4dcghx8ePrtNHU9EiPWAFx2TpL5zCql4febnbrc/MWp1ZGLt5rlxTwX6l5E51g98gyh+keLrNTB3mpRL281pddOHdPqCxWfJbgkxJAj/RCx4Il+0r1HiYrAwzU52iXqJC7Xk3Q5MdrAgM1JwAb6VCu15E3IclOanMwo7WjsTCiDWW2HRKDkxyfkv4U4h5PAe2yVtJWo4ifzaHpnMidmnEjjE5vVfSXOF7lsaq8/mi9hUL/69yXkcSvRUMrx1MLcgZeBWvL1dmAKltkkz1Mob7d/8zI9LQeJZCKdO2gmr6AHAc7PDqrXU34443tQo5tCoI5TCZ51qkVaD4IVA95jg7dItcx67ez8wduvasjT+v2tCzWi5g6T6Zfcd3e5 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?U2haRDRhTkxrZjlnMUU4ekN0OFZ5a2dYZm5aT2lIVFUrT3I3ekJPeHkrSlBI?= =?utf-8?B?UHVQUUg1R3NpWUxFYzZkbXhsY0hjVys3bmV0N1gwYXRJVlBxL0tWZFNFMEdZ?= =?utf-8?B?UnkvQlFNcDlQeEl4Z2l0dXlUMmNrbzl6WXJjZ294VjFXamlxa24zMEdFQ2lm?= =?utf-8?B?RWJnVGVDL0dadnc0dEovRFZlSjNIeUFrVnhKM3RvcjdSMzFDaURGM3VxYmtU?= =?utf-8?B?Q05NZHBBSnRMRHFuQ0dNeGorVXY0d3dVOUJRako4aGNOZlpZbDJRWTAwNU1j?= =?utf-8?B?bTZhbkc5MVhraGt2WC9EcmtSdXJ5aC92TlJRZTlGc29Uc0FFakh3R0dOQmFo?= =?utf-8?B?clVlY0tNc1hweFA3eElPWE81UVV3eWVWRHFZL1FaNUtzTHgwWHQ3UDBwN0k5?= =?utf-8?B?UUpCMXg3ODNJaThtL2RiSGlTbVFQbFZTcEFvQVhabVVkTlZ0c2pSVTJXNjdu?= =?utf-8?B?VkZHcGlkTkZQN0tnNHFvTzg2a0VMUFhxdytDZ00xbmM1MEZaR0hhUUdBa2Jl?= =?utf-8?B?OHE5YWV1MGphWll2bDhxVStaejRROW5ScmIxZ055bkt1SjUwYWVwa0FkT0h5?= =?utf-8?B?YjhmM1RJbnd3RWgyaVNBbTlZWXY5UjRKbk40SlhzWlB6OGUvOS9ZcFpNYVdi?= =?utf-8?B?Umx6WmtVdVpIc3EzcjRxc0ExSGc1bTZrV1Z2WkozaURGNmJMdUo0UmVic05X?= =?utf-8?B?T1pRbWxqRHBGdlU5MjZLUWFSdXpiWi92Wk93VGxCeE8rem1rZnVUTEUvVUZp?= =?utf-8?B?L0ZMbWlNbVdEQXpiaDBiUldyRVc4akN3S2tONHcxOWJULzc2dWVVdUxMY0Jp?= =?utf-8?B?Z3R5eDkzNGxTRkFKeDRjRW1qdmdiWjl6MW1FNXVObnk0bTY1OHZmRjFNSGpo?= =?utf-8?B?TVF0T2FPV2hqb2pEWXJCVmpycWRESEUray9KaGM4ZjlBZjVRL2ZvQ2VpQUd4?= =?utf-8?B?MENZVERPOFpHV3hVenEyWEJTZlZkTVRYakNjOUpnNHZ2NVJBRWxNK3lmYXRF?= =?utf-8?B?ZDFPNitFYiswVVpBd2o1eGNrMUlwRmpjcTQ2WWZQdEk3dXlHenk3U2JHLytm?= =?utf-8?B?YWZnMjVOKzA2Y2NySXJZZWxkNFZ6VHFDNlBObTA4eW5iQ1VhUFh2MndzcHlr?= =?utf-8?B?RHk1RE9ncDVwRkpvSXVVYWVnekxQTVVhM3hCN0ZyaDZUYVlENit1c0ZDSUZn?= =?utf-8?B?UGFVV3ZScExiSnRLOForU1UvOUx2MEY0b2YzNlBVTG0yNUVQeTdIaVN1TXI5?= =?utf-8?B?RUdkN082eW9Cd0wyTlBqbTJuVEJnSlV6ZzlaK1l5TlBUYlBiRFUrR25YSGs3?= =?utf-8?B?c0ZZNG9hVzdnT2VCZmdNcHRJK0dTNWNFTHBVQWFjbmF1Yyt5OFZTMlNpNlhM?= =?utf-8?B?WUdWL0VLeG9YTGp6dUR6bkgzTHNGVkp1L3A4dTE5dnpScm1RY0xpQ1lUSzlR?= =?utf-8?B?aExXTnRkZlgwVUpMeWVoQnZOV1lNdC9WazF1TnpLQ0V5MENyOHhMMGJEbi8w?= =?utf-8?B?TUtITk9nZDBuSDIrZHBmK2o3cWVqcmF3cVF2Mm01UVlDRHh5dm9SWHh3TkF3?= =?utf-8?B?clMxMHFmbTZyS09NdEdtRTVDZVVFU290bytVeUtOaWx5dG5TeTdrUVc0NUlE?= =?utf-8?B?RmV6RDhNeEF6R1owMCsrS3lDL0R3dXp1V3lXODVpMlI0cmNxaWt5V09BSnFM?= =?utf-8?Q?rL8h5zPNUtHM6JIr9DrN?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 800f82b1-f359-4301-be85-08dbba39715e X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2023 00:26:48.4154 (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: AS1P250MB0407 Subject: Re: [FFmpeg-devel] [PATCH 35/42] avcodec/threadprogress: Add new API for frame-threaded progress 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: Michael Niedermayer: > On Tue, Sep 19, 2023 at 09:57:27PM +0200, Andreas Rheinhardt wrote: >> The API is very similar by the ProgressFrame API, with the exception >> that it no longer has an included AVFrame. Instead one can wait >> on anything via a ThreadProgress. One just has to ensure that >> the lifetime of the object containing the ThreadProgress is long >> enough (the corresponding problem for ProgressFrames is solved >> by allocating the progress and giving each thread a reference >> to it). This will typically be solved by putting a ThreadProgress >> in a refcounted structure that is shared between threads. >> It will be put to the test in the following commits. >> >> An alternative to the check for whether the owner exists >> (meaning "do we use frame-threading?") would be to initialize >> the progress to INT_MAX in case frame threading is not in use. >> This would probably be preferable on arches where atomic reads >> are cheap (like x86), but are there ones where it is not? >> >> One could also (guarded by e.g. an ASSERT_LEVEL check) actually >> track the progress for non-framethreading, too, in order to >> track errors even in single-threaded mode. >> >> Signed-off-by: Andreas Rheinhardt >> --- >> libavcodec/pthread_frame.c | 50 +++++++++++++++++++++++++++++++++++++ >> libavcodec/threadprogress.h | 37 +++++++++++++++++++++++++++ >> 2 files changed, 87 insertions(+) >> create mode 100644 libavcodec/threadprogress.h > > Seems to break build here with shared libs / clang > > CC libavcodec/pthread_frame.o > src/libavcodec/pthread_frame.c:1108:9: error: address argument to atomic operation must be a pointer to non-const _Atomic type ('const atomic_int *' (aka 'const _Atomic(int) *') invalid) > atomic_load_explicit(&pro->progress, memory_order_acquire) >= n) > ^ ~~~~~~~~~~~~~~ > /usr/lib/llvm-6.0/lib/clang/6.0.0/include/stdatomic.h:135:30: note: expanded from macro 'atomic_load_explicit' > #define atomic_load_explicit __c11_atomic_load > ^ > src/libavcodec/pthread_frame.c:1116:12: error: address argument to atomic operation must be a pointer to non-const _Atomic type ('const atomic_int *' (aka 'const _Atomic(int) *') invalid) > while (atomic_load_explicit(&pro->progress, memory_order_relaxed) < n) > ^ ~~~~~~~~~~~~~~ > /usr/lib/llvm-6.0/lib/clang/6.0.0/include/stdatomic.h:135:30: note: expanded from macro 'atomic_load_explicit' > #define atomic_load_explicit __c11_atomic_load > ^ > 2 errors generated. > src/ffbuild/common.mak:81: recipe for target 'libavcodec/pthread_frame.o' failed > make: *** [libavcodec/pthread_frame.o] Error 1 > make: Target 'all' not remade because of errors. > The original version of C11 did not allow to use atomic_load() on const-qualified atomic objects (presumably because on systems that don't have native support for atomic operations this might involve locking a mutex or so and this would involve writes); this has since been changed (see defect report N1807), yet your (presumably) ancient toolchain does not reflect that. I'll cast const away here and add a comment. - 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".