|
|
|
@ -81,7 +81,7 @@ static void RENAME(yuv2yuvX)(SwsContext *c, const int16_t *lumFilter, |
|
|
|
|
*aDest = CONFIG_SWSCALE_ALPHA ? dest[3] : NULL; |
|
|
|
|
|
|
|
|
|
if (uDest) { |
|
|
|
|
x86_reg uv_off = c->uv_off; |
|
|
|
|
x86_reg uv_off = c->uv_offx2 >> 1; |
|
|
|
|
YSCALEYUV2YV12X(CHR_MMX_FILTER_OFFSET, uDest, chrDstW, 0) |
|
|
|
|
YSCALEYUV2YV12X(CHR_MMX_FILTER_OFFSET, vDest - uv_off, chrDstW + uv_off, uv_off) |
|
|
|
|
} |
|
|
|
@ -164,7 +164,7 @@ static void RENAME(yuv2yuvX_ar)(SwsContext *c, const int16_t *lumFilter, |
|
|
|
|
*aDest = CONFIG_SWSCALE_ALPHA ? dest[3] : NULL; |
|
|
|
|
|
|
|
|
|
if (uDest) { |
|
|
|
|
x86_reg uv_off = c->uv_off; |
|
|
|
|
x86_reg uv_off = c->uv_offx2 >> 1; |
|
|
|
|
YSCALEYUV2YV12X_ACCURATE(CHR_MMX_FILTER_OFFSET, uDest, chrDstW, 0) |
|
|
|
|
YSCALEYUV2YV12X_ACCURATE(CHR_MMX_FILTER_OFFSET, vDest - uv_off, chrDstW + uv_off, uv_off) |
|
|
|
|
} |
|
|
|
@ -473,7 +473,7 @@ static void RENAME(yuv2rgb32_X_ar)(SwsContext *c, const int16_t *lumFilter, |
|
|
|
|
{ |
|
|
|
|
x86_reg dummy=0; |
|
|
|
|
x86_reg dstW_reg = dstW; |
|
|
|
|
x86_reg uv_off = c->uv_off << 1; |
|
|
|
|
x86_reg uv_off = c->uv_offx2; |
|
|
|
|
|
|
|
|
|
if (CONFIG_SWSCALE_ALPHA && c->alpPixBuf) { |
|
|
|
|
YSCALEYUV2PACKEDX_ACCURATE |
|
|
|
@ -506,7 +506,7 @@ static void RENAME(yuv2rgb32_X)(SwsContext *c, const int16_t *lumFilter, |
|
|
|
|
{ |
|
|
|
|
x86_reg dummy=0; |
|
|
|
|
x86_reg dstW_reg = dstW; |
|
|
|
|
x86_reg uv_off = c->uv_off << 1; |
|
|
|
|
x86_reg uv_off = c->uv_offx2; |
|
|
|
|
|
|
|
|
|
if (CONFIG_SWSCALE_ALPHA && c->alpPixBuf) { |
|
|
|
|
YSCALEYUV2PACKEDX |
|
|
|
@ -563,7 +563,7 @@ static void RENAME(yuv2rgb565_X_ar)(SwsContext *c, const int16_t *lumFilter, |
|
|
|
|
{ |
|
|
|
|
x86_reg dummy=0; |
|
|
|
|
x86_reg dstW_reg = dstW; |
|
|
|
|
x86_reg uv_off = c->uv_off << 1; |
|
|
|
|
x86_reg uv_off = c->uv_offx2; |
|
|
|
|
|
|
|
|
|
YSCALEYUV2PACKEDX_ACCURATE |
|
|
|
|
YSCALEYUV2RGBX |
|
|
|
@ -587,7 +587,7 @@ static void RENAME(yuv2rgb565_X)(SwsContext *c, const int16_t *lumFilter, |
|
|
|
|
{ |
|
|
|
|
x86_reg dummy=0; |
|
|
|
|
x86_reg dstW_reg = dstW; |
|
|
|
|
x86_reg uv_off = c->uv_off << 1; |
|
|
|
|
x86_reg uv_off = c->uv_offx2; |
|
|
|
|
|
|
|
|
|
YSCALEYUV2PACKEDX |
|
|
|
|
YSCALEYUV2RGBX |
|
|
|
@ -640,7 +640,7 @@ static void RENAME(yuv2rgb555_X_ar)(SwsContext *c, const int16_t *lumFilter, |
|
|
|
|
{ |
|
|
|
|
x86_reg dummy=0; |
|
|
|
|
x86_reg dstW_reg = dstW; |
|
|
|
|
x86_reg uv_off = c->uv_off << 1; |
|
|
|
|
x86_reg uv_off = c->uv_offx2; |
|
|
|
|
|
|
|
|
|
YSCALEYUV2PACKEDX_ACCURATE |
|
|
|
|
YSCALEYUV2RGBX |
|
|
|
@ -664,7 +664,7 @@ static void RENAME(yuv2rgb555_X)(SwsContext *c, const int16_t *lumFilter, |
|
|
|
|
{ |
|
|
|
|
x86_reg dummy=0; |
|
|
|
|
x86_reg dstW_reg = dstW; |
|
|
|
|
x86_reg uv_off = c->uv_off << 1; |
|
|
|
|
x86_reg uv_off = c->uv_offx2; |
|
|
|
|
|
|
|
|
|
YSCALEYUV2PACKEDX |
|
|
|
|
YSCALEYUV2RGBX |
|
|
|
@ -797,7 +797,7 @@ static void RENAME(yuv2bgr24_X_ar)(SwsContext *c, const int16_t *lumFilter, |
|
|
|
|
{ |
|
|
|
|
x86_reg dummy=0; |
|
|
|
|
x86_reg dstW_reg = dstW; |
|
|
|
|
x86_reg uv_off = c->uv_off << 1; |
|
|
|
|
x86_reg uv_off = c->uv_offx2; |
|
|
|
|
|
|
|
|
|
YSCALEYUV2PACKEDX_ACCURATE |
|
|
|
|
YSCALEYUV2RGBX |
|
|
|
@ -821,7 +821,7 @@ static void RENAME(yuv2bgr24_X)(SwsContext *c, const int16_t *lumFilter, |
|
|
|
|
{ |
|
|
|
|
x86_reg dummy=0; |
|
|
|
|
x86_reg dstW_reg = dstW; |
|
|
|
|
x86_reg uv_off = c->uv_off << 1; |
|
|
|
|
x86_reg uv_off = c->uv_offx2; |
|
|
|
|
|
|
|
|
|
YSCALEYUV2PACKEDX |
|
|
|
|
YSCALEYUV2RGBX |
|
|
|
@ -862,7 +862,7 @@ static void RENAME(yuv2yuyv422_X_ar)(SwsContext *c, const int16_t *lumFilter, |
|
|
|
|
{ |
|
|
|
|
x86_reg dummy=0; |
|
|
|
|
x86_reg dstW_reg = dstW; |
|
|
|
|
x86_reg uv_off = c->uv_off << 1; |
|
|
|
|
x86_reg uv_off = c->uv_offx2; |
|
|
|
|
|
|
|
|
|
YSCALEYUV2PACKEDX_ACCURATE |
|
|
|
|
/* mm2=B, %%mm4=G, %%mm5=R, %%mm7=0 */ |
|
|
|
@ -883,7 +883,7 @@ static void RENAME(yuv2yuyv422_X)(SwsContext *c, const int16_t *lumFilter, |
|
|
|
|
{ |
|
|
|
|
x86_reg dummy=0; |
|
|
|
|
x86_reg dstW_reg = dstW; |
|
|
|
|
x86_reg uv_off = c->uv_off << 1; |
|
|
|
|
x86_reg uv_off = c->uv_offx2; |
|
|
|
|
|
|
|
|
|
YSCALEYUV2PACKEDX |
|
|
|
|
/* mm2=B, %%mm4=G, %%mm5=R, %%mm7=0 */ |
|
|
|
|