summaryrefslogtreecommitdiff
path: root/libavcodec/simple_idct.c
diff options
context:
space:
mode:
authorMans Rullgard <mans@mansr.com>2011-07-18 16:04:25 +0100
committerMans Rullgard <mans@mansr.com>2011-07-18 20:57:27 +0100
commit3e9409b1d0ca6ee7063fa04d940af36a20b46a8b (patch)
tree342708ed812643ec7d2f050af234913728499ae0 /libavcodec/simple_idct.c
parentdbb5ee8ea78e6fa22407523f4ecedfebe3db302f (diff)
simple_idct: simplify some ifdeffery
Signed-off-by: Mans Rullgard <mans@mansr.com>
Diffstat (limited to 'libavcodec/simple_idct.c')
-rw-r--r--libavcodec/simple_idct.c24
1 files changed, 6 insertions, 18 deletions
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 <aholtzma@ess.engr.uvic.ca>)
*/
+
+#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];