Mercurial > mplayer.hg
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). |