if (V4L2_SUPPORT == 1)
{
- CLEAR (capture->crop);
- capture->crop.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- capture->crop.c.left = 0;
- capture->crop.c.top = 0;
- capture->crop.c.height = h*24;
- capture->crop.c.width = w*24;
-
- /* set the crop area, but don't exit if the device don't support croping */
- xioctl (capture->deviceHandle, VIDIOC_S_CROP, &capture->crop);
+ CLEAR (capture->cropcap);
+ capture->cropcap.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+
+ if (xioctl (capture->deviceHandle, VIDIOC_CROPCAP, &capture->cropcap) < 0) {
+ fprintf(stderr, "HIGHGUI ERROR: V4L/V4L2: VIDIOC_CROPCAP\n");
+ } else {
+
+ CLEAR (capture->crop);
+ capture->crop.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ capture->crop.c= capture->cropcap.defrect;
+
+ /* set the crop area, but don't exit if the device don't support croping */
+ if (xioctl (capture->deviceHandle, VIDIOC_S_CROP, &capture->crop) < 0) {
+ fprintf(stderr, "HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP\n");
+ }
+ }
CLEAR (capture->form);
capture->form.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;