double fps;
int nDMABufs;
bool started;
+ int userMode;
enum { VIDERE = 0x5505 };
frameC = 0;
nimages = 1;
rectify = false;
+ userMode = -1;
}
DC1394_ISO_SPEED_3200);
}
- if (frameWidth > 0 || frameHeight > 0)
+ if (userMode == -1 && (frameWidth > 0 || frameHeight > 0))
{
dc1394video_mode_t bestMode = (dc1394video_mode_t) - 1;
dc1394video_modes_t videoModes;
if ((int)bestMode >= 0)
code = dc1394_video_set_mode(dcCam, bestMode);
}
+
+ if (userMode > 0)
+ {
+ dc1394video_modes_t videoModes;
+ dc1394_video_get_supported_modes(dcCam, &videoModes);
+ if (userMode < videoModes.num)
+ {
+ dc1394video_mode_t mode = videoModes.modes[userMode];
+ code = dc1394_video_set_mode(dcCam, mode);
+ }
+ }
if (fps > 0)
{
return false;
rectify = fabs(value) > FLT_EPSILON;
break;
+ case CV_CAP_PROP_MODE:
+ userMode = cvRound(value);
+ break;
default:
return false;
}