Hi,
In this patch I made the following changes:
- Added the missing file /tests/ref/fate/display
- Now the program prints integers to avoid different results on different
platforms.
Thanks for your patience and especially to Michael,
Petru Rares.
________________________________________
From: Michael Niedermayer <mich...@niedermayer.cc>
Sent: Sunday, March 20, 2016 11:32 PM
To: FFmpeg development discussions and patches
Cc: Petru Rares Sincraian
Subject: Re: [FFmpeg-devel] [PATCH] Added a selftest to libavutil/display.c
On Sun, Mar 20, 2016 at 09:29:04AM +0000, Petru Rares Sincraian wrote:
>
> - 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
> ---
> libavutil/Makefile | 1 +
> libavutil/display.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
> libavutil/display.h | 1 +
> tests/fate/libavutil.mak | 4 ++++
> 4 files changed, 53 insertions(+)
Missing reference file
make fate-display
...
TEST display
reference file './tests/ref/fate/display' not found
./tests/fate-run.sh: 307: ./tests/fate-run.sh: cannot open
tests/data/fate/display.diff: No such file
Test display failed. Look at tests/data/fate/display.err for details.
make: *** [fate-display] Error 1
also, if you arent subscribed to ffmpeg-devel, its highly recommanded
to subscribe as developers generally forget to CC people who are not
subscribed
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Into a blind darkness they enter who follow after the Ignorance,
they as if into a greater darkness enter who devote themselves
to the Knowledge alone. -- Isha Upanishad
From f2fec6cd08bc91058d5f8d012dfa900a722036ce Mon Sep 17 00:00:00 2001
From: Petru Rares Sincraian <psincra...@outlook.com>
Date: Tue, 22 Mar 2016 12:55:24 +0100
Subject: [PATCH] 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
---
libavutil/Makefile | 1 +
libavutil/display.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
libavutil/display.h | 1 +
tests/fate/libavutil.mak | 4 ++++
tests/ref/fate/display | 16 ++++++++++++++++
5 files changed, 69 insertions(+)
create mode 100644 tests/ref/fate/display
diff --git a/libavutil/Makefile b/libavutil/Makefile
index 58df75a..43fcf75 100644
--- a/libavutil/Makefile
+++ b/libavutil/Makefile
@@ -198,6 +198,7 @@ TESTPROGS = adler32 \
parseutils \
pixdesc \
pixelutils \
+ display \
random_seed \
rational \
ripemd \
diff --git a/libavutil/display.c b/libavutil/display.c
index a0076e0..51ee992 100644
--- a/libavutil/display.c
+++ b/libavutil/display.c
@@ -71,3 +71,50 @@ 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
+
+// Convert 2.30 fixed-point to double
+#define CONV_FP30(x) ((double) (x)) / (1 << 30)
+
+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 c0cfee3..39c15ee 100644
--- a/libavutil/display.h
+++ b/libavutil/display.h
@@ -22,6 +22,7 @@
#define AVUTIL_DISPLAY_H
#include <stdint.h>
+#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 5d8e0e2..7f4fb7a 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 0000000..251e7e0
--- /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
--
1.9.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel