From 039dcdbc9b0e001b7cb5a4d8dc1be46930574dda Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sun, 11 Jun 2017 10:30:22 +0200 Subject: Make conversion macros not require restrict MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- common.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/common.h b/common.h index 5c781b6..12c86a2 100644 --- a/common.h +++ b/common.h @@ -318,9 +318,10 @@ #define YUV_TO_YDBDR(FROM_Y, FROM_U, FROM_V, TO_Y, TO_DB, TO_DR)\ do {\ + TYPE U__ = (FROM_U), V__ = (FROM_V);\ (TO_Y) = (FROM_Y);\ - (TO_DB) = (FROM_U) * D(3.069);\ - (TO_DR) = (FROM_V) * D(-2.169);\ + (TO_DB) = U__ * D(3.069);\ + (TO_DR) = V__ * D(-2.169);\ } while (0) #define CIEXYZ_TO_YDBDR(FROM_X, FROM_Y, FROM_Z, TO_Y, TO_DB, TO_DR)\ @@ -337,9 +338,10 @@ #define YDBDR_TO_YUV(FROM_Y, FROM_DB, FROM_DR, TO_Y, TO_U, TO_V)\ do {\ + TYPE DB__ = (FROM_DB), DR__ = (FROM_DR);\ (TO_Y) = (FROM_Y);\ - (TO_U) = (FROM_DB) / D(3.069);\ - (TO_V) = (FROM_DR) / D(-2.169);\ + (TO_U) = DB__ / D(3.069);\ + (TO_V) = DR__ / D(-2.169);\ } while (0) #define SRGB_TO_YUV(FROM_R, FROM_G, FROM_B, TO_Y, TO_U, TO_V)\ @@ -439,11 +441,12 @@ #define CIE1960UCS_TO_CIEUVW(FROM_U, FROM_V, FROM_Y, TO_U, TO_V, TO_W, TO_U0, TO_V0)\ do {\ + TYPE U__ = (FROM_U), V__ = (FROM_V), u0__ = (TO_U0), v0__ = (TO_V0);\ TYPE Y__ = 25 * xcbrt((FROM_Y)) - 17;\ TYPE w__ = Y__ * 13;\ - to->U = w__ * ((FROM_U) - (TO_U0));\ - to->V = w__ * ((FROM_V) - (TO_V0));\ - to->W = Y__;\ + (to->U) = w__ * (U__ - u0__);\ + (to->V) = w__ * (V__ - v0__);\ + (to->W) = Y__;\ } while (0) -- cgit v1.2.3-70-g09d2