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";