Since 2017, there is an space reserved for userspace API,
created by changeset 1d596dee38 ("docs: Create a user-space API guide").
As the media subsystem was one of the first subsystems to use
Sphinx, until this patch, we were keeping things on a separate
place.
Let's just use the new location, as having all uAPI altogether
will likely make things easier for developers.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
		
	
			
		
			
				
	
	
		
			115 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. Permission is granted to copy, distribute and/or modify this
 | |
| .. document under the terms of the GNU Free Documentation License,
 | |
| .. Version 1.1 or any later version published by the Free Software
 | |
| .. Foundation, with no Invariant Sections, no Front-Cover Texts
 | |
| .. and no Back-Cover Texts. A copy of the license is included at
 | |
| .. Documentation/userspace-api/media/fdl-appendix.rst.
 | |
| ..
 | |
| .. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
 | |
| 
 | |
| .. _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
 | |
| 		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.
 |