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 E7F1C43B4C for ; Mon, 15 Aug 2022 04:20:58 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8BF6968B955; Mon, 15 Aug 2022 07:20:55 +0300 (EEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-oln040092068018.outbound.protection.outlook.com [40.92.68.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EDCBB68B72B for ; Mon, 15 Aug 2022 07:20:48 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=igXpT4AIgFVm2SKkbj2iKa5jJLKA0JkC7fiA1RYb9cFesZgx3LGdl+CJXDFNyFYpKv1gSp+MVWjKtPJEqerRsBuS85vvq9QSD9S6vhqLUW2a3N7DUMdZTtRkZqjwupdW1hK/KatnAbOudxf2191IanwmrF772MKPoXs8n2wL3N74PQKw0BqYPi/eQZj6vFppC1e/xXJktJZpphee6KKZV/II2fyz2pw3Iq7tnM/wTurJ5zmtBDdJYJ1xa/TIhEfRNST/M5t/NjC45+yfQsSXGu4VOWs48y2+AwQlXgx9aHGFHQUyqcTlL2+t9Yah+3HRiYeteoMl8iOZaUu4mC1DLw== 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=n2jGM9x6+eTSOcb/J8kXTbp/FObRzsQ+337OFdBXXN4=; b=JpN7S2XuSCGqzwG94lCoH9PE0RuZ+QBu0+Z8oPWfArC2PWuvdNvaSFrCVKMw2iYSU1MHqySpyS1Jo2HlO7GIWS9nXFMqvGF90h7E3gbwiqYhPik+QnMDa3XzY1FgfLR541mX7tMgx08T63iPsRm/OAodXOamoWE2f/mby+ac6jLGx5u4XCGaOCMBk+EyjmFBm5dndPAW0nmVFihkQoY17Cu/BAynGLffXabJpjyIXMtkXYrKHNGg2/AKEOBWfQXOaq+VLjRQv7ZPXADN+scA9V8Oamigi6ezFf+hN5H8siZ8ve1PBSsE7DMdzVJ2E8NClg7CoTC3awTdesLHP7C3Qw== 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=n2jGM9x6+eTSOcb/J8kXTbp/FObRzsQ+337OFdBXXN4=; b=mE9rhI5m2Nhi9wk/HtEbByUVnmhxQZhPXTFH43EEJ4A6ko3zX/5aHofkUO6J9E72TjugTyywWTQUjmqb0H/FfLP6Y/EV2t5ySruWQGKrdSdGXMstru1nBsQWZD1sjbmdJH/mcDaNHeD5xXBC7dewn5qFN/Fyg27R/GAs+ULf48rmMpEc7P8tyN8SfrziZerYQgqZrX5n2TFtB1mL4/rUhiLa+W7YFsSZuGl4ADjJSt8plukAasf6Xu+mnpUozF40NEBWX7479zGeXz9bq/hTP8tGlFMWSYtO++2VQJ2aCZV05mzWXNevyJu8n3CEOGWdVsW8OoVi+LpreCoWeWHrSA== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DU2PR01MB8813.eurprd01.prod.exchangelabs.com (2603:10a6:10:2fc::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5525.10; Mon, 15 Aug 2022 04:20:47 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5504.027; Mon, 15 Aug 2022 04:20:46 +0000 Message-ID: Date: Mon, 15 Aug 2022 06:20:45 +0200 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220810204712.3123-1-timo@rothenpieler.org> <20220810204712.3123-8-timo@rothenpieler.org> <20220811204616.GF2088045@pb2> <20220811211659.GH2088045@pb2> <20220814193223.GP2088045@pb2> From: Andreas Rheinhardt In-Reply-To: <20220814193223.GP2088045@pb2> X-TMN: [8jdFYZAPcgsEWGOJhiHtNO5KdhApW5UC] X-ClientProxiedBy: ZR0P278CA0112.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:20::9) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <624c6ef5-efb2-0d89-b686-ade0edf929b2@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: db73686d-1ccb-42fd-2555-08da7e7586c7 X-MS-TrafficTypeDiagnostic: DU2PR01MB8813:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HZl2W/DaGgGdQm5udIQFMwGbRH7mzwMTgyrxIA378Q346iizxYIwxRiMcOApyMOj0kK7tvU9MalrfZjx/9RKoMmIn+t9J40Lm84yi+nSTELkMevAisu9Egav0iHBzxum3yzV4y98zBtTdbXbp1avBbH3SfsG+rrR2hdEkF/REknUekah5qMslEFSwrdANmnqccWnQloCOdwIheioi+J3r/EWWmN2q5/qGV5HNrfo0k3pg8HFkcdFXfwFr86Oa8Eo3UWFks/+i7mq3j0+uc7xKP21LUtG5NDHyCl/QDpT6Pb2xi9z9isAVw4iBOm+m7nTrox/WZUJGWzV0v2Tu/ufBG1fpckowgRYEvHjBbp+fzfeEV21r5YBRMtkWmPhh9JIX4Pe+QQCO4ix4YOsmhjnCgk5vWLKfyvIADbiw4CmhopWffEHipUKbHFMhVWZ5RgC1+pMZGNLlDVUS7G8s+JSks5Ijx4/fn0dsEaK0kknx5F4VKDN2Q9l8tff9TdxXgHsqgo5tmhq2y1foaInqreP9+uMEjO2003hhEzdDDHvu+atAiX62xzsILh8quFMsJMEy58mLLsjKDuRg0g91EVpWZST58BINloTfMjC84ZRBq2Umf/ca5dL5MCb6fC0RZFlNIPMMf4VJAG9Oeaz5rlZzY8h8JxsY74h3lzBsSwevXv6kxh+n/S6lL4j2hYCne0g X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YUdGZEt5cld6UDZsWTF3S0M4Zk5jdExvc2xWYzZsSDJ3MHdwNENGVU0zZmxO?= =?utf-8?B?WlhwQ29iOHBLUFdyWGlOR1RNL0FkdE8wK1JRK2FFaGFxMzJsZms0T2lnZUNw?= =?utf-8?B?d2ZwS3IvczU0SUNqUTZDczZsT2Npa2FQeTRFSnQrUjZCWU1OajBGM3ZOb0Ju?= =?utf-8?B?NVlwZVhySHdSYk5xeHVRRkZxaWtTNXkwK1FYYTFRZm5NdU1wV1hIV0xPbC9s?= =?utf-8?B?WHFSbE1veTRUTmdEdHZ0MTRIenB6MHcwM1d4WDh2SkRhQnJyYjhHUmxGeVFz?= =?utf-8?B?cXhKZmZnSzZFSlN1WlBoZE5Fa1JVZjhzNmN6YUc3NS9wVTl0NXBCMHhoWnli?= =?utf-8?B?ZjNqaStpRGdDWlN6eXpuazNyZ25UbXBMNEFmMVZhcTRtTndvVHUwZXVHMTZx?= =?utf-8?B?YStCcEtjT1ZPVE1UOTZjR3VoQXZFS3VmN1lraWpPejRDM2d4YytPL09uamhL?= =?utf-8?B?TGhFWnN1TmNBd21LVHl1T3VYcVM4RTBSN1BveXd0bzJsMFVOWFRhRllWY2lJ?= =?utf-8?B?ZDlsMmJzU3dFUFc0akkxUW11aXhPSmNsZjZxdTI2RWJNa3NhU2haalg3T256?= =?utf-8?B?ZUtJajFWSjBENGFNUktKNk9DL04vcUxGYk1jUFdhVzNyWkNYaHpsSmhrRDVU?= =?utf-8?B?dC8vUm4xNWZYMEh3ZnNoVnE4Q0dPOG0rUkU3cFNnd0tZd2h4RHV0cVVzcGZk?= =?utf-8?B?SzBFVW5RT1E4U0VpM0VYNytkaG1Fa1lMVkNlZnpuZHU0TE85MEJqUUdnNDBa?= =?utf-8?B?WVJMUm16V24ybmRNMW42RDMrV0ovNkhaKzN6NW5aMDFKMytWV2hISGpXS2l5?= =?utf-8?B?OUhmaTJTRVlSS0lrMzhVT242RTU2RU1CUjRvNktFTGdTdU1zK2FFY09SMnFY?= =?utf-8?B?c3Vna1E5S1F0UDFBY1FsQ2V1V3VxZVpEWGkxZ0JZS0VYUkw0aEVWQStETzk0?= =?utf-8?B?RU1wcVU3aXNzaHcrUzhzbkhIR0d4eXdNbmR5MmtKaW43bDBUTWJzazRuQm9N?= =?utf-8?B?MWFCWFNtblJnR0RGeFVmLzVCVkZBdlFhb3V0eFFkeFFDdStORzRRMmx3OEgv?= =?utf-8?B?d2NkUnR0cTVqS0VsWnduazdDVTJqQnNVNkVzNXAyTXhTTHdNcjhUYlR2c1U3?= =?utf-8?B?eWJhNEEybWkyUDZJaVNsR3ZKU243LzVsUXdQaEJndktjZjF1eUdJRStsSWI2?= =?utf-8?B?aWZNUHlFUWp6dTFZbUpINkp4eEVkOXA3c3FpMEJKd2xMVjFRWkQrQW9DS2FR?= =?utf-8?B?VjlINWJRSk56RGpTbnZPWTRoQzg3WmRHeU14TEpwTGJseEZPaGIwSjRBTnNR?= =?utf-8?B?WUNuTXlYeERNbURPOXpEdTJ1WW9nY01YUWZBcUYyaGQwb3IzMWdOOFFYWGNS?= =?utf-8?B?OGZuSlovcVJWL0I0TkpyZnk1WkJrNS80K0YrcTA2bWtLOGtOM2FlWThVV3BZ?= =?utf-8?B?SC9rWnlOYm9DT3c1aU12RVltMWtMT2RjL2hlME1EcWlLVktxN3QzY0NGbC9l?= =?utf-8?B?NzJPbWZTQ3FFemhsYUNSSDJwV0Q5RjRzYWZQdUVPR2tpblBNaXZKRUJzSDda?= =?utf-8?B?Uk1lMWswVER1RHZDdXlXSENkMmFLTk4yMGl2eWdhODRteE94NGtUNmpReExK?= =?utf-8?B?b3R0SUhlV0lnSk1lVUEwMTNydG9FM01tM2RoY2ZCcTZRNjUrV1pUUVRQaVVO?= =?utf-8?B?c3piQzV1UzZsQlkyNnpIY0gwSG9SWTU3SXUwaEFPamo1d1B0NDV6a1BzOWhC?= =?utf-8?Q?iHLAkw93fD7fVfXahQ=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: db73686d-1ccb-42fd-2555-08da7e7586c7 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2022 04:20:46.6942 (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: DU2PR01MB8813 Subject: Re: [FFmpeg-devel] [PATCH 08/11] avutil/half2float: move non-inline init code out of header 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 Thu, Aug 11, 2022 at 11:31:32PM +0200, Andreas Rheinhardt wrote: >> Michael Niedermayer: >>> On Thu, Aug 11, 2022 at 10:50:10PM +0200, Andreas Rheinhardt wrote: >>>> Michael Niedermayer: >>>>> On Wed, Aug 10, 2022 at 10:47:09PM +0200, Timo Rothenpieler wrote: >>>>>> --- >>>>>> libavcodec/Makefile | 8 +++--- >>>>>> libavcodec/exr.c | 2 +- >>>>>> libavcodec/exrenc.c | 2 +- >>>>>> libavcodec/float2half.c | 19 +++++++++++++ >>>>>> libavcodec/half2float.c | 19 +++++++++++++ >>>>>> libavcodec/pnmdec.c | 2 +- >>>>>> libavcodec/pnmenc.c | 2 +- >>>>>> libavutil/float2half.c | 53 ++++++++++++++++++++++++++++++++++ >>>>>> libavutil/float2half.h | 36 ++--------------------- >>>>>> libavutil/half2float.c | 63 +++++++++++++++++++++++++++++++++++++++++ >>>>>> libavutil/half2float.h | 46 ++---------------------------- >>>>>> 11 files changed, 166 insertions(+), 86 deletions(-) >>>>>> create mode 100644 libavcodec/float2half.c >>>>>> create mode 100644 libavcodec/half2float.c >>>>>> create mode 100644 libavutil/float2half.c >>>>>> create mode 100644 libavutil/half2float.c >>>>>> >>>>>> diff --git a/libavcodec/Makefile b/libavcodec/Makefile >>>>>> index 029f1bad3d..cb80f73d99 100644 >>>>>> --- a/libavcodec/Makefile >>>>>> +++ b/libavcodec/Makefile >>>>>> @@ -337,8 +337,8 @@ OBJS-$(CONFIG_EIGHTSVX_FIB_DECODER) += 8svx.o >>>>>> OBJS-$(CONFIG_ESCAPE124_DECODER) += escape124.o >>>>>> OBJS-$(CONFIG_ESCAPE130_DECODER) += escape130.o >>>>>> OBJS-$(CONFIG_EVRC_DECODER) += evrcdec.o acelp_vectors.o lsp.o >>>>>> -OBJS-$(CONFIG_EXR_DECODER) += exr.o exrdsp.o >>>>>> -OBJS-$(CONFIG_EXR_ENCODER) += exrenc.o >>>>>> +OBJS-$(CONFIG_EXR_DECODER) += exr.o exrdsp.o half2float.o >>>>>> +OBJS-$(CONFIG_EXR_ENCODER) += exrenc.o float2half.o >>>>>> OBJS-$(CONFIG_FASTAUDIO_DECODER) += fastaudio.o >>>>>> OBJS-$(CONFIG_FFV1_DECODER) += ffv1dec.o ffv1.o >>>>>> OBJS-$(CONFIG_FFV1_ENCODER) += ffv1enc.o ffv1.o >>>>>> @@ -570,8 +570,8 @@ OBJS-$(CONFIG_PGMYUV_DECODER) += pnmdec.o pnm.o >>>>>> OBJS-$(CONFIG_PGMYUV_ENCODER) += pnmenc.o >>>>>> OBJS-$(CONFIG_PGSSUB_DECODER) += pgssubdec.o >>>>>> OBJS-$(CONFIG_PGX_DECODER) += pgxdec.o >>>>>> -OBJS-$(CONFIG_PHM_DECODER) += pnmdec.o pnm.o >>>>>> -OBJS-$(CONFIG_PHM_ENCODER) += pnmenc.o >>>>>> +OBJS-$(CONFIG_PHM_DECODER) += pnmdec.o pnm.o half2float.o >>>>>> +OBJS-$(CONFIG_PHM_ENCODER) += pnmenc.o float2half.o >>>>>> OBJS-$(CONFIG_PHOTOCD_DECODER) += photocd.o >>>>>> OBJS-$(CONFIG_PICTOR_DECODER) += pictordec.o cga_data.o >>>>>> OBJS-$(CONFIG_PIXLET_DECODER) += pixlet.o >>>>>> diff --git a/libavcodec/exr.c b/libavcodec/exr.c >>>>>> index 825354873d..a3582bfdd6 100644 >>>>>> --- a/libavcodec/exr.c >>>>>> +++ b/libavcodec/exr.c >>>>>> @@ -2208,7 +2208,7 @@ static av_cold int decode_init(AVCodecContext *avctx) >>>>>> float one_gamma = 1.0f / s->gamma; >>>>>> avpriv_trc_function trc_func = NULL; >>>>>> >>>>>> - init_half2float_tables(&s->h2f_tables); >>>>>> + ff_init_half2float_tables(&s->h2f_tables); >>>>> [...] >>>>>> diff --git a/libavutil/float2half.c b/libavutil/float2half.c >>>>>> new file mode 100644 >>>>>> index 0000000000..dba14cef5d >>>>>> --- /dev/null >>>>>> +++ b/libavutil/float2half.c >>>>> [...] >>>>>> +void ff_init_float2half_tables(float2half_tables *t) >>>>> >>>>> this will need avpriv or break linking with shared libs >>>>> >>>> >>>> No, because this code is duplicated into all libraries that need it. >>>> (In case of static linking, only one of the variants will be used >>>> (namely the first one encountered in the link.) >>> >>> libswscale/libswscale.so: undefined reference to `ff_init_half2float_tables' >>> libswscale/libswscale.so: undefined reference to `ff_init_half2float_tables' >>> clang: error: linker command failed with exit code 1 (use -v to see invocation) >>> Makefile:131: recipe for target 'ffplay_g' failed >>> make: *** [ffplay_g] Error 1 >>> make: *** Waiting for unfinished jobs.... >>> clang: error: linker command failed with exit code 1 (use -v to see invocation) >>> libswscale/libswscale.so: undefined reference to `ff_init_half2float_tables' >>> Makefile:131: recipe for target 'ffprobe_g' failed >>> make: *** [ffprobe_g] Error 1 >>> clang: error: linker command failed with exit code 1 (use -v to see invocation) >>> Makefile:131: recipe for target 'ffmpeg_g' failed >>> make: *** [ffmpeg_g] Error 1 >>> >> >> That is with the whole patchset applied, isn't it!? Duplicating the init >> stuff into swscale has been forgotten. > > Ive tried the new latest patchset and this still happens > As explained here: https://ffmpeg.org/pipermail/ffmpeg-devel/2022-August/300045.html, the reason is that the patch that makes use of this in libswscale adds the half2float.o dependency to libavutil. > make distclean ; ../configure --enable-shared --cc='ccache clang-6.0' --enable-pthreads --samples=fate/fate-suite/ --enable-version3 --extra-cflags='-O1 -fno-omit-frame-pointer' && make -j32 > > LD ffmpeg_g > LD ffplay_g > LD ffprobe_g > libswscale/libswscale.so: undefined reference to `ff_init_half2float_tables' > clang: error: linker command failed with exit code 1 (use -v to see invocation) > Makefile:131: recipe for target 'ffprobe_g' failed > make: *** [ffprobe_g] Error 1 > make: *** Waiting for unfinished jobs.... > libswscale/libswscale.so: undefined reference to `ff_init_half2float_tables' > clang: error: linker command failed with exit code 1 (use -v to see invocation) > Makefile:131: recipe for target 'ffplay_g' failed > make: *** [ffplay_g] Error 1 > libswscale/libswscale.so: undefined reference to `ff_init_half2float_tables' > clang: error: linker command failed with exit code 1 (use -v to see invocation) > Makefile:131: recipe for target 'ffmpeg_g' failed > make: *** [ffmpeg_g] Error 1 > > git grep ff_init_half2float_tables > libavcodec/exr.c: ff_init_half2float_tables(&s->h2f_tables); > libavcodec/pnmdec.c: ff_init_half2float_tables(&s->h2f_tables); > libavutil/half2float.c:void ff_init_half2float_tables(Half2FloatTables *t) > libavutil/half2float.h:void ff_init_half2float_tables(Half2FloatTables *t); > libswscale/slice.c: ff_init_half2float_tables(c->h2f_tables); > > libavcodec/half2float.c:#include "libavutil/half2float.c" > libswscale/half2float.c:#include "libavutil/half2float.c" > > git grep half2float.o > libavcodec/Makefile:OBJS-$(CONFIG_EXR_DECODER) += exr.o exrdsp.o half2float.o > libavcodec/Makefile:OBJS-$(CONFIG_PHM_DECODER) += pnmdec.o pnm.o half2float.o > libavutil/Makefile: half2float.o \ > > also i tried this: > -#include "libavutil/half2float.c" > +#inklude "libavutil/half2float.c" > > and still it fails at linking stage not compile, really impressive the compiler > speaks german C too > No, the libswscale/half2float.c file is just not compiled at all, see above. > > Heres the patches applied: > > 46e36b5371 swscale/input: add rgbaf16 input support > 34446f3971 swscale: add opaque parameter to input functions > 88cf148514 avutil/half2float: use native _Float16 if available > af6c41450c avutil/half2float: move non-inline init code out of header > 2f2ac4c8c9 avutil/half2float: move tables to header-internal structs > 19ac9a570e avutil/half2float: adjust conversion of NaN > 45180741cd avutil: move half-precision float helper to avutil > > (some more unrelated patches) > > thx _______________________________________________ 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".