* [FFmpeg-devel] [PATCH] checkasm/ac3dsp: add float_to_fixed24 test
@ 2023-11-23 7:08 flow gg
2023-11-23 17:08 ` Rémi Denis-Courmont
2023-11-23 17:11 ` James Almer
0 siblings, 2 replies; 4+ messages in thread
From: flow gg @ 2023-11-23 7:08 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1: Type: text/plain, Size: 1 bytes --]
[-- Attachment #2: checkasm-ac3dsp-add-float_to_fixed24-test.patch --]
[-- Type: text/x-patch, Size: 4266 bytes --]
From 02dd534bd602ba3ec79e51070934949a98f780e2 Mon Sep 17 00:00:00 2001
From: sunyuechi <sunyuechi@iscas.ac.cn>
Date: Wed, 22 Nov 2023 14:57:29 +0800
Subject: [PATCH] checkasm/ac3dsp: add float_to_fixed24 test
---
tests/checkasm/Makefile | 1 +
tests/checkasm/ac3dsp.c | 71 +++++++++++++++++++++++++++++++++++++++
tests/checkasm/checkasm.c | 3 ++
tests/checkasm/checkasm.h | 1 +
4 files changed, 76 insertions(+)
create mode 100644 tests/checkasm/ac3dsp.c
diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile
index 8bc241d29b..53742c93ae 100644
--- a/tests/checkasm/Makefile
+++ b/tests/checkasm/Makefile
@@ -1,5 +1,6 @@
# libavcodec tests
# subsystems
+AVCODECOBJS-$(CONFIG_AC3DSP) += ac3dsp.o
AVCODECOBJS-$(CONFIG_AUDIODSP) += audiodsp.o
AVCODECOBJS-$(CONFIG_BLOCKDSP) += blockdsp.o
AVCODECOBJS-$(CONFIG_BSWAPDSP) += bswapdsp.o
diff --git a/tests/checkasm/ac3dsp.c b/tests/checkasm/ac3dsp.c
new file mode 100644
index 0000000000..2ccfa4a9d1
--- /dev/null
+++ b/tests/checkasm/ac3dsp.c
@@ -0,0 +1,71 @@
+/*
+ * 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 <string.h>
+
+#include "libavutil/mem.h"
+#include "libavutil/mem_internal.h"
+
+#include "libavcodec/ac3dsp.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 check_float_to_fixed24(AC3DSPContext *c) {
+#define BUF_SIZE 1024
+ LOCAL_ALIGNED_32(int32_t, v1, [BUF_SIZE]);
+ LOCAL_ALIGNED_32(float, v2, [BUF_SIZE]);
+
+ declare_func(void, int32_t *, const float *, unsigned int);
+
+ randomize_float(v2, BUF_SIZE);
+
+ if (check_func(c->float_to_fixed24, "float_to_fixed24")) {
+ LOCAL_ALIGNED_32(int32_t, dst, [BUF_SIZE]);
+ LOCAL_ALIGNED_32(int32_t, dst2, [BUF_SIZE]);
+
+ call_ref(dst, v2, BUF_SIZE);
+ call_new(dst2, v2, BUF_SIZE);
+
+ if (memcmp(dst, dst2, sizeof(*dst) * 10) != 0)
+ fail();
+
+ bench_new(v1, v2, BUF_SIZE);
+ }
+
+
+ report("float_to_fixed24");
+}
+
+void checkasm_check_ac3dsp(void)
+{
+ AC3DSPContext c;
+ ff_ac3dsp_init(&c);
+
+ check_float_to_fixed24(&c);
+}
diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
index 708119e7c6..f37c7fad3a 100644
--- a/tests/checkasm/checkasm.c
+++ b/tests/checkasm/checkasm.c
@@ -78,6 +78,9 @@ static const struct {
{ "aacpsdsp", checkasm_check_aacpsdsp },
{ "sbrdsp", checkasm_check_sbrdsp },
#endif
+ #if CONFIG_AC3DSP
+ { "ac3dsp", checkasm_check_ac3dsp },
+ #endif
#if CONFIG_ALAC_DECODER
{ "alacdsp", checkasm_check_alacdsp },
#endif
diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
index cfea868ff1..a4238b1dfa 100644
--- a/tests/checkasm/checkasm.h
+++ b/tests/checkasm/checkasm.h
@@ -43,6 +43,7 @@
#include "libavutil/timer.h"
void checkasm_check_aacpsdsp(void);
+void checkasm_check_ac3dsp(void);
void checkasm_check_afir(void);
void checkasm_check_alacdsp(void);
void checkasm_check_audiodsp(void);
--
2.43.0
[-- Attachment #3: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH] checkasm/ac3dsp: add float_to_fixed24 test
2023-11-23 7:08 [FFmpeg-devel] [PATCH] checkasm/ac3dsp: add float_to_fixed24 test flow gg
@ 2023-11-23 17:08 ` Rémi Denis-Courmont
2023-11-23 17:11 ` James Almer
1 sibling, 0 replies; 4+ messages in thread
From: Rémi Denis-Courmont @ 2023-11-23 17:08 UTC (permalink / raw)
To: FFmpeg development discussions and patches
Le torstaina 23. marraskuuta 2023, 9.08.16 EET flow gg a écrit :
>
You should probably add the test case to tests/fate/checkasm.mak
--
レミ・デニ-クールモン
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-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH] checkasm/ac3dsp: add float_to_fixed24 test
2023-11-23 7:08 [FFmpeg-devel] [PATCH] checkasm/ac3dsp: add float_to_fixed24 test flow gg
2023-11-23 17:08 ` Rémi Denis-Courmont
@ 2023-11-23 17:11 ` James Almer
2023-11-23 22:44 ` flow gg
1 sibling, 1 reply; 4+ messages in thread
From: James Almer @ 2023-11-23 17:11 UTC (permalink / raw)
To: ffmpeg-devel
On 11/23/2023 4:08 AM, flow gg wrote:
> +static void check_float_to_fixed24(AC3DSPContext *c) {
> +#define BUF_SIZE 1024
> + LOCAL_ALIGNED_32(int32_t, v1, [BUF_SIZE]);
This one is not necessary. You can reuse dst or dst2 for the bench() as
it's write only.
> + LOCAL_ALIGNED_32(float, v2, [BUF_SIZE]);
> +
> + declare_func(void, int32_t *, const float *, unsigned int);
> +
> + randomize_float(v2, BUF_SIZE);
> +
> + if (check_func(c->float_to_fixed24, "float_to_fixed24")) {
> + LOCAL_ALIGNED_32(int32_t, dst, [BUF_SIZE]);
> + LOCAL_ALIGNED_32(int32_t, dst2, [BUF_SIZE]);
> +
> + call_ref(dst, v2, BUF_SIZE);
> + call_new(dst2, v2, BUF_SIZE);
> +
> + if (memcmp(dst, dst2, sizeof(*dst) * 10) != 0)
BUF_SIZE instead of 10.
> + fail();
> +
> + bench_new(v1, v2, BUF_SIZE);
> + }
> +
> +
> + report("float_to_fixed24");
> +}
_______________________________________________
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".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH] checkasm/ac3dsp: add float_to_fixed24 test
2023-11-23 17:11 ` James Almer
@ 2023-11-23 22:44 ` flow gg
0 siblings, 0 replies; 4+ messages in thread
From: flow gg @ 2023-11-23 22:44 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1: Type: text/plain, Size: 1570 bytes --]
> You should probably add the test case to tests/fate/checkasm.mak
> This one is not necessary. You can reuse dst or dst2 for the bench() as
it's write only.
> Changed BUF_SIZE instead of 10.
Okay, changed.
James Almer <jamrial@gmail.com> 于2023年11月24日周五 01:11写道:
> On 11/23/2023 4:08 AM, flow gg wrote:
> > +static void check_float_to_fixed24(AC3DSPContext *c) {
> > +#define BUF_SIZE 1024
> > + LOCAL_ALIGNED_32(int32_t, v1, [BUF_SIZE]);
>
> This one is not necessary. You can reuse dst or dst2 for the bench() as
> it's write only.
>
> > + LOCAL_ALIGNED_32(float, v2, [BUF_SIZE]);
> > +
> > + declare_func(void, int32_t *, const float *, unsigned int);
> > +
> > + randomize_float(v2, BUF_SIZE);
> > +
> > + if (check_func(c->float_to_fixed24, "float_to_fixed24")) {
> > + LOCAL_ALIGNED_32(int32_t, dst, [BUF_SIZE]);
> > + LOCAL_ALIGNED_32(int32_t, dst2, [BUF_SIZE]);
> > +
> > + call_ref(dst, v2, BUF_SIZE);
> > + call_new(dst2, v2, BUF_SIZE);
> > +
> > + if (memcmp(dst, dst2, sizeof(*dst) * 10) != 0)
>
> BUF_SIZE instead of 10.
>
> > + fail();
> > +
> > + bench_new(v1, v2, BUF_SIZE);
> > + }
> > +
> > +
> > + report("float_to_fixed24");
> > +}
>
> _______________________________________________
> 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".
>
[-- Attachment #2: checkasm-ac3dsp-add-float_to_fixed24-test.patch --]
[-- Type: text/x-patch, Size: 4799 bytes --]
From d5bfbecdd32dda0839387d470fee72b6155f084d Mon Sep 17 00:00:00 2001
From: sunyuechi <sunyuechi@iscas.ac.cn>
Date: Wed, 22 Nov 2023 14:57:29 +0800
Subject: [PATCH] checkasm/ac3dsp: add float_to_fixed24 test
---
tests/checkasm/Makefile | 1 +
tests/checkasm/ac3dsp.c | 70 +++++++++++++++++++++++++++++++++++++++
tests/checkasm/checkasm.c | 3 ++
tests/checkasm/checkasm.h | 1 +
tests/fate/checkasm.mak | 1 +
5 files changed, 76 insertions(+)
create mode 100644 tests/checkasm/ac3dsp.c
diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile
index 8bc241d29b..53742c93ae 100644
--- a/tests/checkasm/Makefile
+++ b/tests/checkasm/Makefile
@@ -1,5 +1,6 @@
# libavcodec tests
# subsystems
+AVCODECOBJS-$(CONFIG_AC3DSP) += ac3dsp.o
AVCODECOBJS-$(CONFIG_AUDIODSP) += audiodsp.o
AVCODECOBJS-$(CONFIG_BLOCKDSP) += blockdsp.o
AVCODECOBJS-$(CONFIG_BSWAPDSP) += bswapdsp.o
diff --git a/tests/checkasm/ac3dsp.c b/tests/checkasm/ac3dsp.c
new file mode 100644
index 0000000000..8f36f1736c
--- /dev/null
+++ b/tests/checkasm/ac3dsp.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 <string.h>
+
+#include "libavutil/mem.h"
+#include "libavutil/mem_internal.h"
+
+#include "libavcodec/ac3dsp.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 check_float_to_fixed24(AC3DSPContext *c) {
+#define BUF_SIZE 1024
+ LOCAL_ALIGNED_32(float, src, [BUF_SIZE]);
+
+ declare_func(void, int32_t *, const float *, unsigned int);
+
+ randomize_float(src, BUF_SIZE);
+
+ if (check_func(c->float_to_fixed24, "float_to_fixed24")) {
+ LOCAL_ALIGNED_32(int32_t, dst, [BUF_SIZE]);
+ LOCAL_ALIGNED_32(int32_t, dst2, [BUF_SIZE]);
+
+ call_ref(dst, src, BUF_SIZE);
+ call_new(dst2, src, BUF_SIZE);
+
+ if (memcmp(dst, dst2, BUF_SIZE) != 0)
+ fail();
+
+ bench_new(dst, src, BUF_SIZE);
+ }
+
+
+ report("float_to_fixed24");
+}
+
+void checkasm_check_ac3dsp(void)
+{
+ AC3DSPContext c;
+ ff_ac3dsp_init(&c);
+
+ check_float_to_fixed24(&c);
+}
diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
index 708119e7c6..f37c7fad3a 100644
--- a/tests/checkasm/checkasm.c
+++ b/tests/checkasm/checkasm.c
@@ -78,6 +78,9 @@ static const struct {
{ "aacpsdsp", checkasm_check_aacpsdsp },
{ "sbrdsp", checkasm_check_sbrdsp },
#endif
+ #if CONFIG_AC3DSP
+ { "ac3dsp", checkasm_check_ac3dsp },
+ #endif
#if CONFIG_ALAC_DECODER
{ "alacdsp", checkasm_check_alacdsp },
#endif
diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
index cfea868ff1..a4238b1dfa 100644
--- a/tests/checkasm/checkasm.h
+++ b/tests/checkasm/checkasm.h
@@ -43,6 +43,7 @@
#include "libavutil/timer.h"
void checkasm_check_aacpsdsp(void);
+void checkasm_check_ac3dsp(void);
void checkasm_check_afir(void);
void checkasm_check_alacdsp(void);
void checkasm_check_audiodsp(void);
diff --git a/tests/fate/checkasm.mak b/tests/fate/checkasm.mak
index 35ff1277ba..1c8b7c0a25 100644
--- a/tests/fate/checkasm.mak
+++ b/tests/fate/checkasm.mak
@@ -1,4 +1,5 @@
FATE_CHECKASM = fate-checkasm-aacpsdsp \
+ fate-checkasm-ac3dsp \
fate-checkasm-af_afir \
fate-checkasm-alacdsp \
fate-checkasm-audiodsp \
--
2.43.0
[-- Attachment #3: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-11-23 22:44 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-23 7:08 [FFmpeg-devel] [PATCH] checkasm/ac3dsp: add float_to_fixed24 test flow gg
2023-11-23 17:08 ` Rémi Denis-Courmont
2023-11-23 17:11 ` James Almer
2023-11-23 22:44 ` flow gg
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git