Re: [FFmpeg-devel] [PATCH 1/2] checkasm: test for abs_pow34
Le lauantaina 9. joulukuuta 2023, 12.45.03 EET flow gg a écrit : > There's a strange issue: > > Adding tests can compile successfully on x86 and lichee4a (risc v), but it > results in an error on k230. > > > collect2: fatal error: ld terminated with signal 9 [Killed] > > compilation terminated. > > > > [32833.539109] > > oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),task=ld,pid=6804,uid=100 > 0 > > [32833.547321] Out of memory: Killed process 6804 (ld) total-vm:363180kB, > > anon-rss:357536kB, file-rss:932kB, shmem-rss:0kB, UID:1000 pgtables:732kB > oom_score_adj:0 > > > [32833.653223] oom_reaper: reaped process 6804 (ld), now anon-rss:0kB, > > file-rss:0kB, shmem-rss:0kB > > If I remove the line 1429 with FF_CODEC_ENCODE_CB(aac_encode_frame), there > is no error on k230, but I am unsure of the reason. Looks like plain dumb out-of-memory situation? Not all that surprising when the hardware has only 512 MiB of RAM. -- レミ・デニ-クールモン http://www.remlab.net/ ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/2] checkasm: test for abs_pow34
To express clearly,I mean remove libavcodec/aacenc.c:1429 FF_CODEC_ENCODE_CB(aac_encode_frame) ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/2] checkasm: test for abs_pow34
There's a strange issue: Adding tests can compile successfully on x86 and lichee4a (risc v), but it results in an error on k230. > collect2: fatal error: ld terminated with signal 9 [Killed] > compilation terminated. > > [32833.539109] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),task=ld,pid=6804,uid=1000 > [32833.547321] Out of memory: Killed process 6804 (ld) total-vm:363180kB, anon-rss:357536kB, file-rss:932kB, shmem-rss:0kB, UID:1000 pgtables:732kB oom_score_adj:0 > [32833.653223] oom_reaper: reaped process 6804 (ld), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB If I remove the line 1429 with FF_CODEC_ENCODE_CB(aac_encode_frame), there is no error on k230, but I am unsure of the reason. flow gg 于2023年12月5日周二 05:46写道: > Because there was a conflict, the patch was updated in the reply > > flow gg 于2023年12月1日周五 04:25写道: > >> Okay, I splited and attached >> >> >> >> Rémi Denis-Courmont 于2023年11月30日周四 23:31写道: >> >>> Le tiistaina 28. marraskuuta 2023, 18.59.38 EET flow gg a écrit : >>> > >>> >>> Since nobody else commented, I shall note that you should probably split >>> the >>> underlying lavc changes into a separate preliminary patch. >>> >>> -- >>> レミ・デニ-クールモン >>> http://www.remlab.net/ >>> >>> >>> >>> ___ >>> ffmpeg-devel mailing list >>> ffmpeg-devel@ffmpeg.org >>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>> >>> To unsubscribe, visit link above, or email >>> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". >>> >> ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/2] checkasm: test for abs_pow34
Because there was a conflict, the patch was updated in the reply flow gg 于2023年12月1日周五 04:25写道: > Okay, I splited and attached > > > > Rémi Denis-Courmont 于2023年11月30日周四 23:31写道: > >> Le tiistaina 28. marraskuuta 2023, 18.59.38 EET flow gg a écrit : >> > >> >> Since nobody else commented, I shall note that you should probably split >> the >> underlying lavc changes into a separate preliminary patch. >> >> -- >> レミ・デニ-クールモン >> http://www.remlab.net/ >> >> >> >> ___ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". >> > From 278632c349dad4f5f551e7565511d5095b607d06 Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Fri, 1 Dec 2023 04:21:53 +0800 Subject: [PATCH 1/2] lvac/aacenc: add ff_aac_dsp_init This is for clarity and use in testing, consistent with other parts of the code. --- libavcodec/aacenc.c | 24 ++-- libavcodec/aacenc.h | 1 + 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index 5e6a255a8f..443b25e25a 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -1381,16 +1381,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx) ff_lpc_init(>lpc, 2*avctx->frame_size, TNS_MAX_ORDER, FF_LPC_TYPE_LEVINSON); s->random_state = 0x1f2e3d4c; -s->abs_pow34 = abs_pow34_v; -s->quant_bands = quantize_bands; - -#if ARCH_X86 -ff_aac_dsp_init_x86(s); -#endif - -#if HAVE_MIPSDSP -ff_aac_coder_init_mips(s); -#endif + ff_aac_dsp_init(s); ff_af_queue_init(avctx, >afq); @@ -1444,3 +1435,16 @@ const FFCodec ff_aac_encoder = { AV_SAMPLE_FMT_NONE }, .p.priv_class = _class, }; + +void ff_aac_dsp_init(AACEncContext *s){ +s->abs_pow34 = abs_pow34_v; +s->quant_bands = quantize_bands; + +#if ARCH_X86 +ff_aac_dsp_init_x86(s); +#endif + +#if HAVE_MIPSDSP +ff_aac_coder_init_mips(s); +#endif +} diff --git a/libavcodec/aacenc.h b/libavcodec/aacenc.h index b030c652ae..09dd8639be 100644 --- a/libavcodec/aacenc.h +++ b/libavcodec/aacenc.h @@ -154,6 +154,7 @@ typedef struct AACEncContext { } buffer; } AACEncContext; +void ff_aac_dsp_init(AACEncContext *s); void ff_aac_dsp_init_x86(AACEncContext *s); void ff_aac_coder_init_mips(AACEncContext *c); void ff_quantize_band_cost_cache_init(struct AACEncContext *s); -- 2.43.0 From 0ce3bcfee65eab85d899ee734ab75c4202aa03ac Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Tue, 28 Nov 2023 14:08:12 +0800 Subject: [PATCH 2/2] checkasm: test for abs_pow34 --- tests/checkasm/Makefile| 1 + tests/checkasm/aacencdsp.c | 70 ++ tests/checkasm/checkasm.c | 3 ++ tests/checkasm/checkasm.h | 1 + tests/fate/checkasm.mak| 3 +- 5 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 tests/checkasm/aacencdsp.c diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile index 53742c93ae..05f07ca560 100644 --- a/tests/checkasm/Makefile +++ b/tests/checkasm/Makefile @@ -23,6 +23,7 @@ AVCODECOBJS-$(CONFIG_VIDEODSP) += videodsp.o # decoders/encoders AVCODECOBJS-$(CONFIG_AAC_DECODER) += aacpsdsp.o \ sbrdsp.o +AVCODECOBJS-$(CONFIG_AAC_ENCODER) += aacencdsp.o AVCODECOBJS-$(CONFIG_ALAC_DECODER) += alacdsp.o AVCODECOBJS-$(CONFIG_DCA_DECODER) += synth_filter.o AVCODECOBJS-$(CONFIG_EXR_DECODER) += exrdsp.o diff --git a/tests/checkasm/aacencdsp.c b/tests/checkasm/aacencdsp.c new file mode 100644 index 00..684c775862 --- /dev/null +++ b/tests/checkasm/aacencdsp.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with FFmpeg; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include + +#include "libavutil/mem.h" +#include "libavutil/mem_internal.h" + +#include "libavcodec/aacenc.h" + +#include "checkasm.h" + +#define randomize_float(buf, len) \ +do {\ +int i;
Re: [FFmpeg-devel] [PATCH 1/2] checkasm: test for abs_pow34
Okay, I splited and attached Rémi Denis-Courmont 于2023年11月30日周四 23:31写道: > Le tiistaina 28. marraskuuta 2023, 18.59.38 EET flow gg a écrit : > > > > Since nobody else commented, I shall note that you should probably split > the > underlying lavc changes into a separate preliminary patch. > > -- > レミ・デニ-クールモン > http://www.remlab.net/ > > > > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > From 95716fe7798ef207bb7924dff81970a45c358173 Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Fri, 1 Dec 2023 04:21:53 +0800 Subject: [PATCH 1/3] lvac/aacenc: add ff_aac_dsp_init This is for clarity and use in testing, consistent with other parts of the code. --- libavcodec/aacenc.c | 24 ++-- libavcodec/aacenc.h | 1 + 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index 5e6a255a8f..443b25e25a 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -1381,16 +1381,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx) ff_lpc_init(>lpc, 2*avctx->frame_size, TNS_MAX_ORDER, FF_LPC_TYPE_LEVINSON); s->random_state = 0x1f2e3d4c; -s->abs_pow34 = abs_pow34_v; -s->quant_bands = quantize_bands; - -#if ARCH_X86 -ff_aac_dsp_init_x86(s); -#endif - -#if HAVE_MIPSDSP -ff_aac_coder_init_mips(s); -#endif + ff_aac_dsp_init(s); ff_af_queue_init(avctx, >afq); @@ -1444,3 +1435,16 @@ const FFCodec ff_aac_encoder = { AV_SAMPLE_FMT_NONE }, .p.priv_class = _class, }; + +void ff_aac_dsp_init(AACEncContext *s){ +s->abs_pow34 = abs_pow34_v; +s->quant_bands = quantize_bands; + +#if ARCH_X86 +ff_aac_dsp_init_x86(s); +#endif + +#if HAVE_MIPSDSP +ff_aac_coder_init_mips(s); +#endif +} diff --git a/libavcodec/aacenc.h b/libavcodec/aacenc.h index b030c652ae..09dd8639be 100644 --- a/libavcodec/aacenc.h +++ b/libavcodec/aacenc.h @@ -154,6 +154,7 @@ typedef struct AACEncContext { } buffer; } AACEncContext; +void ff_aac_dsp_init(AACEncContext *s); void ff_aac_dsp_init_x86(AACEncContext *s); void ff_aac_coder_init_mips(AACEncContext *c); void ff_quantize_band_cost_cache_init(struct AACEncContext *s); -- 2.43.0 From 3c5b83a744f86107cdb58ad6e288c027cfa8c3cd Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Tue, 28 Nov 2023 14:08:12 +0800 Subject: [PATCH 2/3] checkasm: test for abs_pow34 --- tests/checkasm/Makefile| 1 + tests/checkasm/aacencdsp.c | 70 ++ tests/checkasm/checkasm.c | 3 ++ tests/checkasm/checkasm.h | 1 + tests/fate/checkasm.mak| 3 +- 5 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 tests/checkasm/aacencdsp.c diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile index 8bc241d29b..da209dd7ad 100644 --- a/tests/checkasm/Makefile +++ b/tests/checkasm/Makefile @@ -22,6 +22,7 @@ AVCODECOBJS-$(CONFIG_VIDEODSP) += videodsp.o # decoders/encoders AVCODECOBJS-$(CONFIG_AAC_DECODER) += aacpsdsp.o \ sbrdsp.o +AVCODECOBJS-$(CONFIG_AAC_ENCODER) += aacencdsp.o AVCODECOBJS-$(CONFIG_ALAC_DECODER) += alacdsp.o AVCODECOBJS-$(CONFIG_DCA_DECODER) += synth_filter.o AVCODECOBJS-$(CONFIG_EXR_DECODER) += exrdsp.o diff --git a/tests/checkasm/aacencdsp.c b/tests/checkasm/aacencdsp.c new file mode 100644 index 00..684c775862 --- /dev/null +++ b/tests/checkasm/aacencdsp.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with FFmpeg; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include + +#include "libavutil/mem.h" +#include "libavutil/mem_internal.h" + +#include "libavcodec/aacenc.h" + +#include "checkasm.h" + +#define randomize_float(buf, len) \ +do {\ +int i; \ +for (i = 0; i < len; i++) { \ +float f = (float)rnd() /
Re: [FFmpeg-devel] [PATCH 1/2] checkasm: test for abs_pow34
Le tiistaina 28. marraskuuta 2023, 18.59.38 EET flow gg a écrit : > Since nobody else commented, I shall note that you should probably split the underlying lavc changes into a separate preliminary patch. -- レミ・デニ-クールモン http://www.remlab.net/ ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH 1/2] checkasm: test for abs_pow34
From 85e60d75554894964825f5718d14591294ec4e88 Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Tue, 28 Nov 2023 14:08:12 +0800 Subject: [PATCH 1/2] checkasm: test for abs_pow34 --- libavcodec/aacenc.c| 24 +++-- libavcodec/aacenc.h| 1 + tests/checkasm/Makefile| 1 + tests/checkasm/aacencdsp.c | 70 ++ tests/checkasm/checkasm.c | 3 ++ tests/checkasm/checkasm.h | 1 + tests/fate/checkasm.mak| 3 +- 7 files changed, 92 insertions(+), 11 deletions(-) create mode 100644 tests/checkasm/aacencdsp.c diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index 5e6a255a8f..443b25e25a 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -1381,16 +1381,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx) ff_lpc_init(>lpc, 2*avctx->frame_size, TNS_MAX_ORDER, FF_LPC_TYPE_LEVINSON); s->random_state = 0x1f2e3d4c; -s->abs_pow34 = abs_pow34_v; -s->quant_bands = quantize_bands; - -#if ARCH_X86 -ff_aac_dsp_init_x86(s); -#endif - -#if HAVE_MIPSDSP -ff_aac_coder_init_mips(s); -#endif + ff_aac_dsp_init(s); ff_af_queue_init(avctx, >afq); @@ -1444,3 +1435,16 @@ const FFCodec ff_aac_encoder = { AV_SAMPLE_FMT_NONE }, .p.priv_class = _class, }; + +void ff_aac_dsp_init(AACEncContext *s){ +s->abs_pow34 = abs_pow34_v; +s->quant_bands = quantize_bands; + +#if ARCH_X86 +ff_aac_dsp_init_x86(s); +#endif + +#if HAVE_MIPSDSP +ff_aac_coder_init_mips(s); +#endif +} diff --git a/libavcodec/aacenc.h b/libavcodec/aacenc.h index b030c652ae..09dd8639be 100644 --- a/libavcodec/aacenc.h +++ b/libavcodec/aacenc.h @@ -154,6 +154,7 @@ typedef struct AACEncContext { } buffer; } AACEncContext; +void ff_aac_dsp_init(AACEncContext *s); void ff_aac_dsp_init_x86(AACEncContext *s); void ff_aac_coder_init_mips(AACEncContext *c); void ff_quantize_band_cost_cache_init(struct AACEncContext *s); diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile index 8bc241d29b..da209dd7ad 100644 --- a/tests/checkasm/Makefile +++ b/tests/checkasm/Makefile @@ -22,6 +22,7 @@ AVCODECOBJS-$(CONFIG_VIDEODSP) += videodsp.o # decoders/encoders AVCODECOBJS-$(CONFIG_AAC_DECODER) += aacpsdsp.o \ sbrdsp.o +AVCODECOBJS-$(CONFIG_AAC_ENCODER) += aacencdsp.o AVCODECOBJS-$(CONFIG_ALAC_DECODER) += alacdsp.o AVCODECOBJS-$(CONFIG_DCA_DECODER) += synth_filter.o AVCODECOBJS-$(CONFIG_EXR_DECODER) += exrdsp.o diff --git a/tests/checkasm/aacencdsp.c b/tests/checkasm/aacencdsp.c new file mode 100644 index 00..684c775862 --- /dev/null +++ b/tests/checkasm/aacencdsp.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with FFmpeg; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include + +#include "libavutil/mem.h" +#include "libavutil/mem_internal.h" + +#include "libavcodec/aacenc.h" + +#include "checkasm.h" + +#define randomize_float(buf, len) \ +do {\ +int i; \ +for (i = 0; i < len; i++) { \ +float f = (float)rnd() / (UINT_MAX >> 5) - 16.0f; \ +buf[i] = f; \ +} \ +} while (0) + +static void test_abs_pow34(AACEncContext *s) { +#define BUF_SIZE 1024 +LOCAL_ALIGNED_32(float, in, [BUF_SIZE]); + +declare_func(void, float *, const float *, int); + +randomize_float(in, BUF_SIZE); + +if (check_func(s->abs_pow34, "abs_pow34")) { +LOCAL_ALIGNED_32(float, out, [BUF_SIZE]); +LOCAL_ALIGNED_32(float, out2, [BUF_SIZE]); + +call_ref(out, in, BUF_SIZE); +call_new(out2, in, BUF_SIZE); + +if (memcmp(out, out2, BUF_SIZE * sizeof(float)) != 0) +fail(); + +bench_new(out, in, BUF_SIZE); +} + +report("abs_pow34"); +} + + +void checkasm_check_aacencdsp(void) +{ +AACEncContext s = { 0 }; +ff_aac_dsp_init(); + +test_abs_pow34(); +} diff --git