From 0141d839e3c4870a320737b3fcc500f3b4a1132e Mon Sep 17 00:00:00 2001 From: michael Date: Sat, 13 Apr 2002 00:48:21 +0000 Subject: rgb24->bgr24 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5583 b3059339-0415-0410-9bf9-f77b7e298cf2 --- postproc/rgb2rgb.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'postproc/rgb2rgb.c') diff --git a/postproc/rgb2rgb.c b/postproc/rgb2rgb.c index 7e70858eff..b1178b8628 100644 --- a/postproc/rgb2rgb.c +++ b/postproc/rgb2rgb.c @@ -24,6 +24,9 @@ static const uint64_t mask32b __attribute__((aligned(8))) = 0x000000FF000000FFU static const uint64_t mask32g __attribute__((aligned(8))) = 0x0000FF000000FF00ULL; static const uint64_t mask32r __attribute__((aligned(8))) = 0x00FF000000FF0000ULL; static const uint64_t mask32 __attribute__((aligned(8))) = 0x00FFFFFF00FFFFFFULL; +static const uint64_t mask24b __attribute__((aligned(8))) = 0x00FF0000FF0000FFULL; +static const uint64_t mask24g __attribute__((aligned(8))) = 0xFF0000FF0000FF00ULL; +static const uint64_t mask24r __attribute__((aligned(8))) = 0x0000FF0000FF0000ULL; static const uint64_t mask24l __attribute__((aligned(8))) = 0x0000000000FFFFFFULL; static const uint64_t mask24h __attribute__((aligned(8))) = 0x0000FFFFFF000000ULL; static const uint64_t mask24hh __attribute__((aligned(8))) = 0xffff000000000000ULL; @@ -316,6 +319,23 @@ void rgb32tobgr32(const uint8_t *src, uint8_t *dst, unsigned int src_size) #endif } +void rgb24tobgr24(const uint8_t *src, uint8_t *dst, unsigned int src_size) +{ +#ifdef CAN_COMPILE_X86_ASM + // ordered per speed fasterst first + if(gCpuCaps.hasMMX2) + rgb24tobgr24_MMX2(src, dst, src_size); + else if(gCpuCaps.has3DNow) + rgb24tobgr24_3DNow(src, dst, src_size); + else if(gCpuCaps.hasMMX) + rgb24tobgr24_MMX(src, dst, src_size); + else + rgb24tobgr24_C(src, dst, src_size); +#else + rgb24tobgr24_C(src, dst, src_size); +#endif +} + /** * * height should be a multiple of 2 and width should be a multiple of 16 (if this is a -- cgit v1.2.3