comparison libswscale/swscale_template.c @ 27182:f7b6d1014b6b

Remove ASSERT() macro. SoC Patch from Keiji Costantini
author lu_zero
date Sun, 06 Jul 2008 03:32:47 +0000
parents 65b8334df960
children 37014889f212
comparison
equal deleted inserted replaced
27181:a6ca10caead4 27182:f7b6d1014b6b
3037 // dstY, dstH, firstLumSrcY, lastInLumBuf, vLumBufSize, vChrBufSize, srcSliceY, srcSliceH, vLumFilterSize, firstChrSrcY, vChrFilterSize, c->chrSrcVSubSample); 3037 // dstY, dstH, firstLumSrcY, lastInLumBuf, vLumBufSize, vChrBufSize, srcSliceY, srcSliceH, vLumFilterSize, firstChrSrcY, vChrFilterSize, c->chrSrcVSubSample);
3038 //handle holes (FAST_BILINEAR & weird filters) 3038 //handle holes (FAST_BILINEAR & weird filters)
3039 if (firstLumSrcY > lastInLumBuf) lastInLumBuf= firstLumSrcY-1; 3039 if (firstLumSrcY > lastInLumBuf) lastInLumBuf= firstLumSrcY-1;
3040 if (firstChrSrcY > lastInChrBuf) lastInChrBuf= firstChrSrcY-1; 3040 if (firstChrSrcY > lastInChrBuf) lastInChrBuf= firstChrSrcY-1;
3041 //printf("%d %d %d\n", firstChrSrcY, lastInChrBuf, vChrBufSize); 3041 //printf("%d %d %d\n", firstChrSrcY, lastInChrBuf, vChrBufSize);
3042 ASSERT(firstLumSrcY >= lastInLumBuf - vLumBufSize + 1) 3042 assert(firstLumSrcY >= lastInLumBuf - vLumBufSize + 1);
3043 ASSERT(firstChrSrcY >= lastInChrBuf - vChrBufSize + 1) 3043 assert(firstChrSrcY >= lastInChrBuf - vChrBufSize + 1);
3044 3044
3045 // Do we have enough lines in this slice to output the dstY line 3045 // Do we have enough lines in this slice to output the dstY line
3046 if (lastLumSrcY < srcSliceY + srcSliceH && lastChrSrcY < -((-srcSliceY - srcSliceH)>>c->chrSrcVSubSample)) 3046 if (lastLumSrcY < srcSliceY + srcSliceH && lastChrSrcY < -((-srcSliceY - srcSliceH)>>c->chrSrcVSubSample))
3047 { 3047 {
3048 //Do horizontal scaling 3048 //Do horizontal scaling
3049 while(lastInLumBuf < lastLumSrcY) 3049 while(lastInLumBuf < lastLumSrcY)
3050 { 3050 {
3051 uint8_t *s= src[0]+(lastInLumBuf + 1 - srcSliceY)*srcStride[0]; 3051 uint8_t *s= src[0]+(lastInLumBuf + 1 - srcSliceY)*srcStride[0];
3052 lumBufIndex++; 3052 lumBufIndex++;
3053 //printf("%d %d %d %d\n", lumBufIndex, vLumBufSize, lastInLumBuf, lastLumSrcY); 3053 //printf("%d %d %d %d\n", lumBufIndex, vLumBufSize, lastInLumBuf, lastLumSrcY);
3054 ASSERT(lumBufIndex < 2*vLumBufSize) 3054 assert(lumBufIndex < 2*vLumBufSize);
3055 ASSERT(lastInLumBuf + 1 - srcSliceY < srcSliceH) 3055 assert(lastInLumBuf + 1 - srcSliceY < srcSliceH);
3056 ASSERT(lastInLumBuf + 1 - srcSliceY >= 0) 3056 assert(lastInLumBuf + 1 - srcSliceY >= 0);
3057 //printf("%d %d\n", lumBufIndex, vLumBufSize); 3057 //printf("%d %d\n", lumBufIndex, vLumBufSize);
3058 RENAME(hyscale)(lumPixBuf[ lumBufIndex ], dstW, s, srcW, lumXInc, 3058 RENAME(hyscale)(lumPixBuf[ lumBufIndex ], dstW, s, srcW, lumXInc,
3059 flags, canMMX2BeUsed, hLumFilter, hLumFilterPos, hLumFilterSize, 3059 flags, canMMX2BeUsed, hLumFilter, hLumFilterPos, hLumFilterSize,
3060 funnyYCode, c->srcFormat, formatConvBuffer, 3060 funnyYCode, c->srcFormat, formatConvBuffer,
3061 c->lumMmx2Filter, c->lumMmx2FilterPos, pal); 3061 c->lumMmx2Filter, c->lumMmx2FilterPos, pal);
3064 while(lastInChrBuf < lastChrSrcY) 3064 while(lastInChrBuf < lastChrSrcY)
3065 { 3065 {
3066 uint8_t *src1= src[1]+(lastInChrBuf + 1 - chrSrcSliceY)*srcStride[1]; 3066 uint8_t *src1= src[1]+(lastInChrBuf + 1 - chrSrcSliceY)*srcStride[1];
3067 uint8_t *src2= src[2]+(lastInChrBuf + 1 - chrSrcSliceY)*srcStride[2]; 3067 uint8_t *src2= src[2]+(lastInChrBuf + 1 - chrSrcSliceY)*srcStride[2];
3068 chrBufIndex++; 3068 chrBufIndex++;
3069 ASSERT(chrBufIndex < 2*vChrBufSize) 3069 assert(chrBufIndex < 2*vChrBufSize);
3070 ASSERT(lastInChrBuf + 1 - chrSrcSliceY < (chrSrcSliceH)) 3070 assert(lastInChrBuf + 1 - chrSrcSliceY < (chrSrcSliceH));
3071 ASSERT(lastInChrBuf + 1 - chrSrcSliceY >= 0) 3071 assert(lastInChrBuf + 1 - chrSrcSliceY >= 0);
3072 //FIXME replace parameters through context struct (some at least) 3072 //FIXME replace parameters through context struct (some at least)
3073 3073
3074 if (!(isGray(srcFormat) || isGray(dstFormat))) 3074 if (!(isGray(srcFormat) || isGray(dstFormat)))
3075 RENAME(hcscale)(chrPixBuf[ chrBufIndex ], chrDstW, src1, src2, chrSrcW, chrXInc, 3075 RENAME(hcscale)(chrPixBuf[ chrBufIndex ], chrDstW, src1, src2, chrSrcW, chrXInc,
3076 flags, canMMX2BeUsed, hChrFilter, hChrFilterPos, hChrFilterSize, 3076 flags, canMMX2BeUsed, hChrFilter, hChrFilterPos, hChrFilterSize,
3092 //Do horizontal scaling 3092 //Do horizontal scaling
3093 while(lastInLumBuf+1 < srcSliceY + srcSliceH) 3093 while(lastInLumBuf+1 < srcSliceY + srcSliceH)
3094 { 3094 {
3095 uint8_t *s= src[0]+(lastInLumBuf + 1 - srcSliceY)*srcStride[0]; 3095 uint8_t *s= src[0]+(lastInLumBuf + 1 - srcSliceY)*srcStride[0];
3096 lumBufIndex++; 3096 lumBufIndex++;
3097 ASSERT(lumBufIndex < 2*vLumBufSize) 3097 assert(lumBufIndex < 2*vLumBufSize);
3098 ASSERT(lastInLumBuf + 1 - srcSliceY < srcSliceH) 3098 assert(lastInLumBuf + 1 - srcSliceY < srcSliceH);
3099 ASSERT(lastInLumBuf + 1 - srcSliceY >= 0) 3099 assert(lastInLumBuf + 1 - srcSliceY >= 0);
3100 RENAME(hyscale)(lumPixBuf[ lumBufIndex ], dstW, s, srcW, lumXInc, 3100 RENAME(hyscale)(lumPixBuf[ lumBufIndex ], dstW, s, srcW, lumXInc,
3101 flags, canMMX2BeUsed, hLumFilter, hLumFilterPos, hLumFilterSize, 3101 flags, canMMX2BeUsed, hLumFilter, hLumFilterPos, hLumFilterSize,
3102 funnyYCode, c->srcFormat, formatConvBuffer, 3102 funnyYCode, c->srcFormat, formatConvBuffer,
3103 c->lumMmx2Filter, c->lumMmx2FilterPos, pal); 3103 c->lumMmx2Filter, c->lumMmx2FilterPos, pal);
3104 lastInLumBuf++; 3104 lastInLumBuf++;
3106 while(lastInChrBuf+1 < (chrSrcSliceY + chrSrcSliceH)) 3106 while(lastInChrBuf+1 < (chrSrcSliceY + chrSrcSliceH))
3107 { 3107 {
3108 uint8_t *src1= src[1]+(lastInChrBuf + 1 - chrSrcSliceY)*srcStride[1]; 3108 uint8_t *src1= src[1]+(lastInChrBuf + 1 - chrSrcSliceY)*srcStride[1];
3109 uint8_t *src2= src[2]+(lastInChrBuf + 1 - chrSrcSliceY)*srcStride[2]; 3109 uint8_t *src2= src[2]+(lastInChrBuf + 1 - chrSrcSliceY)*srcStride[2];
3110 chrBufIndex++; 3110 chrBufIndex++;
3111 ASSERT(chrBufIndex < 2*vChrBufSize) 3111 assert(chrBufIndex < 2*vChrBufSize);
3112 ASSERT(lastInChrBuf + 1 - chrSrcSliceY < chrSrcSliceH) 3112 assert(lastInChrBuf + 1 - chrSrcSliceY < chrSrcSliceH);
3113 ASSERT(lastInChrBuf + 1 - chrSrcSliceY >= 0) 3113 assert(lastInChrBuf + 1 - chrSrcSliceY >= 0);
3114 3114
3115 if (!(isGray(srcFormat) || isGray(dstFormat))) 3115 if (!(isGray(srcFormat) || isGray(dstFormat)))
3116 RENAME(hcscale)(chrPixBuf[ chrBufIndex ], chrDstW, src1, src2, chrSrcW, chrXInc, 3116 RENAME(hcscale)(chrPixBuf[ chrBufIndex ], chrDstW, src1, src2, chrSrcW, chrXInc,
3117 flags, canMMX2BeUsed, hChrFilter, hChrFilterPos, hChrFilterSize, 3117 flags, canMMX2BeUsed, hChrFilter, hChrFilterPos, hChrFilterSize,
3118 funnyUVCode, c->srcFormat, formatConvBuffer, 3118 funnyUVCode, c->srcFormat, formatConvBuffer,
3197 dest, uDest, vDest, dstW, chrDstW); 3197 dest, uDest, vDest, dstW, chrDstW);
3198 } 3198 }
3199 } 3199 }
3200 else 3200 else
3201 { 3201 {
3202 ASSERT(lumSrcPtr + vLumFilterSize - 1 < lumPixBuf + vLumBufSize*2); 3202 assert(lumSrcPtr + vLumFilterSize - 1 < lumPixBuf + vLumBufSize*2);
3203 ASSERT(chrSrcPtr + vChrFilterSize - 1 < chrPixBuf + vChrBufSize*2); 3203 assert(chrSrcPtr + vChrFilterSize - 1 < chrPixBuf + vChrBufSize*2);
3204 if (vLumFilterSize == 1 && vChrFilterSize == 2) //unscaled RGB 3204 if (vLumFilterSize == 1 && vChrFilterSize == 2) //unscaled RGB
3205 { 3205 {
3206 int chrAlpha= vChrFilter[2*dstY+1]; 3206 int chrAlpha= vChrFilter[2*dstY+1];
3207 RENAME(yuv2packed1)(c, *lumSrcPtr, *chrSrcPtr, *(chrSrcPtr+1), 3207 RENAME(yuv2packed1)(c, *lumSrcPtr, *chrSrcPtr, *(chrSrcPtr+1),
3208 dest, dstW, chrAlpha, dstFormat, flags, dstY); 3208 dest, dstW, chrAlpha, dstFormat, flags, dstY);
3248 vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, 3248 vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
3249 dest, uDest, vDest, dstW, chrDstW); 3249 dest, uDest, vDest, dstW, chrDstW);
3250 } 3250 }
3251 else 3251 else
3252 { 3252 {
3253 ASSERT(lumSrcPtr + vLumFilterSize - 1 < lumPixBuf + vLumBufSize*2); 3253 assert(lumSrcPtr + vLumFilterSize - 1 < lumPixBuf + vLumBufSize*2);
3254 ASSERT(chrSrcPtr + vChrFilterSize - 1 < chrPixBuf + vChrBufSize*2); 3254 assert(chrSrcPtr + vChrFilterSize - 1 < chrPixBuf + vChrBufSize*2);
3255 yuv2packedXinC(c, 3255 yuv2packedXinC(c,
3256 vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize, 3256 vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize,
3257 vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, 3257 vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
3258 dest, dstW, dstY); 3258 dest, dstW, dstY);
3259 } 3259 }