BinbinDesbois
25th July 2011, 13:45
I have a strange behavior.
My program saves video using openCV. On the developpment PC ( WinXP ), the programs runs correctly, moving my videoWriter to a QThread helps a lot in performance gain.
When I run it on a laptop, still on WinXP ( same SP ), I get a ghost process in the Windows task manager after exiting the program.
After tons of tests, I've isolated the faulty line :
mVideoWriter = cvCreateVideoWriter(filename.toUtf8(), CV_FOURCC('X','V','I','D'), mFps, size);
Commenting it removes the ghost process when the program exits.
The really strange behavior is that this line is only called when I hit the "Record" button. So I can have the ghost process even if the line isn't reached by the program.
It seems that there is a kind of static object created by the compiler that is not released when using a QThread but it's been days I'm searching for it.
Any help would be helpfull !
My program saves video using openCV. On the developpment PC ( WinXP ), the programs runs correctly, moving my videoWriter to a QThread helps a lot in performance gain.
When I run it on a laptop, still on WinXP ( same SP ), I get a ghost process in the Windows task manager after exiting the program.
After tons of tests, I've isolated the faulty line :
mVideoWriter = cvCreateVideoWriter(filename.toUtf8(), CV_FOURCC('X','V','I','D'), mFps, size);
Commenting it removes the ghost process when the program exits.
The really strange behavior is that this line is only called when I hit the "Record" button. So I can have the ghost process even if the line isn't reached by the program.
It seems that there is a kind of static object created by the compiler that is not released when using a QThread but it's been days I'm searching for it.
Any help would be helpfull !