22 #ifndef SCALER_SCALE2X_H 23 #define SCALER_SCALE2X_H 29 typedef unsigned char scale2x_uint8;
30 typedef unsigned short scale2x_uint16;
31 typedef unsigned scale2x_uint32;
33 void scale2x_8_def(scale2x_uint8* dst0, scale2x_uint8* dst1,
const scale2x_uint8* src0,
const scale2x_uint8* src1,
const scale2x_uint8* src2,
unsigned count);
34 void scale2x_16_def(scale2x_uint16* dst0, scale2x_uint16* dst1,
const scale2x_uint16* src0,
const scale2x_uint16* src1,
const scale2x_uint16* src2,
unsigned count);
35 void scale2x_32_def(scale2x_uint32* dst0, scale2x_uint32* dst1,
const scale2x_uint32* src0,
const scale2x_uint32* src1,
const scale2x_uint32* src2,
unsigned count);
37 #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) 39 void scale2x_8_mmx(scale2x_uint8* dst0, scale2x_uint8* dst1,
const scale2x_uint8* src0,
const scale2x_uint8* src1,
const scale2x_uint8* src2,
unsigned count);
40 void scale2x_16_mmx(scale2x_uint16* dst0, scale2x_uint16* dst1,
const scale2x_uint16* src0,
const scale2x_uint16* src1,
const scale2x_uint16* src2,
unsigned count);
41 void scale2x_32_mmx(scale2x_uint32* dst0, scale2x_uint32* dst1,
const scale2x_uint32* src0,
const scale2x_uint32* src1,
const scale2x_uint32* src2,
unsigned count);
47 static inline void scale2x_mmx_emms(
void)
49 __asm__ __volatile__ (
56 #if defined(USE_ARM_SCALER_ASM) 58 extern "C" void scale2x_8_arm(scale2x_uint8* dst0, scale2x_uint8* dst1,
const scale2x_uint8* src0,
const scale2x_uint8* src1,
const scale2x_uint8* src2,
unsigned count);
59 extern "C" void scale2x_16_arm(scale2x_uint16* dst0, scale2x_uint16* dst1,
const scale2x_uint16* src0,
const scale2x_uint16* src1,
const scale2x_uint16* src2,
unsigned count);
60 extern "C" void scale2x_32_arm(scale2x_uint32* dst0, scale2x_uint32* dst1,
const scale2x_uint32* src0,
const scale2x_uint32* src1,
const scale2x_uint32* src2,
unsigned count);