Mercurial > mplayer.hg
comparison libswscale/swscale.c @ 27182:f7b6d1014b6b
Remove ASSERT() macro. SoC Patch from Keiji Costantini
author | lu_zero |
---|---|
date | Sun, 06 Jul 2008 03:32:47 +0000 |
parents | a6ca10caead4 |
children | 18fc658de355 |
comparison
equal
deleted
inserted
replaced
27181:a6ca10caead4 | 27182:f7b6d1014b6b |
---|---|
85 #define DITHER1XBPP | 85 #define DITHER1XBPP |
86 | 86 |
87 #define FAST_BGR2YV12 // use 7 bit coeffs instead of 15bit | 87 #define FAST_BGR2YV12 // use 7 bit coeffs instead of 15bit |
88 | 88 |
89 #define RET 0xC3 //near return opcode for X86 | 89 #define RET 0xC3 //near return opcode for X86 |
90 | |
91 #ifdef MP_DEBUG | |
92 #define ASSERT(x) assert(x); | |
93 #else | |
94 #define ASSERT(x) ; | |
95 #endif | |
96 | 90 |
97 #ifdef M_PI | 91 #ifdef M_PI |
98 #define PI M_PI | 92 #define PI M_PI |
99 #else | 93 #else |
100 #define PI 3.14159265358979323846 | 94 #define PI 3.14159265358979323846 |
1058 else if (flags&SWS_SINC) sizeFactor= 20.0; // infinite ;) | 1052 else if (flags&SWS_SINC) sizeFactor= 20.0; // infinite ;) |
1059 else if (flags&SWS_SPLINE) sizeFactor= 20.0; // infinite ;) | 1053 else if (flags&SWS_SPLINE) sizeFactor= 20.0; // infinite ;) |
1060 else if (flags&SWS_BILINEAR) sizeFactor= 2.0; | 1054 else if (flags&SWS_BILINEAR) sizeFactor= 2.0; |
1061 else { | 1055 else { |
1062 sizeFactor= 0.0; //GCC warning killer | 1056 sizeFactor= 0.0; //GCC warning killer |
1063 ASSERT(0) | 1057 assert(0); |
1064 } | 1058 } |
1065 | 1059 |
1066 if (xInc1 <= 1.0) filterSizeInSrc= sizeFactor; // upscale | 1060 if (xInc1 <= 1.0) filterSizeInSrc= sizeFactor; // upscale |
1067 else filterSizeInSrc= sizeFactor*srcW / (double)dstW; | 1061 else filterSizeInSrc= sizeFactor*srcW / (double)dstW; |
1068 | 1062 |
1143 double p=-2.196152422706632; | 1137 double p=-2.196152422706632; |
1144 coeff = getSplineCoeff(1.0, 0.0, p, -p-1.0, d); | 1138 coeff = getSplineCoeff(1.0, 0.0, p, -p-1.0, d); |
1145 } | 1139 } |
1146 else { | 1140 else { |
1147 coeff= 0.0; //GCC warning killer | 1141 coeff= 0.0; //GCC warning killer |
1148 ASSERT(0) | 1142 assert(0); |
1149 } | 1143 } |
1150 | 1144 |
1151 filter[i*filterSize + j]= coeff; | 1145 filter[i*filterSize + j]= coeff; |
1152 xx++; | 1146 xx++; |
1153 } | 1147 } |
1156 } | 1150 } |
1157 | 1151 |
1158 /* apply src & dst Filter to filter -> filter2 | 1152 /* apply src & dst Filter to filter -> filter2 |
1159 av_free(filter); | 1153 av_free(filter); |
1160 */ | 1154 */ |
1161 ASSERT(filterSize>0) | 1155 assert(filterSize>0); |
1162 filter2Size= filterSize; | 1156 filter2Size= filterSize; |
1163 if (srcFilter) filter2Size+= srcFilter->length - 1; | 1157 if (srcFilter) filter2Size+= srcFilter->length - 1; |
1164 if (dstFilter) filter2Size+= dstFilter->length - 1; | 1158 if (dstFilter) filter2Size+= dstFilter->length - 1; |
1165 ASSERT(filter2Size>0) | 1159 assert(filter2Size>0); |
1166 filter2= av_malloc(filter2Size*dstW*sizeof(double)); | 1160 filter2= av_malloc(filter2Size*dstW*sizeof(double)); |
1167 | 1161 |
1168 for (i=0; i<dstW; i++) | 1162 for (i=0; i<dstW; i++) |
1169 { | 1163 { |
1170 int j; | 1164 int j; |
1175 scaleFilter.length= filterSize; | 1169 scaleFilter.length= filterSize; |
1176 | 1170 |
1177 if (srcFilter) outVec= sws_getConvVec(srcFilter, &scaleFilter); | 1171 if (srcFilter) outVec= sws_getConvVec(srcFilter, &scaleFilter); |
1178 else outVec= &scaleFilter; | 1172 else outVec= &scaleFilter; |
1179 | 1173 |
1180 ASSERT(outVec->length == filter2Size) | 1174 assert(outVec->length == filter2Size); |
1181 //FIXME dstFilter | 1175 //FIXME dstFilter |
1182 | 1176 |
1183 for (j=0; j<outVec->length; j++) | 1177 for (j=0; j<outVec->length; j++) |
1184 { | 1178 { |
1185 filter2[i*filter2Size + j]= outVec->coeff[j]; | 1179 filter2[i*filter2Size + j]= outVec->coeff[j]; |
1250 // special case for unscaled vertical filtering | 1244 // special case for unscaled vertical filtering |
1251 if (minFilterSize == 1 && filterAlign == 2) | 1245 if (minFilterSize == 1 && filterAlign == 2) |
1252 filterAlign= 1; | 1246 filterAlign= 1; |
1253 } | 1247 } |
1254 | 1248 |
1255 ASSERT(minFilterSize > 0) | 1249 assert(minFilterSize > 0); |
1256 filterSize= (minFilterSize +(filterAlign-1)) & (~(filterAlign-1)); | 1250 filterSize= (minFilterSize +(filterAlign-1)) & (~(filterAlign-1)); |
1257 ASSERT(filterSize > 0) | 1251 assert(filterSize > 0); |
1258 filter= av_malloc(filterSize*dstW*sizeof(double)); | 1252 filter= av_malloc(filterSize*dstW*sizeof(double)); |
1259 if (filterSize >= MAX_FILTER_SIZE) | 1253 if (filterSize >= MAX_FILTER_SIZE) |
1260 return -1; | 1254 return -1; |
1261 *outFilterSize= filterSize; | 1255 *outFilterSize= filterSize; |
1262 | 1256 |
1744 int length=0; | 1738 int length=0; |
1745 | 1739 |
1746 /* universal length finder */ | 1740 /* universal length finder */ |
1747 while(length+c->srcW <= FFABS(dstStride[0]) | 1741 while(length+c->srcW <= FFABS(dstStride[0]) |
1748 && length+c->srcW <= FFABS(srcStride[0])) length+= c->srcW; | 1742 && length+c->srcW <= FFABS(srcStride[0])) length+= c->srcW; |
1749 ASSERT(length!=0); | 1743 assert(length!=0); |
1750 | 1744 |
1751 for (i=0; i<srcSliceH; i++) | 1745 for (i=0; i<srcSliceH; i++) |
1752 { | 1746 { |
1753 memcpy(dstPtr, srcPtr, length); | 1747 memcpy(dstPtr, srcPtr, length); |
1754 srcPtr+= srcStride[0]; | 1748 srcPtr+= srcStride[0]; |
2386 //try to avoid drawing green stuff between the right end and the stride end | 2380 //try to avoid drawing green stuff between the right end and the stride end |
2387 for (i=0; i<c->vChrBufSize; i++) memset(c->chrPixBuf[i], 64, (VOF+1)*2); | 2381 for (i=0; i<c->vChrBufSize; i++) memset(c->chrPixBuf[i], 64, (VOF+1)*2); |
2388 | 2382 |
2389 assert(2*VOFW == VOF); | 2383 assert(2*VOFW == VOF); |
2390 | 2384 |
2391 ASSERT(c->chrDstH <= dstH) | 2385 assert(c->chrDstH <= dstH); |
2392 | 2386 |
2393 if (flags&SWS_PRINT_INFO) | 2387 if (flags&SWS_PRINT_INFO) |
2394 { | 2388 { |
2395 #ifdef DITHER1XBPP | 2389 #ifdef DITHER1XBPP |
2396 const char *dither= " dithered"; | 2390 const char *dither= " dithered"; |