diff options
author | Luca Abeni <lucabe72@email.it> | 2006-06-30 12:00:31 +0000 |
---|---|---|
committer | Luca Abeni <lucabe72@email.it> | 2006-06-30 12:00:31 +0000 |
commit | 73435f006bb9baa285251bd3f47eb1b1f5cd06b6 (patch) | |
tree | 1861e762c5bc66f83ded26662d247354d8056622 /postproc/cs_test.c | |
parent | c99ddfa42a0cac9b3255357330733f718677e131 (diff) | |
download | ffmpeg-73435f006bb9baa285251bd3f47eb1b1f5cd06b6.tar.gz |
Move postproc ---> libswscale
Originally committed as revision 18866 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
Diffstat (limited to 'postproc/cs_test.c')
-rw-r--r-- | postproc/cs_test.c | 288 |
1 files changed, 0 insertions, 288 deletions
diff --git a/postproc/cs_test.c b/postproc/cs_test.c deleted file mode 100644 index b1963f92f6..0000000000 --- a/postproc/cs_test.c +++ /dev/null @@ -1,288 +0,0 @@ -/* - Copyright (C) 2002 Michael Niedermayer <michaelni@gmx.at> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include <stdio.h> -#include <stdlib.h> -#include <inttypes.h> - -#include "swscale.h" -#include "rgb2rgb.h" -#include "cpudetect.h" - -#define SIZE 1000 -#define srcByte 0x55 -#define dstByte 0xBB - -#ifdef __APPLE_CC__ -#define memalign(x,y) malloc(y) -#endif - -static int get_sws_cpuflags() -{ - return (gCpuCaps.hasMMX ? SWS_CPU_CAPS_MMX : 0) | - (gCpuCaps.hasMMX2 ? SWS_CPU_CAPS_MMX2 : 0) | - (gCpuCaps.has3DNow ? SWS_CPU_CAPS_3DNOW : 0); -} - -main(int argc, char **argv) -{ - int i, funcNum; - uint8_t *srcBuffer= (uint8_t*)memalign(128, SIZE); - uint8_t *dstBuffer= (uint8_t*)memalign(128, SIZE); - int failedNum=0; - int passedNum=0; - - printf("memory corruption test ...\n"); - - if(argc==2){ - GetCpuCaps(&gCpuCaps); - printf("testing mmx\n"); - } - - sws_rgb2rgb_init(get_sws_cpuflags()); - - for(funcNum=0; funcNum<100; funcNum++){ - int width; - int failed=0; - int srcBpp=0; - int dstBpp=0; - - printf("."); fflush(stdout); - memset(srcBuffer, srcByte, SIZE); - - for(width=32; width<64; width++){ - int dstOffset; - for(dstOffset=128; dstOffset<196; dstOffset++){ - int srcOffset; - memset(dstBuffer, dstByte, SIZE); - - for(srcOffset=128; srcOffset<196; srcOffset++){ - uint8_t *src= srcBuffer+srcOffset; - uint8_t *dst= dstBuffer+dstOffset; - char *name=NULL; - - if(failed) break; //don't fill the screen with shit ... - - switch(funcNum){ - case 0: - srcBpp=2; - dstBpp=2; - name="rgb15to16"; - rgb15to16(src, dst, width*srcBpp); - break; - case 1: - srcBpp=2; - dstBpp=3; - name="rgb15to24"; - rgb15to24(src, dst, width*srcBpp); - break; - case 2: - srcBpp=2; - dstBpp=4; - name="rgb15to32"; - rgb15to32(src, dst, width*srcBpp); - break; - case 3: - srcBpp=2; - dstBpp=3; - name="rgb16to24"; - rgb16to24(src, dst, width*srcBpp); - break; - case 4: - srcBpp=2; - dstBpp=4; - name="rgb16to32"; - rgb16to32(src, dst, width*srcBpp); - break; - case 5: - srcBpp=3; - dstBpp=2; - name="rgb24to15"; - rgb24to15(src, dst, width*srcBpp); - break; - case 6: - srcBpp=3; - dstBpp=2; - name="rgb24to16"; - rgb24to16(src, dst, width*srcBpp); - break; - case 7: - srcBpp=3; - dstBpp=4; - name="rgb24to32"; - rgb24to32(src, dst, width*srcBpp); - break; - case 8: - srcBpp=4; - dstBpp=2; - name="rgb32to15"; - rgb32to15(src, dst, width*srcBpp); - break; - case 9: - srcBpp=4; - dstBpp=2; - name="rgb32to16"; - rgb32to16(src, dst, width*srcBpp); - break; - case 10: - srcBpp=4; - dstBpp=3; - name="rgb32to24"; - rgb32to24(src, dst, width*srcBpp); - break; - case 11: - srcBpp=2; - dstBpp=2; - name="rgb16to15"; - rgb16to15(src, dst, width*srcBpp); - break; - - case 14: - srcBpp=2; - dstBpp=2; - name="rgb15tobgr15"; - rgb15tobgr15(src, dst, width*srcBpp); - break; - case 15: - srcBpp=2; - dstBpp=2; - name="rgb15tobgr16"; - rgb15tobgr16(src, dst, width*srcBpp); - break; - case 16: - srcBpp=2; - dstBpp=3; - name="rgb15tobgr24"; - rgb15tobgr24(src, dst, width*srcBpp); - break; - case 17: - srcBpp=2; - dstBpp=4; - name="rgb15tobgr32"; - rgb15tobgr32(src, dst, width*srcBpp); - break; - case 18: - srcBpp=2; - dstBpp=2; - name="rgb16tobgr15"; - rgb16tobgr15(src, dst, width*srcBpp); - break; - case 19: - srcBpp=2; - dstBpp=2; - name="rgb16tobgr16"; - rgb16tobgr16(src, dst, width*srcBpp); - break; - case 20: - srcBpp=2; - dstBpp=3; - name="rgb16tobgr24"; - rgb16tobgr24(src, dst, width*srcBpp); - break; - case 21: - srcBpp=2; - dstBpp=4; - name="rgb16tobgr32"; - rgb16tobgr32(src, dst, width*srcBpp); - break; - case 22: - srcBpp=3; - dstBpp=2; - name="rgb24tobgr15"; - rgb24tobgr15(src, dst, width*srcBpp); - break; - case 23: - srcBpp=3; - dstBpp=2; - name="rgb24tobgr16"; - rgb24tobgr16(src, dst, width*srcBpp); - break; - case 24: - srcBpp=3; - dstBpp=3; - name="rgb24tobgr24"; - rgb24tobgr24(src, dst, width*srcBpp); - break; - case 25: - srcBpp=3; - dstBpp=4; - name="rgb24tobgr32"; - rgb24tobgr32(src, dst, width*srcBpp); - break; - case 26: - srcBpp=4; - dstBpp=2; - name="rgb32tobgr15"; - rgb32tobgr15(src, dst, width*srcBpp); - break; - case 27: - srcBpp=4; - dstBpp=2; - name="rgb32tobgr16"; - rgb32tobgr16(src, dst, width*srcBpp); - break; - case 28: - srcBpp=4; - dstBpp=3; - name="rgb32tobgr24"; - rgb32tobgr24(src, dst, width*srcBpp); - break; - case 29: - srcBpp=4; - dstBpp=4; - name="rgb32tobgr32"; - rgb32tobgr32(src, dst, width*srcBpp); - break; - - } - if(!srcBpp) break; - - for(i=0; i<SIZE; i++){ - if(srcBuffer[i]!=srcByte){ - printf("src damaged at %d w:%d src:%d dst:%d %s\n", - i, width, srcOffset, dstOffset, name); - failed=1; - break; - } - } - for(i=0; i<dstOffset; i++){ - if(dstBuffer[i]!=dstByte){ - printf("dst damaged at %d w:%d src:%d dst:%d %s\n", - i, width, srcOffset, dstOffset, name); - failed=1; - break; - } - } - for(i=dstOffset + width*dstBpp; i<SIZE; i++){ - if(dstBuffer[i]!=dstByte){ - printf("dst damaged at %d w:%d src:%d dst:%d %s\n", - i, width, srcOffset, dstOffset, name); - failed=1; - break; - } - } - } - } - } - if(failed) failedNum++; - else if(srcBpp) passedNum++; - } - - printf("%d converters passed, %d converters randomly overwrote memory\n", passedNum, failedNum); - return failedNum; -} |