| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- .. -*- coding: utf-8; mode: rst -*-
- .. _VIDEO_GET_EVENT:
- ===============
- VIDEO_GET_EVENT
- ===============
- Name
- ----
- VIDEO_GET_EVENT
- .. attention:: This ioctl is deprecated.
- Synopsis
- --------
- .. c:function:: int ioctl(fd, VIDEO_GET_EVENT, struct video_event *ev)
- :name: VIDEO_GET_EVENT
- Arguments
- ---------
- .. flat-table::
- :header-rows: 0
- :stub-columns: 0
- - .. row 1
- - int fd
- - File descriptor returned by a previous call to open().
- - .. row 2
- - int request
- - Equals VIDEO_GET_EVENT for this command.
- - .. row 3
- - struct video_event \*ev
- - Points to the location where the event, if any, is to be stored.
- Description
- -----------
- This ioctl is for Digital TV devices only. To get events from a V4L2 decoder
- use the V4L2 :ref:`VIDIOC_DQEVENT` ioctl instead.
- This ioctl call returns an event of type video_event if available. If
- an event is not available, the behavior depends on whether the device is
- in blocking or non-blocking mode. In the latter case, the call fails
- immediately with errno set to ``EWOULDBLOCK``. In the former case, the call
- blocks until an event becomes available. The standard Linux poll()
- and/or select() system calls can be used with the device file descriptor
- to watch for new events. For select(), the file descriptor should be
- included in the exceptfds argument, and for poll(), POLLPRI should be
- specified as the wake-up condition. Read-only permissions are sufficient
- for this ioctl call.
- .. c:type:: video_event
- .. code-block:: c
- struct video_event {
- __s32 type;
- #define VIDEO_EVENT_SIZE_CHANGED 1
- #define VIDEO_EVENT_FRAME_RATE_CHANGED 2
- #define VIDEO_EVENT_DECODER_STOPPED 3
- #define VIDEO_EVENT_VSYNC 4
- __kernel_time_t timestamp;
- union {
- video_size_t size;
- unsigned int frame_rate; /* in frames per 1000sec */
- unsigned char vsync_field; /* unknown/odd/even/progressive */
- } u;
- };
- Return Value
- ------------
- On success 0 is returned, on error -1 and the ``errno`` variable is set
- appropriately. The generic error codes are described at the
- :ref:`Generic Error Codes <gen-errors>` chapter.
- .. flat-table::
- :header-rows: 0
- :stub-columns: 0
- - .. row 1
- - ``EWOULDBLOCK``
- - There is no event pending, and the device is in non-blocking mode.
- - .. row 2
- - ``EOVERFLOW``
- - Overflow in event queue - one or more events were lost.
|