mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
2.4 KiB
105 lines
2.4 KiB
.. 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.
|
|
|