From 3e9409b1d0ca6ee7063fa04d940af36a20b46a8b Mon Sep 17 00:00:00 2001 From: Mans Rullgard Date: Mon, 18 Jul 2011 16:04:25 +0100 Subject: simple_idct: simplify some ifdeffery Signed-off-by: Mans Rullgard --- libavcodec/simple_idct.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) (limited to 'libavcodec/simple_idct.c') diff --git a/libavcodec/simple_idct.c b/libavcodec/simple_idct.c index c82f0925cf..0ffbfcaf33 100644 --- a/libavcodec/simple_idct.c +++ b/libavcodec/simple_idct.c @@ -29,6 +29,8 @@ based upon some outcommented c code from mpeg2dec (idct_mmx.c written by Aaron Holtzman ) */ + +#include "libavutil/intreadwrite.h" #include "avcodec.h" #include "dsputil.h" #include "mathops.h" @@ -47,20 +49,11 @@ static inline void idctRowCondDC (DCTELEM * row) { int a0, a1, a2, a3, b0, b1, b2, b3; -#if HAVE_FAST_64BIT - uint64_t temp; -#else - uint32_t temp; -#endif #if HAVE_FAST_64BIT -#if HAVE_BIGENDIAN -#define ROW0_MASK 0xffff000000000000LL -#else -#define ROW0_MASK 0xffffLL -#endif +#define ROW0_MASK (0xffffLL << 48 * HAVE_BIGENDIAN) if (((((uint64_t *)row)[0] & ~ROW0_MASK) | ((uint64_t *)row)[1]) == 0) { - temp = (row[0] << 3) & 0xffff; + uint64_t temp = (row[0] << 3) & 0xffff; temp += temp << 16; temp += temp << 32; ((uint64_t *)row)[0] = temp; @@ -72,7 +65,7 @@ static inline void idctRowCondDC (DCTELEM * row) ((uint32_t*)row)[2] | ((uint32_t*)row)[3] | row[1])) { - temp = (row[0] << 3) & 0xffff; + uint32_t temp = (row[0] << 3) & 0xffff; temp += temp << 16; ((uint32_t*)row)[0]=((uint32_t*)row)[1] = ((uint32_t*)row)[2]=((uint32_t*)row)[3] = temp; @@ -100,12 +93,7 @@ static inline void idctRowCondDC (DCTELEM * row) b3 = MUL16(W7, row[1]); MAC16(b3, -W5, row[3]); -#if HAVE_FAST_64BIT - temp = ((uint64_t*)row)[1]; -#else - temp = ((uint32_t*)row)[2] | ((uint32_t*)row)[3]; -#endif - if (temp != 0) { + if (AV_RN64A(row + 4)) { a0 += W4*row[4] + W6*row[6]; a1 += - W4*row[4] - W2*row[6]; a2 += - W4*row[4] + W2*row[6]; -- cgit v1.2.3