aboutsummaryrefslogtreecommitdiffstats
path: root/libswscale/ppc/swscale_altivec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-07-11 04:00:41 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-07-11 04:01:01 +0200
commit3b2d285afbd6304505a96b71877cdfda13f4565c (patch)
tree95ec289a13aae12e8bbb9e880031f02f6ee46dd2 /libswscale/ppc/swscale_altivec.c
parent3743ea1fe3761ddbf8bfaae31c6acbf59a8cdc0a (diff)
parent46b32b51979af94f645f8780c78bb12944d04790 (diff)
downloadffmpeg-3b2d285afbd6304505a96b71877cdfda13f4565c.tar.gz
Merge branch 'sws_32bit_integration'
* sws_32bit_integration: regtests/sws: update checksums for recent changes sws: dont mess with XInc when the code needing it isnt used sws: Fix chroma init for 32bit buffers. swscale: error dithering for 16/9/10-bit to 8-bit. swscale: fix overflow in 16-bit vertical scaling. swscale: fix crash in 8-bpc bilinear output without alpha. swscale: fix 16-bit scaling when output is 8-bits. sws: fix non native endian 9-15 bit input with 16bit out sws: disable scale16 when int32 is used sws: fix rgb -> 16bit sws: fix uv overwrite in 32bt sws: fix gray16_1 sws:ix yuv2rgb48_1_c_template() sws: fix 16/32 bug from merge swscale: for >8bit scaling, read in native bit-depth. swscale: fix another yuv range conversion overflow in 16bit scaling. (cherry picked from commit 81cc7d0bd1eab0aa782ff8dd49e087025a42cdee) swscale: fix yuv range correction when using 16-bit scaling. (cherry picked from commit e0b8fff6c7a293e35079ba1931bd19372686b3f6) swscale: implement >8bit scaling support. Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswscale/ppc/swscale_altivec.c')
-rw-r--r--libswscale/ppc/swscale_altivec.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libswscale/ppc/swscale_altivec.c b/libswscale/ppc/swscale_altivec.c
index 924c67d191..8bc0ddd9d8 100644
--- a/libswscale/ppc/swscale_altivec.c
+++ b/libswscale/ppc/swscale_altivec.c
@@ -220,7 +220,7 @@ yuv2yuvX_altivec_real(SwsContext *c,
}
}
-static void hScale_altivec_real(int16_t *dst, int dstW,
+static void hScale_altivec_real(SwsContext *c, int16_t *dst, int dstW,
const uint8_t *src, const int16_t *filter,
const int16_t *filterPos, int filterSize)
{
@@ -406,7 +406,9 @@ void ff_sws_init_swScale_altivec(SwsContext *c)
if (!(av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC))
return;
- c->hScale = hScale_altivec_real;
+ if (c->scalingBpp == 8) {
+ c->hScale = hScale_altivec_real;
+ }
if (!is16BPS(dstFormat) && !is9_OR_10BPS(dstFormat) &&
dstFormat != PIX_FMT_NV12 && dstFormat != PIX_FMT_NV21 &&
!c->alpPixBuf) {