diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-07-19 04:57:47 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-07-19 05:36:26 +0200 |
commit | e9f7c7aef96dd8ca3519f0cfaa52573cf63a1d74 (patch) | |
tree | d226fd3180a0d4de12d6872fe2e76233ce316958 /libswscale/swscale.c | |
parent | 76899be1135563dca27a95e8a7a86506b0750350 (diff) | |
download | ffmpeg-e9f7c7aef96dd8ca3519f0cfaa52573cf63a1d74.tar.gz |
sws: Move fast bilinear C code into seperate file
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswscale/swscale.c')
-rw-r--r-- | libswscale/swscale.c | 38 |
1 files changed, 2 insertions, 36 deletions
diff --git a/libswscale/swscale.c b/libswscale/swscale.c index 9919d41add..59ead121d9 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -221,21 +221,6 @@ static void lumRangeFromJpeg16_c(int16_t *_dst, int width) dst[i] = (dst[i]*(14071/4) + (33561947<<4)/4)>>12; } -static void hyscale_fast_c(SwsContext *c, int16_t *dst, int dstWidth, - const uint8_t *src, int srcW, int xInc) -{ - int i; - unsigned int xpos = 0; - for (i = 0; i < dstWidth; i++) { - register unsigned int xx = xpos >> 16; - register unsigned int xalpha = (xpos & 0xFFFF) >> 9; - dst[i] = (src[xx] << 7) + (src[xx + 1] - src[xx]) * xalpha; - xpos += xInc; - } - for (i=dstWidth-1; (i*xInc)>>16 >=srcW-1; i--) - dst[i] = src[srcW-1]*128; -} - // *** horizontal scale Y line to temp buffer static av_always_inline void hyscale(SwsContext *c, int16_t *dst, int dstWidth, const uint8_t *src_in[4], @@ -273,25 +258,6 @@ static av_always_inline void hyscale(SwsContext *c, int16_t *dst, int dstWidth, convertRange(dst, dstWidth); } -static void hcscale_fast_c(SwsContext *c, int16_t *dst1, int16_t *dst2, - int dstWidth, const uint8_t *src1, - const uint8_t *src2, int srcW, int xInc) -{ - int i; - unsigned int xpos = 0; - for (i = 0; i < dstWidth; i++) { - register unsigned int xx = xpos >> 16; - register unsigned int xalpha = (xpos & 0xFFFF) >> 9; - dst1[i] = (src1[xx] * (xalpha ^ 127) + src1[xx + 1] * xalpha); - dst2[i] = (src2[xx] * (xalpha ^ 127) + src2[xx + 1] * xalpha); - xpos += xInc; - } - for (i=dstWidth-1; (i*xInc)>>16 >=srcW-1; i--) { - dst1[i] = src1[srcW-1]*128; - dst2[i] = src2[srcW-1]*128; - } -} - static av_always_inline void hcscale(SwsContext *c, int16_t *dst1, int16_t *dst2, int dstWidth, const uint8_t *src_in[4], @@ -745,8 +711,8 @@ static av_cold void sws_init_swscale(SwsContext *c) if (c->dstBpc <= 14) { c->hyScale = c->hcScale = hScale8To15_c; if (c->flags & SWS_FAST_BILINEAR) { - c->hyscale_fast = hyscale_fast_c; - c->hcscale_fast = hcscale_fast_c; + c->hyscale_fast = ff_hyscale_fast_c; + c->hcscale_fast = ff_hcscale_fast_c; } } else { c->hyScale = c->hcScale = hScale8To19_c; |