35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
 | |
| .. c:namespace:: V4L
 | |
| 
 | |
| .. _streaming-par:
 | |
| 
 | |
| ********************
 | |
| Streaming Parameters
 | |
| ********************
 | |
| 
 | |
| Streaming parameters are intended to optimize the video capture process
 | |
| as well as I/O. Presently applications can request a high quality
 | |
| capture mode with the :ref:`VIDIOC_S_PARM <VIDIOC_G_PARM>` ioctl.
 | |
| 
 | |
| The current video standard determines a nominal number of frames per
 | |
| second. If less than this number of frames is to be captured or output,
 | |
| applications can request frame skipping or duplicating on the driver
 | |
| side. This is especially useful when using the
 | |
| :c:func:`read()` or :c:func:`write()`, which are
 | |
| not augmented by timestamps or sequence counters, and to avoid
 | |
| unnecessary data copying.
 | |
| 
 | |
| Finally these ioctls can be used to determine the number of buffers used
 | |
| internally by a driver in read/write mode. For implications see the
 | |
| section discussing the :c:func:`read()` function.
 | |
| 
 | |
| To get and set the streaming parameters applications call the
 | |
| :ref:`VIDIOC_G_PARM <VIDIOC_G_PARM>` and
 | |
| :ref:`VIDIOC_S_PARM <VIDIOC_G_PARM>` ioctl, respectively. They take
 | |
| a pointer to a struct :c:type:`v4l2_streamparm`, which
 | |
| contains a union holding separate parameters for input and output
 | |
| devices.
 | |
| 
 | |
| These ioctls are optional, drivers need not implement them. If so, they
 | |
| return the ``EINVAL`` error code.
 |