Hi Eduardo, > I'm currently starting to work with v4l. I'm not sure if this is > the right place to post this question, but as this group has relation > with v4l, I'll try also here. > > The question is about digital zoom capabilities. I'm a little > confused about how to implement crop related ioctls in a v4l2 driver. > > First of all, what is the common application flow to probe zoom > capabilities from > a v4l2 driver? What is the common application flow to get and set current > zoom settings from a v4l2 driver? AFAIU, applications must combine > VIDIOC_CROPCAP, VIDIOC_[S,G]_CROP with VIDIOC_[S,G]_FMT. > What application is a good example for this issue? > > Suppose a device which supports following modes: > - mode 1 (640, 480), > - mode 2 (320, 240) from window (0,0) to (640, 480) and > - mode 3 (320, 240) from window (161, 121) to (480, 360) > > What is the best way to implement this support? I can see at least > one option here: export the bounds and defrect for cropcap as 640x480. > When applications request formats, return to them what best fits > between 640x480 or 320x240. And then, when applications request crop > window modification, the behaviour would be, if they request a crop > window equal to defrect, the device is changed to mode 1 or 2 > (depending on the current format). however if the crop window > requested is smaller then defrect, the mode 3 is configured. Is this > behaviour expected or I misunderstood something?
The behaviour you described is what I would expect, with a small change. If the crop window requested is different from defrect, you should select mode 1/2 or 3 depending on which window size is closer to the requested one. Best regards, Laurent Pinchart _______________________________________________ Linux-uvc-devel mailing list [email protected] https://lists.berlios.de/mailman/listinfo/linux-uvc-devel
