VIDIOC_DQEVENT — Dequeue event
int fsfuncioctl( | int fd, |
int request, | |
struct v4l2_event
*argp) ; |
Dequeue an event from a video device. No input is required for this ioctl. All the fields of the struct v4l2_event structure are filled by the driver. The file handle will also receive exceptions which the application may get by e.g. using the select system call.
Table A.11. struct v4l2_event
__u32 | type | Type of the event. | |
union | u | ||
struct v4l2_event_vsync | vsync | Event data for event V4L2_EVENT_VSYNC. | |
struct v4l2_event_ctrl | ctrl | Event data for event V4L2_EVENT_CTRL. | |
struct v4l2_event_frame_sync | frame | Event data for event V4L2_EVENT_FRAME_SYNC. | |
__u8 | data [64] | Event data. Defined by the event type. The union should be used to define easily accessible type for events. | |
__u32 | pending | Number of pending events excluding this one. | |
__u32 | sequence | Event sequence number. The sequence number is incremented for every subscribed event that takes place. If sequence numbers are not contiguous it means that events have been lost. | |
struct timespec | timestamp | Event timestamp. | |
u32 | id | The ID associated with the event source. If the event does not have an associated ID (this depends on the event type), then this is 0. | |
__u32 | reserved [8] | Reserved for future extensions. Drivers must set the array to zero. |
Table A.13. struct v4l2_event_ctrl
__u32 | changes | A bitmask that tells what has changed. See Table A.15, “Changes”. | |
__u32 | type | The type of the control. See enum v4l2_ctrl_type. | |
union (anonymous) | |||
__s32 | value | The 32-bit value of the control for 32-bit control types.
This is 0 for string controls since the value of a string
cannot be passed using VIDIOC_DQEVENT . | |
__s64 | value64 | The 64-bit value of the control for 64-bit control types. | |
__u32 | flags | The control flags. See Table A.85, “Control Flags”. | |
__s32 | minimum | The minimum value of the control. See struct v4l2_queryctrl. | |
__s32 | maximum | The maximum value of the control. See struct v4l2_queryctrl. | |
__s32 | step | The step value of the control. See struct v4l2_queryctrl. | |
__s32 | default_value | The default value value of the control. See struct v4l2_queryctrl. |
Table A.14. struct v4l2_event_frame_sync
__u32 | frame_sequence | The sequence number of the frame being received. |
Table A.15. Changes
V4L2_EVENT_CTRL_CH_VALUE | 0x0001 | This control event was triggered because the value of the control changed. Special case: if a button control is pressed, then this event is sent as well, even though there is not explicit value associated with a button control. |
V4L2_EVENT_CTRL_CH_FLAGS | 0x0002 | This control event was triggered because the control flags changed. |
On success 0 is returned, on error -1 and the errno
variable is set appropriately. The generic error codes are described at the Generic Error Codes chapter.