Support mono as input format.
Originally committed as revision 27587 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
This commit is contained in:
parent
ec1bca2a0f
commit
3d05e078ee
@ -127,6 +127,8 @@ unsigned swscale_version(void)
|
||||
|| (x)==PIX_FMT_BGR4_BYTE \
|
||||
|| (x)==PIX_FMT_RGB4_BYTE \
|
||||
|| (x)==PIX_FMT_YUV440P \
|
||||
|| (x)==PIX_FMT_MONOWHITE \
|
||||
|| (x)==PIX_FMT_MONOBLACK \
|
||||
)
|
||||
#define isSupportedOut(x) ( \
|
||||
(x)==PIX_FMT_YUV420P \
|
||||
|
@ -2143,6 +2143,16 @@ static inline void RENAME(palToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1,
|
||||
}
|
||||
}
|
||||
|
||||
static inline void RENAME(mono2Y)(uint8_t *dst, uint8_t *src, long width, int format)
|
||||
{
|
||||
int i, j;
|
||||
for (i=0; i<width/8; i++){
|
||||
int d= format == PIX_FMT_MONOBLACK ? src[i] : ~src[i];
|
||||
for(j=7; j>=0; j--)
|
||||
dst[i]= ((d>>j)&1)*255;
|
||||
}
|
||||
}
|
||||
|
||||
// bilinear / bicubic scaling
|
||||
static inline void RENAME(hScale)(int16_t *dst, int dstW, uint8_t *src, int srcW, int xInc,
|
||||
int16_t *filter, int16_t *filterPos, long filterSize)
|
||||
@ -2398,6 +2408,11 @@ static inline void RENAME(hyscale)(SwsContext *c, uint16_t *dst, long dstWidth,
|
||||
RENAME(palToY)(formatConvBuffer, src, srcW, (uint32_t*)pal);
|
||||
src= formatConvBuffer;
|
||||
}
|
||||
else if (srcFormat==PIX_FMT_MONOBLACK ||srcFormat==PIX_FMT_MONOWHITE)
|
||||
{
|
||||
RENAME(mono2Y)(formatConvBuffer, src, srcW, srcFormat);
|
||||
src= formatConvBuffer;
|
||||
}
|
||||
|
||||
#ifdef HAVE_MMX
|
||||
// Use the new MMX scaler if the MMX2 one can't be used (it is faster than the x86 ASM one).
|
||||
@ -2660,7 +2675,7 @@ inline static void RENAME(hcscale)(SwsContext *c, uint16_t *dst, long dstWidth,
|
||||
src1= formatConvBuffer;
|
||||
src2= formatConvBuffer+VOFW;
|
||||
}
|
||||
else if (isGray(srcFormat))
|
||||
else if (isGray(srcFormat) || srcFormat==PIX_FMT_MONOBLACK || PIX_FMT_MONOWHITE)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user