ioctl VIDIOC_SUBSCRIBE_EVENT, VIDIOC_UNSUBSCRIBE_EVENT
&manvol;

# VIDIOC_SUBSCRIBE_EVENT, VIDIOC_UNSUBSCRIBE_EVENT

Subscribe or unsubscribe event

    	int ioctl
    	int fd
    	int request
    	struct v4l2_event_subscription
    *argp

## Arguments

`fd`

  &fd;

`request`

  VIDIOC_SUBSCRIBE_EVENT, VIDIOC_UNSUBSCRIBE_EVENT

`argp`

## Description

Subscribe or unsubscribe V4L2 event. Subscribed events are dequeued by using the &VIDIOC-DQEVENT; ioctl.

### struct v4l2_event_subscription

&cs-str;
__u32 | type | Type of the event.
__u32 | reserved[7] | Reserved for future extensions. Drivers and applications must set the array to zero.

### Event Types

&cs-def;
`V4L2_EVENT_ALL` | 0 | All events. V4L2_EVENT_ALL is valid only for VIDIOC_UNSUBSCRIBE_EVENT for unsubscribing all events at once.
`V4L2_EVENT_VSYNC` | 1 | This event is triggered on the vertical sync. This event has &v4l2-event-vsync; associated with it.
`V4L2_EVENT_EOS` | 2 | This event is triggered when the end of a stream is reached. This is typically used with MPEG decoders to report to the application when the last of the MPEG stream has been decoded.
`V4L2_EVENT_PRIVATE_START` | 0x08000000 | Base event number for driver-private events.

### struct v4l2_event_vsync

&cs-str;
__u8 | field | The upcoming field. See &v4l2-field;.