Hi Julien, On Thu, Jul 10, 2014 at 04:19:06PM +0200, Julien BERAUD wrote: > We are developing a driver for our video controller which has the > particularity of being very reconfigurable. > > We have reached a point at which the complexity and variety of the > applications we need to implement forces us to > design an api/library that allows us to configure the > interconnection of the different video processing units(Camera > interfaces, > LCD interfaces, scalers, rotators, demosaicing, dead pixel > correction, etc...) from userland. > > The media controller api has the limitation of not being able to > create links but just browsing and activating/deactivating them. > If we just allowed a user to activate/deactivate links, then we > would have to declare all the possible connections between > the different blocks, which would make it very confusing from a > userland point of view. Moreover, the interconnection constraints > would have to be dealt with very generically, which would make it > very difficult in the kernel too. How many different blocks do you have? Can they be connected in arbitrary ways? If not, what kind of limitations do you have? The Media controller is originally intended for modelling complex devices with hardware data paths between the sub-blocks. The question is: does your device fit into that group, even if could be a little more complex than the devices that are currently supported? > The conclusion we have reached yet is that we have to design an API > that allows us to create v4l2 subdevices that have certain > capabilities(scaling,rotating, demosaicing, etc...) and then to > create links between them from a userland library. Can you create arbitrary devices at will, or do these devices exist on hardware all the time? -- Kind regards, Sakari Ailus e-mail: sakari.ailus@xxxxxx XMPP: sailus@xxxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html