comparison libswscale/x86/yuv2rgb_mmx.c @ 30212:c1531f608d76

MMX(2) accelerated yuv420->rgb24 routine, trivial as essentially as it just swaps R and B inputs for the existing yuv420->bgr24 routine.
author zuxy
date Sat, 09 Jan 2010 17:20:49 +0000
parents c080f1f5c07e
children 6502a6b24f9b
comparison
equal deleted inserted replaced
30211:1e02e823023c 30212:c1531f608d76
70 case PIX_FMT_BGR32: 70 case PIX_FMT_BGR32:
71 if (CONFIG_SWSCALE_ALPHA && c->srcFormat == PIX_FMT_YUVA420P) { 71 if (CONFIG_SWSCALE_ALPHA && c->srcFormat == PIX_FMT_YUVA420P) {
72 if (HAVE_7REGS) return yuva420_bgr32_MMX2; 72 if (HAVE_7REGS) return yuva420_bgr32_MMX2;
73 break; 73 break;
74 } else return yuv420_bgr32_MMX2; 74 } else return yuv420_bgr32_MMX2;
75 case PIX_FMT_BGR24: return yuv420_rgb24_MMX2; 75 case PIX_FMT_RGB24: return yuv420_rgb24_MMX2;
76 case PIX_FMT_BGR24: return yuv420_bgr24_MMX2;
76 case PIX_FMT_RGB565: return yuv420_rgb16_MMX2; 77 case PIX_FMT_RGB565: return yuv420_rgb16_MMX2;
77 case PIX_FMT_RGB555: return yuv420_rgb15_MMX2; 78 case PIX_FMT_RGB555: return yuv420_rgb15_MMX2;
78 } 79 }
79 } 80 }
80 if (c->flags & SWS_CPU_CAPS_MMX) { 81 if (c->flags & SWS_CPU_CAPS_MMX) {
87 case PIX_FMT_BGR32: 88 case PIX_FMT_BGR32:
88 if (CONFIG_SWSCALE_ALPHA && c->srcFormat == PIX_FMT_YUVA420P) { 89 if (CONFIG_SWSCALE_ALPHA && c->srcFormat == PIX_FMT_YUVA420P) {
89 if (HAVE_7REGS) return yuva420_bgr32_MMX; 90 if (HAVE_7REGS) return yuva420_bgr32_MMX;
90 break; 91 break;
91 } else return yuv420_bgr32_MMX; 92 } else return yuv420_bgr32_MMX;
92 case PIX_FMT_BGR24: return yuv420_rgb24_MMX; 93 case PIX_FMT_RGB24: return yuv420_rgb24_MMX;
94 case PIX_FMT_BGR24: return yuv420_bgr24_MMX;
93 case PIX_FMT_RGB565: return yuv420_rgb16_MMX; 95 case PIX_FMT_RGB565: return yuv420_rgb16_MMX;
94 case PIX_FMT_RGB555: return yuv420_rgb15_MMX; 96 case PIX_FMT_RGB555: return yuv420_rgb15_MMX;
95 } 97 }
96 } 98 }
97 99