Mercurial > mplayer.hg
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 } |