diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2005-06-27 07:40:24 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2005-06-27 07:40:24 +0000 |
commit | d926e8c5c39758fee31e06de4680cd5d15abcf8e (patch) | |
tree | 8cc66510ad9f37acbd5fd53e8cca61000e0bf784 /postproc | |
parent | edfaf6de29af22d3ec5380293908b76cf449b7db (diff) | |
download | ffmpeg-d926e8c5c39758fee31e06de4680cd5d15abcf8e.tar.gz |
width % 16 != 0 workaround by (Nicolas Plourde: nicolas plourde, gmail com>)
cleanup by me
indention fixed
second one must be yv12touyvy instead of yv12toyuy2
replace slow modulo by bitwise and
move %16!=0 code before the comment saying the code cant handle %16!=0
Originally committed as revision 15825 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
Diffstat (limited to 'postproc')
-rw-r--r-- | postproc/swscale_altivec_template.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/postproc/swscale_altivec_template.c b/postproc/swscale_altivec_template.c index f5c7b965f6..93ae41fcdf 100644 --- a/postproc/swscale_altivec_template.c +++ b/postproc/swscale_altivec_template.c @@ -400,6 +400,11 @@ static inline int yv12toyuy2_unscaled_altivec(SwsContext *c, uint8_t* src[], int const int vertLumPerChroma = 2; register unsigned int y; + if(width&15){ + yv12toyuy2( ysrc, usrc, vsrc, dst,c->srcW,srcSliceH, lumStride, chromStride, dstStride); + return srcSliceH; + } + /* this code assume: 1) dst is 16 bytes-aligned @@ -474,6 +479,11 @@ static inline int yv12touyvy_unscaled_altivec(SwsContext *c, uint8_t* src[], int const vector unsigned char yperm = vec_lvsl(0, ysrc); register unsigned int y; + if(width&15){ + yv12touyvy( ysrc, usrc, vsrc, dst,c->srcW,srcSliceH, lumStride, chromStride, dstStride); + return srcSliceH; + } + /* this code assume: 1) dst is 16 bytes-aligned |