diff options
author | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-06-21 17:37:00 +0000 |
---|---|---|
committer | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-06-21 17:37:00 +0000 |
commit | b9cda2118464ce493e8280381c031bacd930b515 (patch) | |
tree | 7965e33618169e8e67094a5c94de56cca7f0495f /postproc/rgb2rgb.c | |
parent | fd68aff8f70065fbd8e35d85244c3806e243505d (diff) | |
download | mpv-b9cda2118464ce493e8280381c031bacd930b515.tar.bz2 mpv-b9cda2118464ce493e8280381c031bacd930b515.tar.xz |
pre-yvu9toyv12 converter, only grayscale Y-plane coping :)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6485 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'postproc/rgb2rgb.c')
-rw-r--r-- | postproc/rgb2rgb.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/postproc/rgb2rgb.c b/postproc/rgb2rgb.c index 44c8e461e8..91983bea0a 100644 --- a/postproc/rgb2rgb.c +++ b/postproc/rgb2rgb.c @@ -214,6 +214,23 @@ void palette8torgb24(const uint8_t *src, uint8_t *dst, unsigned num_pixels, cons } } +void bgr24torgb24(const uint8_t *src, uint8_t *dst, unsigned src_size) +{ +#ifdef CAN_COMPILE_X86_ASM + // ordered per speed fasterst first + if(gCpuCaps.hasMMX2) + bgr24torgb24_MMX2(src, dst, src_size); + else if(gCpuCaps.has3DNow) + bgr24torgb24_3DNow(src, dst, src_size); + else if(gCpuCaps.hasMMX) + bgr24torgb24_MMX(src, dst, src_size); + else + bgr24torgb24_C(src, dst, src_size); +#else + bgr24torgb24_C(src, dst, src_size); +#endif +} + void rgb32to16(const uint8_t *src, uint8_t *dst, unsigned src_size) { #ifdef CAN_COMPILE_X86_ASM @@ -432,6 +449,26 @@ void uyvytoyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, #endif } +void yvu9toyv12(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, + uint8_t *ydst, uint8_t *udst, uint8_t *vdst, + unsigned int width, unsigned int height, + unsigned int lumStride, unsigned int chromStride) +{ +#ifdef CAN_COMPILE_X86_ASM + // ordered per speed fasterst first + if(gCpuCaps.hasMMX2) + yvu9toyv12_MMX2(ysrc, usrc, vsrc, ydst, udst, vdst, width, height, lumStride, chromStride); + else if(gCpuCaps.has3DNow) + yvu9toyv12_3DNow(ysrc, usrc, vsrc, ydst, udst, vdst, width, height, lumStride, chromStride); + else if(gCpuCaps.hasMMX) + yvu9toyv12_MMX(ysrc, usrc, vsrc, ydst, udst, vdst, width, height, lumStride, chromStride); + else + yvu9toyv12_C(ysrc, usrc, vsrc, ydst, udst, vdst, width, height, lumStride, chromStride); +#else + yvu9toyv12_C(ysrc, usrc, vsrc, ydst, udst, vdst, width, height, lumStride, chromStride); +#endif +} + /** * * height should be a multiple of 2 and width should be a multiple of 2 (if this is a |