diff options
author | John Cox <jc@kynesim.co.uk> | 2023-07-04 14:04:39 +0000 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2023-07-06 00:21:05 +0300 |
commit | 7caa8d6b91e738ad2c1ea61746b6c062c470f7d3 (patch) | |
tree | 0cb20f6bb7b0ab06409f1796cb905e6e52ca3cae /tests | |
parent | 8995e2f77ec0ace4980bb0e2a979897d09129258 (diff) | |
download | ffmpeg-7caa8d6b91e738ad2c1ea61746b6c062c470f7d3.tar.gz |
tests/checkasm: Add test for vf_bwdif filter_intra
Signed-off-by: John Cox <jc@kynesim.co.uk>
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/checkasm/vf_bwdif.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/checkasm/vf_bwdif.c b/tests/checkasm/vf_bwdif.c index 46224bb575..034bbabb4c 100644 --- a/tests/checkasm/vf_bwdif.c +++ b/tests/checkasm/vf_bwdif.c @@ -20,6 +20,7 @@ #include "checkasm.h" #include "libavcodec/internal.h" #include "libavfilter/bwdif.h" +#include "libavutil/mem_internal.h" #define WIDTH 256 @@ -81,4 +82,40 @@ void checkasm_check_vf_bwdif(void) BODY(uint16_t, 10); report("bwdif10"); } + + if (check_func(ctx_8.filter_intra, "bwdif8.intra")) { + LOCAL_ALIGNED_16(uint8_t, cur0, [11*WIDTH]); + LOCAL_ALIGNED_16(uint8_t, cur1, [11*WIDTH]); + LOCAL_ALIGNED_16(uint8_t, dst0, [WIDTH*3]); + LOCAL_ALIGNED_16(uint8_t, dst1, [WIDTH*3]); + const int stride = WIDTH; + const int mask = (1<<8)-1; + + declare_func(void, void *dst1, void *cur1, int w, int prefs, int mrefs, + int prefs3, int mrefs3, int parity, int clip_max); + + randomize_buffers( cur0, cur1, mask, 11*WIDTH); + memset(dst0, 0xba, WIDTH * 3); + memset(dst1, 0xba, WIDTH * 3); + + call_ref(dst0 + stride, + cur0 + stride * 4, WIDTH, + stride, -stride, stride * 3, -stride * 3, + 0, mask); + call_new(dst1 + stride, + cur0 + stride * 4, WIDTH, + stride, -stride, stride * 3, -stride * 3, + 0, mask); + + if (memcmp(dst0, dst1, WIDTH*3) + || memcmp( cur0, cur1, WIDTH*11)) + fail(); + + bench_new(dst1 + stride, + cur0 + stride * 4, WIDTH, + stride, -stride, stride * 3, -stride * 3, + 0, mask); + + report("bwdif8.intra"); + } } |