diff --git a/libswscale/swscale.c b/libswscale/swscale.c index f185d2354a..5743e7104d 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -1871,39 +1871,39 @@ static int initMMX2HScaler(int dstW, int xInc, uint8_t *filterCode, int16_t *fil int shift=0; if (filterCode) { - filter[i ] = (( xpos & 0xFFFF) ^ 0xFFFF)>>9; - filter[i+1] = (((xpos+xInc ) & 0xFFFF) ^ 0xFFFF)>>9; - filter[i+2] = (((xpos+xInc*2) & 0xFFFF) ^ 0xFFFF)>>9; - filter[i+3] = (((xpos+xInc*3) & 0xFFFF) ^ 0xFFFF)>>9; - filterPos[i/2]= xx; + filter[i ] = (( xpos & 0xFFFF) ^ 0xFFFF)>>9; + filter[i+1] = (((xpos+xInc ) & 0xFFFF) ^ 0xFFFF)>>9; + filter[i+2] = (((xpos+xInc*2) & 0xFFFF) ^ 0xFFFF)>>9; + filter[i+3] = (((xpos+xInc*3) & 0xFFFF) ^ 0xFFFF)>>9; + filterPos[i/2]= xx; - memcpy(filterCode + fragmentPos, fragment, fragmentLength); + memcpy(filterCode + fragmentPos, fragment, fragmentLength); - filterCode[fragmentPos + imm8OfPShufW1]= - (a+inc) | ((b+inc)<<2) | ((c+inc)<<4) | ((d+inc)<<6); - filterCode[fragmentPos + imm8OfPShufW2]= - a | (b<<2) | (c<<4) | (d<<6); + filterCode[fragmentPos + imm8OfPShufW1]= + (a+inc) | ((b+inc)<<2) | ((c+inc)<<4) | ((d+inc)<<6); + filterCode[fragmentPos + imm8OfPShufW2]= + a | (b<<2) | (c<<4) | (d<<6); - if (i+4-inc>=dstW) shift=maxShift; //avoid overread - else if ((filterPos[i/2]&3) <= maxShift) shift=filterPos[i/2]&3; //Align + if (i+4-inc>=dstW) shift=maxShift; //avoid overread + else if ((filterPos[i/2]&3) <= maxShift) shift=filterPos[i/2]&3; //Align - if (shift && i>=shift) - { - filterCode[fragmentPos + imm8OfPShufW1]+= 0x55*shift; - filterCode[fragmentPos + imm8OfPShufW2]+= 0x55*shift; - filterPos[i/2]-=shift; - } + if (shift && i>=shift) + { + filterCode[fragmentPos + imm8OfPShufW1]+= 0x55*shift; + filterCode[fragmentPos + imm8OfPShufW2]+= 0x55*shift; + filterPos[i/2]-=shift; + } } fragmentPos+= fragmentLength; if (filterCode) - filterCode[fragmentPos]= RET; + filterCode[fragmentPos]= RET; } xpos+=xInc; } if (filterCode) - filterPos[((i/2)+1)&(~1)]= xpos>>16; // needed to jump to the next part + filterPos[((i/2)+1)&(~1)]= xpos>>16; // needed to jump to the next part return fragmentPos + 1; }