| .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| .. c:namespace:: DTV.video |
| |
| .. _VIDEO_GET_EVENT: |
| |
| =============== |
| VIDEO_GET_EVENT |
| =============== |
| |
| Name |
| ---- |
| |
| VIDEO_GET_EVENT |
| |
| .. attention:: This ioctl is deprecated. |
| |
| Synopsis |
| -------- |
| |
| .. c:macro:: VIDEO_GET_EVENT |
| |
| ``int ioctl(fd, VIDEO_GET_EVENT, struct video_event *ev)`` |
| |
| 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 |
| long 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. |