diff options
author | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-05-11 19:10:10 +0100 |
---|---|---|
committer | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-05-11 19:13:03 +0100 |
commit | 96d616052b3d39678e477fa10610ca688f46fff9 (patch) | |
tree | 8bd31d06318bc786ea8f1d84f92090c9c860bc11 /libavutil/pixelutils.c | |
parent | 27506aceda8115f82f89691a4441d62a8cf24a6e (diff) | |
parent | d12b5b2f135aade4099f4b26b0fe678656158c13 (diff) | |
download | ffmpeg-96d616052b3d39678e477fa10610ca688f46fff9.tar.gz |
Merge commit 'd12b5b2f135aade4099f4b26b0fe678656158c13'
* commit 'd12b5b2f135aade4099f4b26b0fe678656158c13':
build: Split test programs off into separate files
Some conversions done by: James Almer <jamrial@gmail.com>
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Diffstat (limited to 'libavutil/pixelutils.c')
-rw-r--r-- | libavutil/pixelutils.c | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/libavutil/pixelutils.c b/libavutil/pixelutils.c index 1ec4fbb0ec..b663027b42 100644 --- a/libavutil/pixelutils.c +++ b/libavutil/pixelutils.c @@ -85,138 +85,3 @@ av_pixelutils_sad_fn av_pixelutils_get_sad_fn(int w_bits, int h_bits, int aligne return sad[w_bits - 1]; #endif } - -#ifdef TEST -#define W1 320 -#define H1 240 -#define W2 640 -#define H2 480 - -static int run_single_test(const char *test, - const uint8_t *block1, ptrdiff_t stride1, - const uint8_t *block2, ptrdiff_t stride2, - int align, int n) -{ - int out, ref; - av_pixelutils_sad_fn f_ref = sad_c[n - 1]; - av_pixelutils_sad_fn f_out = av_pixelutils_get_sad_fn(n, n, align, NULL); - - switch (align) { - case 0: block1++; block2++; break; - case 1: block2++; break; - case 2: break; - } - - out = f_out(block1, stride1, block2, stride2); - ref = f_ref(block1, stride1, block2, stride2); - printf("[%s] [%c%c] SAD [%s] %dx%d=%d ref=%d\n", - out == ref ? "OK" : "FAIL", - align ? 'A' : 'U', align == 2 ? 'A' : 'U', - test, 1<<n, 1<<n, out, ref); - return out != ref; -} - -static int run_test(const char *test, - const uint8_t *b1, const uint8_t *b2) -{ - int i, a, ret = 0; - - for (a = 0; a < 3; a++) { - const uint8_t *block1 = b1; - const uint8_t *block2 = b2; - - switch (a) { - case 0: block1++; block2++; break; - case 1: block2++; break; - case 2: break; - } - for (i = 1; i <= FF_ARRAY_ELEMS(sad_c); i++) { - int r = run_single_test(test, b1, W1, b2, W2, a, i); - if (r) - ret = r; - } - } - return ret; -} - -int main(void) -{ - int i, align, ret; - uint8_t *buf1 = av_malloc(W1*H1); - uint8_t *buf2 = av_malloc(W2*H2); - uint32_t state = 0; - - if (!buf1 || !buf2) { - fprintf(stderr, "malloc failure\n"); - ret = 1; - goto end; - } - - ff_check_pixfmt_descriptors(); - -#define RANDOM_INIT(buf, size) do { \ - int k; \ - for (k = 0; k < size; k++) { \ - state = state * 1664525 + 1013904223; \ - buf[k] = state>>24; \ - } \ -} while (0) - - /* Normal test with different strides */ - RANDOM_INIT(buf1, W1*H1); - RANDOM_INIT(buf2, W2*H2); - ret = run_test("random", buf1, buf2); - if (ret < 0) - goto end; - - /* Check for maximum SAD */ - memset(buf1, 0xff, W1*H1); - memset(buf2, 0x00, W2*H2); - ret = run_test("max", buf1, buf2); - if (ret < 0) - goto end; - - /* Check for minimum SAD */ - memset(buf1, 0x90, W1*H1); - memset(buf2, 0x90, W2*H2); - ret = run_test("min", buf1, buf2); - if (ret < 0) - goto end; - - /* Exact buffer sizes, to check for overreads */ - for (i = 1; i <= 4; i++) { - for (align = 0; align < 3; align++) { - int size1, size2; - - av_freep(&buf1); - av_freep(&buf2); - - size1 = size2 = 1 << (i << 1); - - switch (align) { - case 0: size1++; size2++; break; - case 1: size2++; break; - case 2: break; - } - - buf1 = av_malloc(size1); - buf2 = av_malloc(size2); - if (!buf1 || !buf2) { - fprintf(stderr, "malloc failure\n"); - ret = 1; - goto end; - } - RANDOM_INIT(buf1, size1); - RANDOM_INIT(buf2, size2); - ret = run_single_test("small", buf1, 1<<i, buf2, 1<<i, align, i); - if (ret < 0) - goto end; - } - } - -end: - av_free(buf1); - av_free(buf2); - return ret; -} -#endif /* TEST */ |