|
|
|
@ -1166,7 +1166,8 @@ static inline void initFilter(int16_t **outFilter, int16_t **filterPos, int *out |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Note the +1 is for the MMXscaler which reads over the end
|
|
|
|
|
*outFilter= (int16_t*)memalign(8, *outFilterSize*(dstW+1)*sizeof(int16_t)); |
|
|
|
|
/* align at 16 for AltiVec (needed by hScale_altivec_real) */ |
|
|
|
|
*outFilter= (int16_t*)memalign(16, *outFilterSize*(dstW+1)*sizeof(int16_t)); |
|
|
|
|
memset(*outFilter, 0, *outFilterSize*(dstW+1)*sizeof(int16_t)); |
|
|
|
|
|
|
|
|
|
/* Normalize & Store in outFilter */ |
|
|
|
@ -2132,10 +2133,11 @@ SwsContext *sws_getContext(int srcW, int srcH, int origSrcFormat, int dstW, int |
|
|
|
|
c->lumPixBuf= (int16_t**)memalign(4, c->vLumBufSize*2*sizeof(int16_t*)); |
|
|
|
|
c->chrPixBuf= (int16_t**)memalign(4, c->vChrBufSize*2*sizeof(int16_t*)); |
|
|
|
|
//Note we need at least one pixel more at the end because of the mmx code (just in case someone wanna replace the 4000/8000)
|
|
|
|
|
/* align at 16 bytes for AltiVec */ |
|
|
|
|
for(i=0; i<c->vLumBufSize; i++) |
|
|
|
|
c->lumPixBuf[i]= c->lumPixBuf[i+c->vLumBufSize]= (uint16_t*)memalign(8, 4000); |
|
|
|
|
c->lumPixBuf[i]= c->lumPixBuf[i+c->vLumBufSize]= (uint16_t*)memalign(16, 4000); |
|
|
|
|
for(i=0; i<c->vChrBufSize; i++) |
|
|
|
|
c->chrPixBuf[i]= c->chrPixBuf[i+c->vChrBufSize]= (uint16_t*)memalign(8, 8000); |
|
|
|
|
c->chrPixBuf[i]= c->chrPixBuf[i+c->vChrBufSize]= (uint16_t*)memalign(16, 8000); |
|
|
|
|
|
|
|
|
|
//try to avoid drawing green stuff between the right end and the stride end
|
|
|
|
|
for(i=0; i<c->vLumBufSize; i++) memset(c->lumPixBuf[i], 0, 4000); |
|
|
|
|