From a54f03bf07da964a1b04b03b85bc39deba76efa4 Mon Sep 17 00:00:00 2001 From: Vittorio Giovara Date: Wed, 18 Jun 2014 18:08:20 -0400 Subject: display: add matrix flip api --- libavutil/display.c | 10 ++++++++++ libavutil/display.h | 9 +++++++++ libavutil/version.h | 4 ++-- 3 files changed, 21 insertions(+), 2 deletions(-) (limited to 'libavutil') diff --git a/libavutil/display.c b/libavutil/display.c index b2b98329a0..74aceb2847 100644 --- a/libavutil/display.c +++ b/libavutil/display.c @@ -63,3 +63,13 @@ void av_display_rotation_set(int32_t matrix[9], double angle) matrix[4] = CONV_DB(c); matrix[8] = 1 << 30; } + +void av_display_matrix_flip(int32_t matrix[9], int hflip, int vflip) +{ + int i; + const int flip[] = { 1 - 2 * (!!hflip), 1 - 2 * (!!vflip), 1 }; + + if (hflip || vflip) + for (i = 0; i < 9; i++) + matrix[i] *= flip[i % 3]; +} diff --git a/libavutil/display.h b/libavutil/display.h index ea762a4249..7e37627637 100644 --- a/libavutil/display.h +++ b/libavutil/display.h @@ -74,4 +74,13 @@ double av_display_rotation_get(const int32_t matrix[9]); */ void av_display_rotation_set(int32_t matrix[9], double angle); +/** + * Flip the input matrix horizontally and/or vertically. + * + * @param matrix an allocated transformation matrix + * @param hflip whether the matrix should be flipped horizontally + * @param vflip whether the matrix should be flipped vertically + */ +void av_display_matrix_flip(int32_t matrix[9], int hflip, int vflip); + #endif /* AVUTIL_DISPLAY_H */ diff --git a/libavutil/version.h b/libavutil/version.h index ef38404e05..a2625b5ee5 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -54,8 +54,8 @@ */ #define LIBAVUTIL_VERSION_MAJOR 53 -#define LIBAVUTIL_VERSION_MINOR 17 -#define LIBAVUTIL_VERSION_MICRO 1 +#define LIBAVUTIL_VERSION_MINOR 18 +#define LIBAVUTIL_VERSION_MICRO 0 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ LIBAVUTIL_VERSION_MINOR, \ -- cgit v1.2.3