On Wed, Jun 6, 2018 at 7:51 PM Pavel Machek <pavel@xxxxxx> wrote: > > HI! > > > > > Thanks for coming up with this proposal. Please see my comments below. > > > > > > > > > Ok, can I get any comments on this one? > > > > > v4l2_open_complex("/file/with/descriptor", 0) can be used to open > > > > > whole pipeline at once, and work if it as if it was one device. > > > > > > > > I'm not convinced if we should really be piggy backing on libv4l, but > > > > it's just a matter of where we put the code added by your patch, so > > > > let's put that aside. > > > > > > There was some talk about this before, and libv4l2 is what we came > > > with. Only libv4l2 is in position to propagate controls to right > > > devices. > > > > > > > Who would be calling this function? > > > > > > > > The scenario that I could think of is: > > > > - legacy app would call open(/dev/video?), which would be handled by > > > > libv4l open hook (v4l2_open()?), > > > > > > I don't think that kind of legacy apps is in use any more. I'd prefer > > > not to deal with them. > > > > In another thread ("[ANN v2] Complex Camera Workshop - Tokyo - Jun, > > 19"), Mauro has mentioned a number of those: > > > > "open source ones (Camorama, Cheese, Xawtv, Firefox, Chromium, ...) and closed > > source ones (Skype, Chrome, ...)" > > Thanks for thread pointer... I may be able to get in using hangouts. > > Anyway, there's big difference between open("/dev/video0") and > v4l2_open("/dev/video0"). I don't care about the first one, but yes we > should be able to support the second one eventually. > > And I don't think Mauro says apps like Camorama are of open() kind. I don't think there is much difference between open() and v4l2_open(), since the former can be changed to the latter using LD_PRELOAD. If we simply add v4l2_open_complex() to libv4l, we would have to get developers of the applications (regardless of whether they use open() or v4l2_open()) to also support v4l2_open_complex(). For testing purposes of kernel developers it would work indeed, but I wonder if it goes anywhere beyond that. If all we need is some code to be able to test kernel camera drivers, I don't think there is any big problem in adding v4l2_open_complex() to libv4l. However, we must either ensure that either: a) it's not going to be widely used OR b) it is designed well enough to cover the complex cases I mentioned and which are likely to represent most of the hardware in the wild. Best regards, Tomasz