comparison libswscale/swscale_template.c @ 27603:a4ec392de2e7

Split mono2Y in monowhite and monoblack
author lu_zero
date Thu, 18 Sep 2008 00:24:32 +0000
parents 2de32a90d2dd
children 4b7f86c4a8b9
comparison
equal deleted inserted replaced
27602:2de32a90d2dd 27603:a4ec392de2e7
2150 dstU[i]= p>>8; 2150 dstU[i]= p>>8;
2151 dstV[i]= p>>16; 2151 dstV[i]= p>>16;
2152 } 2152 }
2153 } 2153 }
2154 2154
2155 static inline void RENAME(mono2Y)(uint8_t *dst, uint8_t *src, long width, int format) 2155 static inline void RENAME(monowhite2Y)(uint8_t *dst, uint8_t *src, long width)
2156 { 2156 {
2157 int i, j; 2157 int i, j;
2158 for (i=0; i<width/8; i++){ 2158 for (i=0; i<width/8; i++){
2159 int d= format == PIX_FMT_MONOBLACK ? src[i] : ~src[i]; 2159 int d= ~src[i];
2160 for(j=0; j<8; j++)
2161 dst[8*i+j]= ((d>>(7-j))&1)*255;
2162 }
2163 }
2164
2165 static inline void RENAME(monoblack2Y)(uint8_t *dst, uint8_t *src, long width)
2166 {
2167 int i, j;
2168 for (i=0; i<width/8; i++){
2169 int d= src[i];
2160 for(j=0; j<8; j++) 2170 for(j=0; j<8; j++)
2161 dst[8*i+j]= ((d>>(7-j))&1)*255; 2171 dst[8*i+j]= ((d>>(7-j))&1)*255;
2162 } 2172 }
2163 } 2173 }
2164 2174
2414 else if (srcFormat==PIX_FMT_RGB8 || srcFormat==PIX_FMT_BGR8 || srcFormat==PIX_FMT_PAL8 || srcFormat==PIX_FMT_BGR4_BYTE || srcFormat==PIX_FMT_RGB4_BYTE) 2424 else if (srcFormat==PIX_FMT_RGB8 || srcFormat==PIX_FMT_BGR8 || srcFormat==PIX_FMT_PAL8 || srcFormat==PIX_FMT_BGR4_BYTE || srcFormat==PIX_FMT_RGB4_BYTE)
2415 { 2425 {
2416 RENAME(palToY)(formatConvBuffer, src, srcW, pal); 2426 RENAME(palToY)(formatConvBuffer, src, srcW, pal);
2417 src= formatConvBuffer; 2427 src= formatConvBuffer;
2418 } 2428 }
2419 else if (srcFormat==PIX_FMT_MONOBLACK ||srcFormat==PIX_FMT_MONOWHITE) 2429 else if (srcFormat==PIX_FMT_MONOBLACK)
2420 { 2430 {
2421 RENAME(mono2Y)(formatConvBuffer, src, srcW, srcFormat); 2431 RENAME(monoblack2Y)(formatConvBuffer, src, srcW);
2432 src= formatConvBuffer;
2433 }
2434 else if (srcFormat==PIX_FMT_MONOWHITE)
2435 {
2436 RENAME(monowhite2Y)(formatConvBuffer, src, srcW);
2422 src= formatConvBuffer; 2437 src= formatConvBuffer;
2423 } 2438 }
2424 2439
2425 #ifdef HAVE_MMX 2440 #ifdef HAVE_MMX
2426 // Use the new MMX scaler if the MMX2 one can't be used (it is faster than the x86 ASM one). 2441 // Use the new MMX scaler if the MMX2 one can't be used (it is faster than the x86 ASM one).