summaryrefslogtreecommitdiffstats
path: root/postproc/rgb2rgb.c
diff options
context:
space:
mode:
authormichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-25 16:35:24 +0000
committermichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-25 16:35:24 +0000
commitf7440c1784882217c6b399bb3bbf34719bc2f001 (patch)
tree57f37f89cc8e9c8e65d7ecf3fac06bf5ec052c78 /postproc/rgb2rgb.c
parentf28fbb3a820dc74d5c191a747d12b30047330c4f (diff)
downloadmpv-f7440c1784882217c6b399bb3bbf34719bc2f001.tar.bz2
mpv-f7440c1784882217c6b399bb3bbf34719bc2f001.tar.xz
byte interleaving for mga
untested (no g200 mga or whatever i would need ...) experimental sse2 version (even less tested as no p4 either ...) sse2 version would need 16-byte aligned src & dst else sig11 sse2 version is disabled by default git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5338 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'postproc/rgb2rgb.c')
-rw-r--r--postproc/rgb2rgb.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/postproc/rgb2rgb.c b/postproc/rgb2rgb.c
index abe1223065..f9f3ec9774 100644
--- a/postproc/rgb2rgb.c
+++ b/postproc/rgb2rgb.c
@@ -409,3 +409,21 @@ void rgb24toyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst
rgb24toyv12_C(src, ydst, udst, vdst, width, height, lumStride, chromStride, srcStride);
#endif
}
+
+void interleaveBytes(uint8_t *src1, uint8_t *src2, uint8_t *dst,
+ int width, int height, int src1Stride, int src2Stride, int dstStride)
+{
+#ifdef CAN_COMPILE_X86_ASM
+ // ordered per speed fasterst first
+ if(gCpuCaps.hasMMX2)
+ interleaveBytes_MMX2(src1, src2, dst, width, height, src1Stride, src2Stride, dstStride);
+ else if(gCpuCaps.has3DNow)
+ interleaveBytes_3DNow(src1, src2, dst, width, height, src1Stride, src2Stride, dstStride);
+ else if(gCpuCaps.hasMMX)
+ interleaveBytes_MMX(src1, src2, dst, width, height, src1Stride, src2Stride, dstStride);
+ else
+ interleaveBytes_C(src1, src2, dst, width, height, src1Stride, src2Stride, dstStride);
+#else
+ interleaveBytes_C(src1, src2, dst, width, height, src1Stride, src2Stride, dstStride);
+#endif
+}