comparison postproc/swscale.c @ 4806:a14eff26f66a

use assert.h more assertions
author michael
date Fri, 22 Feb 2002 15:24:19 +0000
parents 45f652f8b7c8
children 4cfa6366e551
comparison
equal deleted inserted replaced
4805:79b753e2e84a 4806:a14eff26f66a
50 #include <string.h> 50 #include <string.h>
51 #include <math.h> 51 #include <math.h>
52 #include <stdio.h> 52 #include <stdio.h>
53 #include "../config.h" 53 #include "../config.h"
54 #include "../mangle.h" 54 #include "../mangle.h"
55 #include <assert.h>
55 #ifdef HAVE_MALLOC_H 56 #ifdef HAVE_MALLOC_H
56 #include <malloc.h> 57 #include <malloc.h>
57 #endif 58 #endif
58 #include "swscale.h" 59 #include "swscale.h"
59 #include "../cpudetect.h" 60 #include "../cpudetect.h"
74 #define FAST_BGR2YV12 // use 7 bit coeffs instead of 15bit 75 #define FAST_BGR2YV12 // use 7 bit coeffs instead of 15bit
75 76
76 #define RET 0xC3 //near return opcode for X86 77 #define RET 0xC3 //near return opcode for X86
77 78
78 #ifdef MP_DEBUG 79 #ifdef MP_DEBUG
79 #define ASSERT(x) if(!(x)) { printf("ASSERT " #x " failed\n"); *((int*)0)=0; } 80 #define ASSERT(x) assert(x);
80 #else 81 #else
81 #define ASSERT(x) ; 82 #define ASSERT(x) ;
82 #endif 83 #endif
83 84
84 #ifdef M_PI 85 #ifdef M_PI
804 } 805 }
805 } 806 }
806 else // downscale 807 else // downscale
807 { 808 {
808 int xDstInSrc; 809 int xDstInSrc;
810 ASSERT(dstW <= srcW)
811
809 if(flags&SWS_BICUBIC) filterSize= (int)ceil(1 + 4.0*srcW / (double)dstW); 812 if(flags&SWS_BICUBIC) filterSize= (int)ceil(1 + 4.0*srcW / (double)dstW);
810 else if(flags&SWS_X) filterSize= (int)ceil(1 + 4.0*srcW / (double)dstW); 813 else if(flags&SWS_X) filterSize= (int)ceil(1 + 4.0*srcW / (double)dstW);
811 else if(flags&SWS_AREA) filterSize= (int)ceil(1 + 1.0*srcW / (double)dstW); 814 else if(flags&SWS_AREA) filterSize= (int)ceil(1 + 1.0*srcW / (double)dstW);
812 else /* BILINEAR */ filterSize= (int)ceil(1 + 2.0*srcW / (double)dstW); 815 else /* BILINEAR */ filterSize= (int)ceil(1 + 2.0*srcW / (double)dstW);
813 // printf("%d %d %d\n", *filterSize, srcW, dstW); 816 // printf("%d %d %d\n", *filterSize, srcW, dstW);
856 } 859 }
857 860
858 /* apply src & dst Filter to filter -> filter2 861 /* apply src & dst Filter to filter -> filter2
859 free(filter); 862 free(filter);
860 */ 863 */
864 ASSERT(filterSize>0)
861 filter2Size= filterSize; 865 filter2Size= filterSize;
862 if(srcFilter) filter2Size+= srcFilter->length - 1; 866 if(srcFilter) filter2Size+= srcFilter->length - 1;
863 if(dstFilter) filter2Size+= dstFilter->length - 1; 867 if(dstFilter) filter2Size+= dstFilter->length - 1;
868 ASSERT(filter2Size>0)
864 filter2= (double*)memalign(8, filter2Size*dstW*sizeof(double)); 869 filter2= (double*)memalign(8, filter2Size*dstW*sizeof(double));
865 870
866 for(i=0; i<dstW; i++) 871 for(i=0; i<dstW; i++)
867 { 872 {
868 int j; 873 int j;
927 } 932 }
928 933
929 if(min>minFilterSize) minFilterSize= min; 934 if(min>minFilterSize) minFilterSize= min;
930 } 935 }
931 936
937 ASSERT(minFilterSize > 0)
932 filterSize= (minFilterSize +(filterAlign-1)) & (~(filterAlign-1)); 938 filterSize= (minFilterSize +(filterAlign-1)) & (~(filterAlign-1));
939 ASSERT(filterSize > 0)
933 filter= (double*)memalign(8, filterSize*dstW*sizeof(double)); 940 filter= (double*)memalign(8, filterSize*dstW*sizeof(double));
934 *outFilterSize= filterSize; 941 *outFilterSize= filterSize;
935 942
936 if((flags&SWS_PRINT_INFO) && verbose) 943 if((flags&SWS_PRINT_INFO) && verbose)
937 printf("SwScaler: reducing / aligning filtersize %d -> %d\n", filter2Size, filterSize); 944 printf("SwScaler: reducing / aligning filtersize %d -> %d\n", filter2Size, filterSize);
946 else filter[i*filterSize + j]= filter2[i*filter2Size + j]; 953 else filter[i*filterSize + j]= filter2[i*filter2Size + j];
947 } 954 }
948 } 955 }
949 free(filter2); filter2=NULL; 956 free(filter2); filter2=NULL;
950 957
951 ASSERT(filterSize > 0)
952 958
953 //FIXME try to align filterpos if possible 959 //FIXME try to align filterpos if possible
954 960
955 //fix borders 961 //fix borders
956 for(i=0; i<dstW; i++) 962 for(i=0; i<dstW; i++)