- Added test for: swscale_license() - Added test for: alphaless_fmt() - Added test for: alloc_gamma_tbl() --- libswscale/Makefile | 1 + libswscale/utils.c | 158 ++++++++++++++++++++++++++++++++++++++++++++++ tests/Makefile | 1 + tests/fate/libswscale.mak | 6 ++ tests/ref/fate/utils | 143 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 309 insertions(+) create mode 100644 tests/fate/libswscale.mak create mode 100644 tests/ref/fate/utils
diff --git a/libswscale/Makefile b/libswscale/Makefile index a9f9e03..a6ae81d 100644 --- a/libswscale/Makefile +++ b/libswscale/Makefile @@ -27,3 +27,4 @@ SLIBOBJS-$(HAVE_GNU_WINDRES) += swscaleres.o TESTPROGS = colorspace \ swscale \ + utils \ diff --git a/libswscale/utils.c b/libswscale/utils.c index ba409d6..da27808 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -2410,3 +2410,161 @@ struct SwsContext *sws_getCachedContext(struct SwsContext *context, int srcW, } return context; } + +#ifdef TEST + +static void test_swscale_license(void) +{ + const char *license = swscale_license(); + printf("%s\n", license); +} + +static void test_alloc_gamma_tbl(void) +{ + uint16_t *tbl = alloc_gamma_tbl(1.); + int i; + + // print only 32 elements + printf("e = 1.0\n"); + for (i = 0; i < 65536; i += 2048) + printf("it: %d\t value: %d\n", i, tbl[i]); + + tbl = alloc_gamma_tbl(0.75); + printf("\ne = 0.75\n"); + for (i = 0; i < 65536; i += 2048) + printf("it: %d\t value: %d\n", i, tbl[i]); + + tbl = alloc_gamma_tbl(2.8); + printf("\ne = 2.8\n"); + for (i = 0; i < 65536; i += 2048) + printf("it: %d\t value: %d\n", i, tbl[i]); + +} + +static void test_alphaless_fmt(void) +{ + int result; + + result = alphaless_fmt(AV_PIX_FMT_ARGB) == AV_PIX_FMT_RGB24; + printf("AV_PIX_FMT_ARGB == AV_PIX_FMT_RGB24 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_RGBA) == AV_PIX_FMT_RGB24; + printf("AV_PIX_FMT_RGBA == AV_PIX_FMT_RGB24 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_ABGR) == AV_PIX_FMT_BGR24; + printf("AV_PIX_FMT_ABGR == AV_PIX_FMT_BGR24 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_BGRA) == AV_PIX_FMT_BGR24; + printf("AV_PIX_FMT_BGRA == AV_PIX_FMT_BGR24 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YA8) == AV_PIX_FMT_GRAY8; + printf("AV_PIX_FMT_YA8 == AV_PIX_FMT_GRAY8 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA420P) == AV_PIX_FMT_YUV420P; + printf("AV_PIX_FMT_YUVA420P == AV_PIX_FMT_YUV420P ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA422P) == AV_PIX_FMT_YUV422P; + printf("AV_PIX_FMT_YUVA422P == AV_PIX_FMT_YUV422P ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA444P) == AV_PIX_FMT_YUV444P; + printf("AV_PIX_FMT_YUVA444P == AV_PIX_FMT_YUV444P ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_GBRAP) == AV_PIX_FMT_GBRP; + printf("AV_PIX_FMT_GBRAP == AV_PIX_FMT_GBRP ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_GBRAP12LE) == AV_PIX_FMT_GBRP12; + printf("AV_PIX_FMT_GBRAP12LE == AV_PIX_FMT_GBRP12 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_GBRAP12BE) == AV_PIX_FMT_GBRP12; + printf("AV_PIX_FMT_GBRAP12BE == AV_PIX_FMT_GBRP12 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_RGBA64LE) == AV_PIX_FMT_RGB48; + printf("AV_PIX_FMT_RGBA64LE == AV_PIX_FMT_RGB48 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_RGBA64BE) == AV_PIX_FMT_RGB48; + printf("AV_PIX_FMT_RGBA64BE == AV_PIX_FMT_RGB48 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_BGRA64LE) == AV_PIX_FMT_BGR48; + printf("AV_PIX_FMT_BGRA64LE == AV_PIX_FMT_BGR48 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_BGRA64BE) == AV_PIX_FMT_BGR48; + printf("AV_PIX_FMT_BGRA64BE == AV_PIX_FMT_BGR48 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YA16BE) == AV_PIX_FMT_GRAY16; + printf("AV_PIX_FMT_YA16LE == AV_PIX_FMT_GRAY16 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YA16LE) == AV_PIX_FMT_GRAY16; + printf("AV_PIX_FMT_YA16LE == AV_PIX_FMT_GRAY16 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA420P9BE) == AV_PIX_FMT_YUV420P9; + printf("AV_PIX_FMT_YUVA420P9BE == AV_PIX_FMT_YUV420P9 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA422P9BE) == AV_PIX_FMT_YUV422P9; + printf("AV_PIX_FMT_YUVA422P9BE == AV_PIX_FMT_YUV422P9 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA444P9BE) == AV_PIX_FMT_YUV444P9; + printf("AV_PIX_FMT_YUVA444P9BE == AV_PIX_FMT_YUV444P9 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA420P9LE) == AV_PIX_FMT_YUV420P9; + printf("AV_PIX_FMT_YUVA420P9LE == AV_PIX_FMT_YUV420P9 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA422P9LE) == AV_PIX_FMT_YUV422P9; + printf("AV_PIX_FMT_YUVA422P9LE == AV_PIX_FMT_YUV422P9 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA444P9LE) == AV_PIX_FMT_YUV444P9; + printf("AV_PIX_FMT_YUVA444P9LE == AV_PIX_FMT_YUV444P9 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA420P10BE) == AV_PIX_FMT_YUV420P10; + printf("AV_PIX_FMT_YUVA420P10BE == AV_PIX_FMT_YUV420P10 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA422P10BE) == AV_PIX_FMT_YUV422P10; + printf("AV_PIX_FMT_YUVA422P10BE == AV_PIX_FMT_YUV422P10 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA444P10BE) == AV_PIX_FMT_YUV444P10; + printf("AV_PIX_FMT_YUVA444P10BE == AV_PIX_FMT_YUV444P10 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA420P10LE) == AV_PIX_FMT_YUV420P10; + printf("AV_PIX_FMT_YUVA420P10LE == AV_PIX_FMT_YUV420P10 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA422P10LE) == AV_PIX_FMT_YUV422P10; + printf("AV_PIX_FMT_YUVA422P10LE == AV_PIX_FMT_YUV422P10 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA444P10LE) == AV_PIX_FMT_YUV444P10; + printf("AV_PIX_FMT_YUVA444P10LE == AV_PIX_FMT_YUV444P10 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA444P10LE) == AV_PIX_FMT_YUV444P10; + printf("AV_PIX_FMT_YUVA444P10LE == AV_PIX_FMT_YUV444P10 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA420P16BE) == AV_PIX_FMT_YUV420P16; + printf("AV_PIX_FMT_YUVA420P16BE == AV_PIX_FMT_YUV420P16 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA422P16BE) == AV_PIX_FMT_YUV422P16; + printf("AV_PIX_FMT_YUVA422P16BE == AV_PIX_FMT_YUV422P16 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA444P16BE) == AV_PIX_FMT_YUV444P16; + printf("AV_PIX_FMT_YUVA444P16BE == AV_PIX_FMT_YUV444P16 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA420P16LE) == AV_PIX_FMT_YUV420P16; + printf("AV_PIX_FMT_YUVA420P16LE == AV_PIX_FMT_YUV420P16 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA422P16LE) == AV_PIX_FMT_YUV422P16; + printf("AV_PIX_FMT_YUVA422P16LE == AV_PIX_FMT_YUV422P16 ? %d\n", result); + + result = alphaless_fmt(AV_PIX_FMT_YUVA444P16LE) == AV_PIX_FMT_YUV444P16; + printf("AV_PIX_FMT_YUVA444P16LE == AV_PIX_FMT_YUV444P16 ? %d\n", result); + +} + +int main(void) +{ + printf("Testing swscale_license()\n"); + test_swscale_license(); + + printf("\nTesting alloc_gamma_tbl()\n"); + test_alloc_gamma_tbl(); + + printf("\nTesting alphaless_fmt()\n"); + test_alphaless_fmt(); +} + +#endif diff --git a/tests/Makefile b/tests/Makefile index 6fef0cd..4e82a69 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -140,6 +140,7 @@ include $(SRC_PATH)/tests/fate/libavformat.mak include $(SRC_PATH)/tests/fate/libavresample.mak include $(SRC_PATH)/tests/fate/libavutil.mak include $(SRC_PATH)/tests/fate/libswresample.mak +include $(SRC_PATH)/tests/fate/libswscale.mak include $(SRC_PATH)/tests/fate/lossless-audio.mak include $(SRC_PATH)/tests/fate/lossless-video.mak include $(SRC_PATH)/tests/fate/microsoft.mak diff --git a/tests/fate/libswscale.mak b/tests/fate/libswscale.mak new file mode 100644 index 0000000..2bd7139 --- /dev/null +++ b/tests/fate/libswscale.mak @@ -0,0 +1,6 @@ +FATE_LIBAVSWSCALE += fate-utils +fate-utils: libswscale/utils-test$(EXESUF) +fate-utils: CMD = run libswscale/utils-test + +FATE-$(CONFIG_SWSCALE) += $(FATE_LIBAVSWSCALE) +fate-libavswscale: $(FATE_LIBAVSWSCALE) diff --git a/tests/ref/fate/utils b/tests/ref/fate/utils new file mode 100644 index 0000000..d3268aa --- /dev/null +++ b/tests/ref/fate/utils @@ -0,0 +1,143 @@ +Testing swscale_license() +LGPL version 2.1 or later + +Testing alloc_gamma_tbl() +e = 1.0 +it: 0 value: 0 +it: 2048 value: 2048 +it: 4096 value: 4096 +it: 6144 value: 6144 +it: 8192 value: 8192 +it: 10240 value: 10240 +it: 12288 value: 12288 +it: 14336 value: 14336 +it: 16384 value: 16384 +it: 18432 value: 18432 +it: 20480 value: 20480 +it: 22528 value: 22528 +it: 24576 value: 24576 +it: 26624 value: 26624 +it: 28672 value: 28672 +it: 30720 value: 30720 +it: 32768 value: 32768 +it: 34816 value: 34816 +it: 36864 value: 36864 +it: 38912 value: 38912 +it: 40960 value: 40960 +it: 43008 value: 43008 +it: 45056 value: 45056 +it: 47104 value: 47104 +it: 49152 value: 49152 +it: 51200 value: 51200 +it: 53248 value: 53248 +it: 55296 value: 55296 +it: 57344 value: 57344 +it: 59392 value: 59392 +it: 61440 value: 61440 +it: 63488 value: 63488 + +e = 0.75 +it: 0 value: 0 +it: 2048 value: 4870 +it: 4096 value: 8191 +it: 6144 value: 11103 +it: 8192 value: 13777 +it: 10240 value: 16287 +it: 12288 value: 18673 +it: 14336 value: 20962 +it: 16384 value: 23170 +it: 18432 value: 25310 +it: 20480 value: 27391 +it: 22528 value: 29421 +it: 24576 value: 31405 +it: 26624 value: 33348 +it: 28672 value: 35254 +it: 30720 value: 37126 +it: 32768 value: 38967 +it: 34816 value: 40780 +it: 36864 value: 42566 +it: 38912 value: 44328 +it: 40960 value: 46066 +it: 43008 value: 47783 +it: 45056 value: 49480 +it: 47104 value: 51157 +it: 49152 value: 52817 +it: 51200 value: 54459 +it: 53248 value: 56084 +it: 55296 value: 57695 +it: 57344 value: 59290 +it: 59392 value: 60871 +it: 61440 value: 62439 +it: 63488 value: 63993 + +e = 2.8 +it: 0 value: 0 +it: 2048 value: 4 +it: 4096 value: 27 +it: 6144 value: 86 +it: 8192 value: 194 +it: 10240 value: 362 +it: 12288 value: 603 +it: 14336 value: 929 +it: 16384 value: 1351 +it: 18432 value: 1879 +it: 20480 value: 2523 +it: 22528 value: 3295 +it: 24576 value: 4205 +it: 26624 value: 5261 +it: 28672 value: 6474 +it: 30720 value: 7854 +it: 32768 value: 9410 +it: 34816 value: 11151 +it: 36864 value: 13086 +it: 38912 value: 15225 +it: 40960 value: 17577 +it: 43008 value: 20150 +it: 45056 value: 22953 +it: 47104 value: 25996 +it: 49152 value: 29286 +it: 51200 value: 32832 +it: 53248 value: 36643 +it: 55296 value: 40727 +it: 57344 value: 45093 +it: 59392 value: 49749 +it: 61440 value: 54703 +it: 63488 value: 59963 + +Testing alphaless_fmt() +AV_PIX_FMT_ARGB == AV_PIX_FMT_RGB24 ? 1 +AV_PIX_FMT_RGBA == AV_PIX_FMT_RGB24 ? 1 +AV_PIX_FMT_ABGR == AV_PIX_FMT_BGR24 ? 1 +AV_PIX_FMT_BGRA == AV_PIX_FMT_BGR24 ? 1 +AV_PIX_FMT_YA8 == AV_PIX_FMT_GRAY8 ? 1 +AV_PIX_FMT_YUVA420P == AV_PIX_FMT_YUV420P ? 1 +AV_PIX_FMT_YUVA422P == AV_PIX_FMT_YUV422P ? 1 +AV_PIX_FMT_YUVA444P == AV_PIX_FMT_YUV444P ? 1 +AV_PIX_FMT_GBRAP == AV_PIX_FMT_GBRP ? 1 +AV_PIX_FMT_GBRAP12LE == AV_PIX_FMT_GBRP12 ? 1 +AV_PIX_FMT_GBRAP12BE == AV_PIX_FMT_GBRP12 ? 1 +AV_PIX_FMT_RGBA64LE == AV_PIX_FMT_RGB48 ? 1 +AV_PIX_FMT_RGBA64BE == AV_PIX_FMT_RGB48 ? 1 +AV_PIX_FMT_BGRA64LE == AV_PIX_FMT_BGR48 ? 1 +AV_PIX_FMT_BGRA64BE == AV_PIX_FMT_BGR48 ? 1 +AV_PIX_FMT_YA16LE == AV_PIX_FMT_GRAY16 ? 1 +AV_PIX_FMT_YA16LE == AV_PIX_FMT_GRAY16 ? 1 +AV_PIX_FMT_YUVA420P9BE == AV_PIX_FMT_YUV420P9 ? 1 +AV_PIX_FMT_YUVA422P9BE == AV_PIX_FMT_YUV422P9 ? 1 +AV_PIX_FMT_YUVA444P9BE == AV_PIX_FMT_YUV444P9 ? 1 +AV_PIX_FMT_YUVA420P9LE == AV_PIX_FMT_YUV420P9 ? 1 +AV_PIX_FMT_YUVA422P9LE == AV_PIX_FMT_YUV422P9 ? 1 +AV_PIX_FMT_YUVA444P9LE == AV_PIX_FMT_YUV444P9 ? 1 +AV_PIX_FMT_YUVA420P10BE == AV_PIX_FMT_YUV420P10 ? 1 +AV_PIX_FMT_YUVA422P10BE == AV_PIX_FMT_YUV422P10 ? 1 +AV_PIX_FMT_YUVA444P10BE == AV_PIX_FMT_YUV444P10 ? 1 +AV_PIX_FMT_YUVA420P10LE == AV_PIX_FMT_YUV420P10 ? 1 +AV_PIX_FMT_YUVA422P10LE == AV_PIX_FMT_YUV422P10 ? 1 +AV_PIX_FMT_YUVA444P10LE == AV_PIX_FMT_YUV444P10 ? 1 +AV_PIX_FMT_YUVA444P10LE == AV_PIX_FMT_YUV444P10 ? 1 +AV_PIX_FMT_YUVA420P16BE == AV_PIX_FMT_YUV420P16 ? 1 +AV_PIX_FMT_YUVA422P16BE == AV_PIX_FMT_YUV422P16 ? 1 +AV_PIX_FMT_YUVA444P16BE == AV_PIX_FMT_YUV444P16 ? 1 +AV_PIX_FMT_YUVA420P16LE == AV_PIX_FMT_YUV420P16 ? 1 +AV_PIX_FMT_YUVA422P16LE == AV_PIX_FMT_YUV422P16 ? 1 +AV_PIX_FMT_YUVA444P16LE == AV_PIX_FMT_YUV444P16 ? 1 -- 1.9.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel