Gerd Knorr wrote: >The major changes we are thinking about are: > > * open() handling. > > The recent changes in videodev.c provide a sane way for drivers to > support multiple opens. This allows to take a completely different > approach for using the different functions of a video card: Instead > of having multiple devices (video, vbi, ...) there is only one which > can be opened multiple times and switched to different modes. > > Are you still planning to support non-capturing opens explicitly? E.g., the app clears the V4L2_CAP_VIDEO_CAPTURE flag via some ioctl()?
Right now it's easy to write a driver that can support unlimited non-capturing opens, but only one capturing open at a time. All you need is "if (flags | O_NONCAP) return -EINVAL;" at the appropriate points and a small check in open(). With the new API, it looks like the driver will need checks all over the place in ioctl() read(), etc... to make sure that two apps don't try to capture at the same time. In other words, you have to do mutual exclusion at capture time based on the app's actions, instead of at open() time based on the app's stated intention. IMHO if a driver doesn't support multiple simultaneous captures it should let the app know at open() time by returning -EBUSY. -- Mark McClelland [EMAIL PROTECTED] _______________________________________________ Video4linux-list mailing list [EMAIL PROTECTED] https://listman.redhat.com/mailman/listinfo/video4linux-list
