OpenCV 3.0.0+IPP segmentation fault

asked 2016-07-20 06:36:55 -0500

McPhatty gravatar image


there is some issue which haunts me for quite a while now. I'm running a multithreaded algorithm, which loads an image in each thread and performs a sobel filter on it, before doing some other stuff which I coded by myself. I compiled the 3.0.0 source with IPP enabled.

On rare occasions (Voodoo: mostly when I run the program the first time I powered my computer?) the application crashes in cvtColor(), which I run before applying the sobel filter on it. Debugger says it crashes in CV_IPP_CHECK(), in detail in useIPP() in which again cv::TLSData<cv::coretlsdata>::get() is called. Whatever cv::TLSData<cv::coretlsdata> is, it's pointer seems to be NULL on that occasion. Most of the time this is not happening again afterwards and the program is running quite fine.

Can someone maybe explain to me what cv::TLSData is? Might this be some initialization issue? Is this call threadsafe?

Windows 7, VS2008.

Thank you in advance.

edit retag flag offensive close merge delete


i vaguely remember some bug related to TLSData being static, and not initialized, unless you use it in the main thread first.

can you try to update to 3.1.0 ? i'm almost sure, it got fixed.

berak gravatar imageberak ( 2016-07-20 07:53:53 -0500 )edit