Browse Source

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
tags/v0.5
Michael Niedermayer 20 years ago
parent
commit
d926e8c5c3
1 changed files with 10 additions and 0 deletions
  1. +10
    -0
      postproc/swscale_altivec_template.c

+ 10
- 0
postproc/swscale_altivec_template.c View File

@@ -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


Loading…
Cancel
Save