controls, subdevs, and media framework
I'm trying to understand how the media framework and V4L2 share the responsibility of configuring a video device. Referring to the ISP code on Laurent's media-0004-omap3isp branch, the video device is now split up into several devices... suppose you have a sensor delivering raw bayer data to the CCDC. I could get this raw data from the /dev/video2 device (named "OMAP3 ISP CCDC output") or I could get YUV data from the previewer or resizer. But I would no longer have a single device where I could ENUM_FMT and see that I could get either. Correct?
Having settled on a particular video device, (how) do regular controls (ie. VIDIOC_[S|G]_CTRL) work? I don't see any support for them in ispvideo.c. Is it just yet to be implemented? Or is it expected that the application will access the subdevs individually?
Basically the same Q for CROPCAP: isp_video_cropcap passes it on to the last link in the chain, but none of the subdevs in the ISP currently have a cropcap function implemented (yet). Does this still need to be written?
Signature · 5 lines
Michael Jones MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner
Hi Michael,
Quoted 8 lines · On Tuesday 26 October 2010 17:08:12 Michael Jones wrote:
I'm trying to understand how the media framework and V4L2 share the responsibility of configuring a video device. Referring to the ISP code on Laurent's media-0004-omap3isp branch, the video device is now split up into several devices... suppose you have a sensor delivering raw bayer data to the CCDC. I could get this raw data from the
/dev/video2device (named "OMAP3 ISP CCDC output") or I could get YUV data from the previewer or resizer. But I would no longer have a single device where I couldENUM_FMTand see that I could get either. Correct?
That's correct. With the OMAP3 ISP driver the video device nodes (/dev/video*) are used for video streaming but not for device configuration.
Quoted 4 lines
Having settled on a particular video device, (how) do regular controls (ie. VIDIOC_[S|G]_CTRL) work? I don't see any support for them in
ispvideo.c. Is it just yet to be implemented? Or is it expected that the application will access the subdevs individually?
Applications should access the controls on the subdev device nodes directly. We might expose some controls on the video device nodes in the future as well, but there's no such plan right now.
Quoted 3 lines
Basically the same Q for CROPCAP:
isp_video_cropcappasses it on to the last link in the chain, but none of the subdevs in the ISP currently have a cropcap function implemented (yet). Does this still need to be written?
Correct as well, cropcap isn't implemented yet. It's still unclear how exactly it will be implemented in the future.
Signature · 3 lines
Regards, Laurent Pinchart
Hi Michael,
Quoted 4 lines · Michael Jones
Having settled on a particular video device, (how) do regular controls (ie. VIDIOC_[S|G]_CTRL) work? I don't see any support for them in
ispvideo.c. Is it just yet to be implemented? Or is it expected that the application will access the subdevs individually?
The applications will access the subdevs independently. I'd expect that regular applications won't be interested in things like V4L2_CID_EXPOSURE (to manually set exposure value) since they'd more likely want automatic exposure.
These interfaces (subdevs) can be used by specialised applications and libraries, most likely a general purpose application would not access them directly. For example, on N900 the automatic exposure algorithm is a user space beast, so that functionality cannot be implemented in kernel level at all.
I'd expect general purpose applications to be using libv4l which will know how to handle the hardware, in future.
Quoted 4 lines
Basically the same Q for CROPCAP:
isp_video_cropcappasses it on to the last link in the chain, but none of the subdevs in the ISP currently have a cropcap function implemented (yet). Does this still need to be written?
Setting and getting crop is supported but CROPCAP ioctl isn't actually even defined for subdevs. I don't think an ioctl similar to CROPCAP even makes sense since crop is so much more simple for subdevs.
Every time I need to deal with CROPCAP I'll first have to go to read the specs. ;-)
If there is hardware which has somehow limited crop capability then there might be a need for an ioctl to query the minimum possible size after crop. At least the OMAP 3 ISP can crop as much as you want. That shouldn't be a problem from hardware perspective as fas as I understand.
Cheers,
Signature · 2 lines
Sakari Ailus [email protected]