probably fixed multi-threaded capturing from DShow cameras (ticket #1470)
This commit is contained in:
parent
b2a6a257b7
commit
8513ed08d0
@ -384,7 +384,7 @@ typedef _AMMediaType AM_MEDIA_TYPE;
|
||||
|
||||
//keeps track of how many instances of VI are being used
|
||||
//don't touch
|
||||
static int comInitCount = 0;
|
||||
//static int comInitCount = 0;
|
||||
|
||||
|
||||
//////////////////////////////////////// VIDEO DEVICE ///////////////////////////////////
|
||||
@ -1915,7 +1915,7 @@ videoInput::~videoInput(){
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
bool videoInput::comInit(){
|
||||
HRESULT hr = NOERROR;
|
||||
/*HRESULT hr = NOERROR;
|
||||
|
||||
//no need for us to start com more than once
|
||||
if(comInitCount == 0 ){
|
||||
@ -1935,7 +1935,7 @@ bool videoInput::comInit(){
|
||||
}
|
||||
}
|
||||
|
||||
comInitCount++;
|
||||
comInitCount++;*/
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1946,14 +1946,15 @@ bool videoInput::comInit(){
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
bool videoInput::comUnInit(){
|
||||
if(comInitCount > 0)comInitCount--; //decrease the count of instances using com
|
||||
/*if(comInitCount > 0)comInitCount--; //decrease the count of instances using com
|
||||
|
||||
if(comInitCount == 0){
|
||||
CoUninitialize(); //if there are no instances left - uninitialize com
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return false;*/
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -2912,7 +2913,7 @@ class CvCaptureCAM_DShow : public CvCapture
|
||||
{
|
||||
public:
|
||||
CvCaptureCAM_DShow();
|
||||
virtual ~CvCaptureCAM_DShow() { close(); }
|
||||
virtual ~CvCaptureCAM_DShow();
|
||||
|
||||
virtual bool open( int index );
|
||||
virtual void close();
|
||||
@ -2944,6 +2945,13 @@ CvCaptureCAM_DShow::CvCaptureCAM_DShow()
|
||||
index = -1;
|
||||
frame = 0;
|
||||
width = height = -1;
|
||||
CoInitialize(0);
|
||||
}
|
||||
|
||||
CvCaptureCAM_DShow::~CvCaptureCAM_DShow()
|
||||
{
|
||||
close();
|
||||
CoUninitialize();
|
||||
}
|
||||
|
||||
void CvCaptureCAM_DShow::close()
|
||||
|
Loading…
x
Reference in New Issue
Block a user