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 5DF614A123 for ; Mon, 22 Apr 2024 07:20:34 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A4EFF68D2AF; Mon, 22 Apr 2024 10:20:32 +0300 (EEST) Received: from w4.tutanota.de (w4.tutanota.de [81.3.6.165]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3A73368CD27 for ; Mon, 22 Apr 2024 10:20:25 +0300 (EEST) Received: from tutadb.w10.tutanota.de (unknown [192.168.1.10]) by w4.tutanota.de (Postfix) with ESMTP id 7B6AB1060247 for ; Mon, 22 Apr 2024 07:20:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1713770425; s=s1; d=lynne.ee; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Content-Transfer-Encoding:Cc:Date:Date:In-Reply-To:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:References:Sender; bh=T2YeWsaCTcNv/tv8KuL3qM0nN3DuT1T53QIwj8xVlZ4=; b=L9t01qNT/dvNRBQazTcxspDlcs2ZgrtdXJ2hsduVQ3M0PIDX8F9ofTzgOp8+59+5 1bT8BWQl/2S3SQvHGXt305UWz04nd8cS0KzvzjcRxqGKs6PjckyeVcTy+EhY83Ciefn 1LYd1c4uyzTOXwBK37t6Jowz8cRMhAsP6G399R79x+8kp8EaWubA3IG09TgtV7Hplxq LdyUzjM+Njsj5um1OKORxnVdPUsaq4xoO55p9a+swKFffcEuc7aFeg5Oanm+W1yKVuO l8FPYFxcDTnsFomr8jvV70h9YEcUlbPuyKCAzKWKpxzOr/g28PvNwV9pcDRAbWJDcc5 lP6whF4gfQ== Date: Mon, 22 Apr 2024 09:20:25 +0200 (CEST) From: Lynne To: FFmpeg development discussions and patches Message-ID: In-Reply-To: <20240421221854.GA6420@pb2> References: <20240410181811.GP6420@pb2> <20240410215655.GR6420@pb2> <20240411224521.GZ6420@pb2> <20240421221854.GA6420@pb2> MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCHSET] AAC decoder refactor 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: Apr 22, 2024, 00:19 by michael@niedermayer.cc: > On Fri, Apr 12, 2024 at 11:11:53AM +0200, Lynne wrote: > >> Apr 12, 2024, 00:45 by michael@niedermayer.cc: >> >> > On Thu, Apr 11, 2024 at 07:42:37AM +0200, Lynne wrote: >> > >> >> Apr 10, 2024, 23:57 by michael@niedermayer.cc: >> >> >> >> > On Wed, Apr 10, 2024 at 08:18:11PM +0200, Michael Niedermayer wrote: >> >> > >> >> >> On Wed, Apr 10, 2024 at 06:48:26PM +0200, Lynne wrote: >> >> >> > Apr 8, 2024, 09:36 by dev@lynne.ee: >> >> >> > >> >> >> > > The following patchset refactors the AAC decoder step by step, >> >> >> > > removing all large-scale templating and abstracting away typed >> >> >> > > DSP functions from symbol parsing. >> >> >> > > >> >> >> > > This series saves 110Kib of binary data from libavcodec.so >> >> >> > > when compiled with Clang 18 with -O3, after stripping. >> >> >> > > >> >> >> > > The patchset can also be viewed here: >> >> >> > > https://github.com/cyanreg/FFmpeg/tree/aac_cleanup >> >> >> > > >> >> >> > > Fate passes on each step, and I've been running this patchset for >> >> >> > > a week with no issues. >> >> >> > > >> >> >> > > This also prepares the decoder for USAC support. >> >> >> > > >> >> >> > >> >> >> > I've rebased the linked repo to current git master if anyone >> >> >> > wants to test. >> >> >> >> >> >> thanks, i will try to test it >> >> >> >> >> > >> >> > make fate-source >> >> > >> >> > TEST source >> >> > --- ./tests/ref/fate/source 2024-04-08 18:26:00.670129617 +0200 >> >> > +++ tests/data/fate/source 2024-04-10 23:56:18.032896853 +0200 >> >> > @@ -22,6 +22,13 @@ >> >> > compat/djgpp/math.h >> >> > compat/float/float.h >> >> > compat/float/limits.h >> >> > +libavcodec/aac/aacdec.h >> >> > +libavcodec/aac/aacdec_fixed_coupling.h >> >> > +libavcodec/aac/aacdec_fixed_dequant.h >> >> > +libavcodec/aac/aacdec_fixed_prediction.h >> >> > +libavcodec/aac/aacdec_float_coupling.h >> >> > +libavcodec/aac/aacdec_float_prediction.h >> >> > +libavcodec/aac/aacdec_latm.h >> >> > libavcodec/bitstream_template.h >> >> > tools/decode_simple.h >> >> > Use of av_clip() where av_clip_uintp2() could be used: >> >> > Test source failed. Look at tests/data/fate/source.err for details. >> >> > tests/Makefile:310: recipe for target 'fate-source' failed >> >> > make: *** [fate-source] Error 1 >> >> > >> >> >> >> Thanks for testing. Fixed both issues in the repo. >> >> Was only testing with fate-aac while developing. >> >> >> > >> > mips: >> > >> > make -k >> > LD ffmpeg_g >> > libavcodec/libavcodec.a(aacsbr.o): In function `ff_aac_sbr_ctx_alloc_init': >> > aacsbr.c:(.text.unlikely+0x1d4): undefined reference to `ff_aacsbr_func_ptr_init_mips' >> > aacsbr.c:(.text.unlikely+0x200): undefined reference to `ff_aacsbr_func_ptr_init_mips' >> > libavcodec/libavcodec.a(sbrdsp.o): In function `ff_sbrdsp_init': >> > sbrdsp.c:(.text.unlikely+0x10): undefined reference to `ff_sbrdsp_init_mips' >> > sbrdsp.c:(.text.unlikely+0xb4): undefined reference to `ff_sbrdsp_init_mips' >> > libavcodec/libavcodec.a(aacpsdsp_float.o): In function `ff_psdsp_init': >> > aacpsdsp_float.c:(.text.unlikely+0x10): undefined reference to `ff_psdsp_init_mips' >> > aacpsdsp_float.c:(.text.unlikely+0x6c): undefined reference to `ff_psdsp_init_mips' >> > collect2: error: ld returned 1 exit status >> > Makefile:136: recipe for target 'ffmpeg_g' failed >> > make: *** [ffmpeg_g] Error 1 >> > LD ffprobe_g >> > libavcodec/libavcodec.a(aacsbr.o): In function `ff_aac_sbr_ctx_alloc_init': >> > aacsbr.c:(.text.unlikely+0x1d4): undefined reference to `ff_aacsbr_func_ptr_init_mips' >> > aacsbr.c:(.text.unlikely+0x200): undefined reference to `ff_aacsbr_func_ptr_init_mips' >> > libavcodec/libavcodec.a(sbrdsp.o): In function `ff_sbrdsp_init': >> > sbrdsp.c:(.text.unlikely+0x10): undefined reference to `ff_sbrdsp_init_mips' >> > sbrdsp.c:(.text.unlikely+0xb4): undefined reference to `ff_sbrdsp_init_mips' >> > libavcodec/libavcodec.a(aacpsdsp_float.o): In function `ff_psdsp_init': >> > aacpsdsp_float.c:(.text.unlikely+0x10): undefined reference to `ff_psdsp_init_mips' >> > aacpsdsp_float.c:(.text.unlikely+0x6c): undefined reference to `ff_psdsp_init_mips' >> > collect2: error: ld returned 1 exit status >> > Makefile:136: recipe for target 'ffprobe_g' failed >> > make: *** [ffprobe_g] Error 1 >> > make: Target 'all' not remade because of errors. >> > >> >> Fixed. This should be all. >> On the Loongson machine I have access to, I can't compile FFmpeg >> due to missing asm/errno.h kernel header, while on the standard MIPS64 >> machine I can access, compilation worked either way. >> >> Would you mind testing again the new version in the repo? >> > > it works on my qemu based mips. I did give the loongson to anton 2 years ago > so i have no native loongson to test it with > Thanks. That sounds good enough for me, really the main potential issue I see with this is that it changes the way files are organized to be more like the VVC decoder. Since no one seems bothered by that, I'll move on with pushing this tomorrow. _______________________________________________ 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".