Skip to contentSkip to conversation

controls, subdevs, and media framework

DISCUSSION Michael Jones 3 participants 3 messages Oct 26, 2010 – Oct 27, 2010 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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/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?

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_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?

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
#2 lore raw
In reply to Michael Jones

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_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?

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]