[PATCH v4 14/36] [media] v4l2-mc: add a function to inherit controls from a pipeline
From: Hans Verkuil <hidden>
Date: 2017-03-20 11:17:30
Also in:
linux-devicetree, linux-media, lkml
On 03/17/2017 12:55 PM, Sakari Ailus wrote:
Hi Russell, On 03/17/17 13:42, Russell King - ARM Linux wrote:quoted
On Tue, Mar 14, 2017 at 08:55:36AM +0100, Hans Verkuil wrote:quoted
We're all very driver-development-driven, and userspace gets very little attention in general. So before just throwing in the towel we should take a good look at the reasons why there has been little or no development: is it because of fundamental design defects, or because nobody paid attention to it? I strongly suspect it is the latter. In addition, I suspect end-users of these complex devices don't really care about a plugin: they want full control and won't typically use generic applications. If they would need support for that, we'd have seen much more interest. The main reason for having a plugin is to simplify testing and if this is going to be used on cheap hobbyist devkits.I think you're looking at it with a programmers hat on, not a users hat. Are you really telling me that requiring users to 'su' to root, and then use media-ctl to manually configure the capture device is what most users "want" ?It depends on who the user is. I don't think anyone is suggesting a regular end user is the user of all these APIs: it is either an application tailored for that given device, a skilled user with his test scripts or as suggested previously, a libv4l plugin knowing the device or a generic library geared towards providing best effort service. The last one of this list does not exist yet and the second last item requires help. Typically this class of devices is simply not up to provide the level of service you're requesting without additional user space control library which is responsible for automatic white balance, exposure and focus. Making use of the full potential of the hardware requires using a more expressive interface. That's what the kernel interface must provide. If we decide to limit ourselves to a small sub-set of that potential on the level of the kernel interface, we have made a wrong decision. It's as simple as that. This is why the functionality (and which requires taking a lot of policy decisions) belongs to the user space. We cannot have multiple drivers providing multiple kernel interfaces for the same hardware.
Right. With my Cisco hat on I can tell you that Cisco would want full low-level control. If the driver would limit us we would not be able to use it. Same with anyone who wants to put Android CameraHAL on top of a V4L2 driver: they would need full control. Some simplified interface would be unacceptable.
That said, I'm not trying to provide an excuse for not having libraries available to help the user to configure and control the device more or less automatically even in terms of best effort. It's something that does require attention, a lot more of it than it has received in recent few years.
Right. Regards, Hans