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 4362843CA3 for ; Thu, 4 Aug 2022 14:38:07 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C9BAB68B9B5; Thu, 4 Aug 2022 17:38:04 +0300 (EEST) Received: from mail0.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9823368B76F for ; Thu, 4 Aug 2022 17:37:58 +0300 (EEST) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id BC2A6240179 for ; Thu, 4 Aug 2022 16:37:57 +0200 (CEST) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id 75BL1sKYgme0 for ; Thu, 4 Aug 2022 16:37:56 +0200 (CEST) Received: from lain.khirnov.net (lain.khirnov.net [IPv6:2001:67c:1138:4306::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "lain.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail0.khirnov.net (Postfix) with ESMTPS id 4FF382400F5 for ; Thu, 4 Aug 2022 16:37:56 +0200 (CEST) Received: by lain.khirnov.net (Postfix, from userid 1000) id 7B14E1601B2; Thu, 4 Aug 2022 16:37:56 +0200 (CEST) From: Anton Khirnov To: FFmpeg development discussions and patches In-Reply-To: =?utf-8?q?=3CDB6PR0101MB2214640DBCD9474057FBF8808F9F9=40DB6PR01?= =?utf-8?q?01MB2214=2Eeurprd01=2Eprod=2Eexchangelabs=2Ecom=3E?= References: <20220803135844.16662-1-anton@khirnov.net> <20220803135844.16662-7-anton@khirnov.net> <20220804124009.GI2088045@pb2> =?utf-8?q?=3CDB6PR0101MB2214640DBCD9474057FBF8808F9F9=40DB6PR0101MB2214=2Ee?= =?utf-8?q?urprd01=2Eprod=2Eexchangelabs=2Ecom=3E?= Mail-Followup-To: FFmpeg development discussions and patches Date: Thu, 04 Aug 2022 16:37:56 +0200 Message-ID: <165962387647.15471.8117322129211321627@lain.khirnov.net> User-Agent: alot/0.8.1 MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH 07/25] fftools/ffmpeg: remove OutputStream.stream_copy 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: Quoting Andreas Rheinhardt (2022-08-04 14:54:41) > Michael Niedermayer: > > On Wed, Aug 03, 2022 at 03:58:26PM +0200, Anton Khirnov wrote: > >> There are currently three possible modes for an output stream: > >> 1) The stream is produced by encoding output from some filtergraph. This > >> is true when ost->enc_ctx != NULL, or equivalently when > >> ost->encoding_needed != 0. > >> 2) The stream is produced by copying some input stream's packets. This > >> is true when ost->enc_ctx == NULL && ost->source_index >= 0. > >> 3) The stream is produced by attaching some file directly. This is true > >> when ost->enc_ctx == NULL && ost->source_index < 0. > >> > >> OutputStream.stream_copy is currently used to identify case 2), and > >> sometimes to confusingly (or even incorrectly) identify case 1). Remove > >> it, replacing its usage with checking enc_ctx/source_index values. > >> --- > >> fftools/ffmpeg.c | 23 +++++++++-------------- > >> fftools/ffmpeg.h | 1 - > >> fftools/ffmpeg_opt.c | 33 ++++++++++++--------------------- > >> 3 files changed, 21 insertions(+), 36 deletions(-) > > > > seems to break build with shared libs: > > > > CC fftools/ffmpeg.o > > src/fftools/ffmpeg.c:405:32: warning: suggest braces around initialization of subobject [-Wmissing-braces] > > struct sigaction action = {0}; > > ^ > > {} > > src/fftools/ffmpeg.c:1612:37: error: address argument to atomic operation must be a pointer to non-const _Atomic type ('const atomic_uint_least64_t *' (aka 'const _Atomic(uint_least64_t) *') invalid) > > uint64_t frame_number = atomic_load(&ost->packets_written); > > ^ ~~~~~~~~~~~~~~~~~~~~~ > > /usr/lib/llvm-6.0/lib/clang/6.0.0/include/stdatomic.h:134:29: note: expanded from macro 'atomic_load' > > #define atomic_load(object) __c11_atomic_load(object, __ATOMIC_SEQ_CST) > > ^ ~~~~~~ > > 1 warning and 1 error generated. > > src/ffbuild/common.mak:81: recipe for target 'fftools/ffmpeg.o' failed > > make: *** [fftools/ffmpeg.o] Error 1 > > > > [...] > > > > This has nothing to do with shared libs. It is just that C11 defines > atomic_load in such a way that it does not allow a pointer to const > atomic; presumably because atomic types might be emulated via mutexes in > which case even a read involves a write. I don't even get a warning with gcc 11 or clang 13. -- Anton Khirnov _______________________________________________ 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".