106 lines
2.4 KiB
ReStructuredText
106 lines
2.4 KiB
ReStructuredText
.. 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.
|