|
|
|
@ -92,13 +92,13 @@ struct HWFeatures |
|
|
|
|
{ |
|
|
|
|
enum { MAX_FEATURE = CV_HARDWARE_MAX_FEATURE }; |
|
|
|
|
|
|
|
|
|
HWFeatures() |
|
|
|
|
HWFeatures(void) |
|
|
|
|
{ |
|
|
|
|
memset( have, 0, sizeof(have) ); |
|
|
|
|
x86_family = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static HWFeatures initialize() |
|
|
|
|
static HWFeatures initialize(void) |
|
|
|
|
{ |
|
|
|
|
HWFeatures f; |
|
|
|
|
int cpuid_data[4] = { 0, 0, 0, 0 }; |
|
|
|
@ -163,7 +163,7 @@ volatile bool useOptimizedFlag = true; |
|
|
|
|
|
|
|
|
|
struct IPPInitializer |
|
|
|
|
{ |
|
|
|
|
IPPInitializer() { ippStaticInit(); } |
|
|
|
|
IPPInitializer(void) { ippStaticInit(); } |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
IPPInitializer ippInitializer; |
|
|
|
@ -177,12 +177,12 @@ void setUseOptimized( bool flag ) |
|
|
|
|
currentFeatures = flag ? &featuresEnabled : &featuresDisabled; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool useOptimized() |
|
|
|
|
bool useOptimized(void) |
|
|
|
|
{ |
|
|
|
|
return useOptimizedFlag; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int64 getTickCount() |
|
|
|
|
int64 getTickCount(void) |
|
|
|
|
{ |
|
|
|
|
#if defined WIN32 || defined _WIN32 || defined WINCE |
|
|
|
|
LARGE_INTEGER counter; |
|
|
|
@ -202,7 +202,7 @@ int64 getTickCount() |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
double getTickFrequency() |
|
|
|
|
double getTickFrequency(void) |
|
|
|
|
{ |
|
|
|
|
#if defined WIN32 || defined _WIN32 || defined WINCE |
|
|
|
|
LARGE_INTEGER freq; |
|
|
|
@ -276,10 +276,17 @@ int64 getCPUTickCount(void) |
|
|
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
|
|
int64 getCPUTickCount() |
|
|
|
|
#ifdef HAVE_IPP |
|
|
|
|
int64 getCPUTickCount(void) |
|
|
|
|
{ |
|
|
|
|
return ippGetCpuClocks(); |
|
|
|
|
} |
|
|
|
|
#else |
|
|
|
|
int64 getCPUTickCount(void) |
|
|
|
|
{ |
|
|
|
|
return getTickCount(); |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
@ -368,11 +375,13 @@ void error( const Exception& exc ) |
|
|
|
|
fprintf( stderr, "%s\n", buf ); |
|
|
|
|
fflush( stderr ); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(breakOnError) |
|
|
|
|
{ |
|
|
|
|
static volatile int* p = 0; |
|
|
|
|
*p = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
throw exc; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -381,7 +390,9 @@ redirectError( CvErrorCallback errCallback, void* userdata, void** prevUserdata) |
|
|
|
|
{ |
|
|
|
|
if( prevUserdata ) |
|
|
|
|
*prevUserdata = customErrorCallbackData; |
|
|
|
|
|
|
|
|
|
CvErrorCallback prevCallback = customErrorCallback; |
|
|
|
|
|
|
|
|
|
customErrorCallback = errCallback; |
|
|
|
|
customErrorCallbackData = userdata; |
|
|
|
|
|
|
|
|
@ -546,7 +557,7 @@ CV_IMPL int cvSetErrMode(int) |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CV_IMPL int cvGetErrStatus() |
|
|
|
|
CV_IMPL int cvGetErrStatus(void) |
|
|
|
|
{ |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
@ -590,7 +601,8 @@ cvErrorFromIppStatus( int status ) |
|
|
|
|
case CV_BADFACTOR_ERR: return CV_StsBadArg; |
|
|
|
|
case CV_BADPOINT_ERR: return CV_StsBadPoint; |
|
|
|
|
|
|
|
|
|
default: return CV_StsError; |
|
|
|
|
default: |
|
|
|
|
return CV_StsError; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -604,19 +616,23 @@ CvModule::CvModule( CvModuleInfo* _info ) |
|
|
|
|
info = last; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CvModule::~CvModule() |
|
|
|
|
CvModule::~CvModule(void) |
|
|
|
|
{ |
|
|
|
|
if( info ) |
|
|
|
|
{ |
|
|
|
|
CvModuleInfo* p = first; |
|
|
|
|
for( ; p != 0 && p->next != info; p = p->next ) |
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
if( p ) |
|
|
|
|
p->next = info->next; |
|
|
|
|
|
|
|
|
|
if( first == info ) |
|
|
|
|
first = info->next; |
|
|
|
|
|
|
|
|
|
if( last == info ) |
|
|
|
|
last = p; |
|
|
|
|
|
|
|
|
|
free( info ); |
|
|
|
|
info = 0; |
|
|
|
|
} |
|
|
|
@ -645,7 +661,9 @@ cvRegisterModule( const CvModuleInfo* module ) |
|
|
|
|
CvModule::first = module_copy; |
|
|
|
|
else |
|
|
|
|
CvModule::last->next = module_copy; |
|
|
|
|
|
|
|
|
|
CvModule::last = module_copy; |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|