Merge pull request #410 from taka-no-me:fix_cap_dshow_setfps
This commit is contained in:
@@ -3120,6 +3120,7 @@ protected:
|
|||||||
void init();
|
void init();
|
||||||
|
|
||||||
int index, width, height,fourcc;
|
int index, width, height,fourcc;
|
||||||
|
int widthSet, heightSet;
|
||||||
IplImage* frame;
|
IplImage* frame;
|
||||||
static videoInput VI;
|
static videoInput VI;
|
||||||
};
|
};
|
||||||
@@ -3138,6 +3139,7 @@ CvCaptureCAM_DShow::CvCaptureCAM_DShow()
|
|||||||
index = -1;
|
index = -1;
|
||||||
frame = 0;
|
frame = 0;
|
||||||
width = height = fourcc = -1;
|
width = height = fourcc = -1;
|
||||||
|
widthSet = heightSet = -1;
|
||||||
CoInitialize(0);
|
CoInitialize(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3155,7 +3157,7 @@ void CvCaptureCAM_DShow::close()
|
|||||||
index = -1;
|
index = -1;
|
||||||
cvReleaseImage(&frame);
|
cvReleaseImage(&frame);
|
||||||
}
|
}
|
||||||
width = height = -1;
|
widthSet = heightSet = width = height = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize camera input
|
// Initialize camera input
|
||||||
@@ -3282,9 +3284,12 @@ bool CvCaptureCAM_DShow::setProperty( int property_id, double value )
|
|||||||
{
|
{
|
||||||
VI.stopDevice(index);
|
VI.stopDevice(index);
|
||||||
VI.setIdealFramerate(index,fps);
|
VI.setIdealFramerate(index,fps);
|
||||||
VI.setupDevice(index);
|
if (widthSet > 0 && heightSet > 0)
|
||||||
|
VI.setupDevice(index, widthSet, heightSet);
|
||||||
|
else
|
||||||
|
VI.setupDevice(index);
|
||||||
}
|
}
|
||||||
break;
|
return VI.isDeviceSetup(index);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3299,8 +3304,15 @@ bool CvCaptureCAM_DShow::setProperty( int property_id, double value )
|
|||||||
VI.setIdealFramerate(index, fps);
|
VI.setIdealFramerate(index, fps);
|
||||||
VI.setupDeviceFourcc(index, width, height, fourcc);
|
VI.setupDeviceFourcc(index, width, height, fourcc);
|
||||||
}
|
}
|
||||||
width = height = fourcc = -1;
|
|
||||||
return VI.isDeviceSetup(index);
|
bool success = VI.isDeviceSetup(index);
|
||||||
|
if (success)
|
||||||
|
{
|
||||||
|
widthSet = width;
|
||||||
|
heightSet = height;
|
||||||
|
width = height = fourcc = -1;
|
||||||
|
}
|
||||||
|
return success;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user