Added a selftest to libavutil/display.c

- Check if av_display_rotation_get() gets the correct degrees
    - Check if av_display_rotation_set() sets the correct matrix
    - Check if av_display_matrix_flip() changes correct the matrix

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Petru Rares Sincraian 2016-03-20 09:54:07 +01:00 committed by Michael Niedermayer
parent 2aebdfb451
commit 124526ba1a
5 changed files with 65 additions and 0 deletions

View File

@ -181,6 +181,7 @@ TESTPROGS = adler32 \
crc \
des \
dict \
display \
error \
eval \
file \

View File

@ -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

View File

@ -22,6 +22,7 @@
#define AVUTIL_DISPLAY_H
#include <stdint.h>
#include "common.h"
/**
* The display transformation matrix specifies an affine transformation that

View File

@ -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

16
tests/ref/fate/display Normal file
View File

@ -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