diff --git a/libavutil/Makefile b/libavutil/Makefile index 58df75a94e..7a3076fe10 100644 --- a/libavutil/Makefile +++ b/libavutil/Makefile @@ -181,6 +181,7 @@ TESTPROGS = adler32 \ crc \ des \ dict \ + display \ error \ eval \ file \ diff --git a/libavutil/display.c b/libavutil/display.c index a0076e067b..ceed492756 100644 --- a/libavutil/display.c +++ b/libavutil/display.c @@ -71,3 +71,46 @@ void av_display_matrix_flip(int32_t matrix[9], int hflip, int vflip) for (i = 0; i < 9; i++) matrix[i] *= flip[i % 3]; } + +#ifdef TEST + +static void print_matrix(int32_t matrix[9]) +{ + int i, j; + + for (i = 0; i < 3; ++i) { + for (j = 0; j < 3 - 1; ++j) + printf("%d ", matrix[i*3 + j]); + + printf("%d\n", matrix[i*3 + j]); + } +} + +int main(void) +{ + int32_t matrix[9]; + + // Set the matrix to 90 degrees + av_display_rotation_set(matrix, 90); + print_matrix(matrix); + printf("degrees: %f\n", av_display_rotation_get(matrix)); + + // Set the matrix to -45 degrees + av_display_rotation_set(matrix, -45); + print_matrix(matrix); + printf("degrees: %f\n", av_display_rotation_get(matrix)); + + // flip horizontal + av_display_matrix_flip(matrix, 1, 0); + print_matrix(matrix); + printf("degrees: %f\n", av_display_rotation_get(matrix)); + + // flip vertical + av_display_matrix_flip(matrix, 0, 1); + print_matrix(matrix); + printf("degrees: %f\n", av_display_rotation_get(matrix)); + + return 0; + +} +#endif diff --git a/libavutil/display.h b/libavutil/display.h index c0cfee326d..39c15ee6b8 100644 --- a/libavutil/display.h +++ b/libavutil/display.h @@ -22,6 +22,7 @@ #define AVUTIL_DISPLAY_H #include +#include "common.h" /** * The display transformation matrix specifies an affine transformation that diff --git a/tests/fate/libavutil.mak b/tests/fate/libavutil.mak index 5d8e0e2fdc..7f4fb7a87b 100644 --- a/tests/fate/libavutil.mak +++ b/tests/fate/libavutil.mak @@ -99,6 +99,10 @@ FATE_LIBAVUTIL-$(CONFIG_PIXELUTILS) += fate-pixelutils fate-pixelutils: libavutil/pixelutils-test$(EXESUF) fate-pixelutils: CMD = run libavutil/pixelutils-test +FATE_LIBAVUTIL += fate-display +fate-display: libavutil/display-test$(EXESUF) +fate-display: CMD = run libavutil/display-test + FATE_LIBAVUTIL += fate-random_seed fate-random_seed: libavutil/random_seed-test$(EXESUF) fate-random_seed: CMD = run libavutil/random_seed-test diff --git a/tests/ref/fate/display b/tests/ref/fate/display new file mode 100644 index 0000000000..251e7e0cdf --- /dev/null +++ b/tests/ref/fate/display @@ -0,0 +1,16 @@ +0 65536 0 +-65536 0 0 +0 0 1073741824 +degrees: -90.000000 +46340 -46340 0 +46340 46340 0 +0 0 1073741824 +degrees: 45.000000 +-46340 -46340 0 +-46340 46340 0 +0 0 1073741824 +degrees: 135.000000 +-46340 46340 0 +-46340 -46340 0 +0 0 1073741824 +degrees: -135.000000