return g_VI.getFourcc(m_index);
case CV_CAP_PROP_FPS:
return g_VI.getFPS(m_index);
+ case CV_CAP_PROP_AUTOFOCUS:
+ // Flags indicate whether or not autofocus is enabled
+ if (g_VI.getVideoSettingCamera(m_index, CameraControl_Focus, min_value, max_value, stepping_delta, current_value, flags, defaultValue))
+ return (double)flags;
+ return -1;
// video filter properties
case CV_CAP_PROP_BRIGHTNESS:
break;
case CV_CAP_PROP_FPS:
+ {
int fps = cvRound(propVal);
if (fps != g_VI.getFPS(m_index))
{
return g_VI.isDeviceSetup(m_index);
}
+ case CV_CAP_PROP_AUTOFOCUS:
+ {
+ // Flags are required to toggle autofocus or not, but the setProperty interface does not support multiple parameters
+ bool enabled = cvRound(propVal) == 1;
+ long minFocus, maxFocus, delta, currentFocus, flags, defaultValue;
+ if (!g_VI.getVideoSettingCamera(m_index, CameraControl_Focus, minFocus, maxFocus, delta, currentFocus, flags, defaultValue))
+ {
+ return false;
+ }
+ return g_VI.setVideoSettingCamera(m_index, CameraControl_Focus, currentFocus, enabled ? CameraControl_Flags_Auto | CameraControl_Flags_Manual : CameraControl_Flags_Manual, enabled ? true : false);
+ }
+ }
+
if (handled)
{
// a stream setting