On Wednesday 11 November 2009 22:31:00 Sakari Ailus wrote: > Hi, > > > Here's the version 2.3 of the video events RFC which hopefully will be > the final one. It's based on Laurent Pinchart's original RFC and > versions 2, 2.1 and 2.2 which I wrote. The old RFC is available here: > > <URL:http://www.spinics.net/lists/linux-media/msg11254.html> > > Changes to version 2.2 > -------------------- > > - The timestamp has changed from struct timeval (do_gettimeofday()) to > struct timespec (clock_getres(CLOCK_MONOTONIC)). > > Interface description > --------------------- > > Event type is either a standard event or private event. Standard events > will be defined in videodev2.h. Private event types begin from > V4L2_EVENT_PRIVATE_START. The four topmost bits of the type should not > be used for the moment. > > #define V4L2_EVENT_ALL 0 > #define V4L2_EVENT_PRIVATE_START 0x08000000 > > VIDIOC_DQEVENT is used to get events. count is number of pending events > after the current one. sequence is the event type sequence number and > the data is specific to event type. > > The user will get the information that there's an event through > exception file descriptors by using select(2). When an event is > available the poll handler sets POLLPRI which wakes up select. -EINVAL > will be returned if there are no pending events. > > VIDIOC_SUBSCRIBE_EVENT and VIDIOC_UNSUBSCRIBE_EVENT are used to > subscribe and unsubscribe from events. The argument is struct > v4l2_event_subscription which now only contains the type field for the > event type. Every event can be subscribed or unsubscribed by one ioctl > by using special type V4L2_EVENT_ALL. > > > struct v4l2_event { > __u32 count; > __u32 type; > __u32 sequence; > struct timespec timestamp; > __u32 reserved[8]; > __u8 data[64]; > }; > > struct v4l2_event_subscription { > __u32 type; > __u32 reserved[8]; > }; > > #define VIDIOC_DQEVENT _IOR('V', 84, struct v4l2_event) > #define VIDIOC_SUBSCRIBE_EVENT _IOW('V', 85, struct > v4l2_event_subscription) > #define VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 86, struct > v4l2_event_subscription) > > > The size of the event queue is decided by the driver. Which events will > be discarded on queue overflow depends on the implementation. > > > Questions > --------- > > None on my side. > > Comments and questions are still very very welcome. > Hi Sakari, I'm happy with this! Thanks for all your work on this RFC! Guru, do you think you can start to work on the implementation of this API? Regards, Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- 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