On Mon, 18 Jul 2016, Alexandra Hájková wrote:

---
tests/checkasm/Makefile    |  2 +-
tests/checkasm/checkasm.c  |  1 +
tests/checkasm/checkasm.h  |  1 +
tests/checkasm/hevc_idct.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 79 insertions(+), 1 deletion(-)
create mode 100644 tests/checkasm/hevc_idct.c

diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile
index 7c1d0ec..d339b75 100644
--- a/tests/checkasm/Makefile
+++ b/tests/checkasm/Makefile
@@ -9,7 +9,7 @@ AVCODECOBJS-$(CONFIG_VP8DSP)            += vp8dsp.o

# decoders/encoders
AVCODECOBJS-$(CONFIG_DCA_DECODER)       += dcadsp.o synth_filter.o
-AVCODECOBJS-$(CONFIG_HEVC_DECODER)      += hevc_mc.o
+AVCODECOBJS-$(CONFIG_HEVC_DECODER)      += hevc_mc.o hevc_idct.o
AVCODECOBJS-$(CONFIG_V210_ENCODER)      += v210enc.o

CHECKASMOBJS-$(CONFIG_AVCODEC)          += $(AVCODECOBJS-yes)
diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
index 739da61..b062197 100644
--- a/tests/checkasm/checkasm.c
+++ b/tests/checkasm/checkasm.c
@@ -85,6 +85,7 @@ static const struct {
#endif
#if CONFIG_HEVC_DECODER
    { "hevc_mc", checkasm_check_hevc_mc },
+    { "hevc_idct", checkasm_check_hevc_idct },
#endif
#if CONFIG_V210_ENCODER
    { "v210enc", checkasm_check_v210enc },
diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
index 7f15b9c..fb914f2 100644
--- a/tests/checkasm/checkasm.h
+++ b/tests/checkasm/checkasm.h
@@ -38,6 +38,7 @@ void checkasm_check_h264dsp(void);
void checkasm_check_h264pred(void);
void checkasm_check_h264qpel(void);
void checkasm_check_hevc_mc(void);
+void checkasm_check_hevc_idct(void);
void checkasm_check_synth_filter(void);
void checkasm_check_v210enc(void);
void checkasm_check_vp8dsp(void);
diff --git a/tests/checkasm/hevc_idct.c b/tests/checkasm/hevc_idct.c
new file mode 100644
index 0000000..20fda7e
--- /dev/null
+++ b/tests/checkasm/hevc_idct.c
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2016 Alexandra Hájková
+ *
+ * This file is part of Libav.
+ *
+ * Libav 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.
+ *
+ * Libav 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 Libav; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <string.h>
+
+#include "checkasm.h"
+
+#include "libavcodec/avcodec.h"
+#include "libavcodec/hevcdsp.h"
+
+#include "libavutil/common.h"
+#include "libavutil/intreadwrite.h"
+
+#define randomize_buffers(buf, size)            \
+    do {                                        \
+        int j;                                  \
+        for (j = 0; j < size; j++) {            \
+            int16_t r = rnd();                  \
+            AV_WN16A(buf + j, r);               \
+        }                                       \
+    } while (0)

For h264 and vp8, we don't use plain random numbers as input, but instead do a forward transform of random pixels. Should that be done here as well, to make sure the tested coefficients actually are within the range of values that actually appear in HEVC bitstreams?

// Martin
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to