1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2.. c:namespace:: V4L 3 4.. _streaming-par: 5 6******************** 7Streaming Parameters 8******************** 9 10Streaming parameters are intended to optimize the video capture process 11as well as I/O. Presently applications can request a high quality 12capture mode with the :ref:`VIDIOC_S_PARM <VIDIOC_G_PARM>` ioctl. 13 14The current video standard determines a nominal number of frames per 15second. If less than this number of frames is to be captured or output, 16applications can request frame skipping or duplicating on the driver 17side. This is especially useful when using the 18:c:func:`read()` or :c:func:`write()`, which are 19not augmented by timestamps or sequence counters, and to avoid 20unnecessary data copying. 21 22Finally these ioctls can be used to determine the number of buffers used 23internally by a driver in read/write mode. For implications see the 24section discussing the :c:func:`read()` function. 25 26To get and set the streaming parameters applications call the 27:ref:`VIDIOC_G_PARM <VIDIOC_G_PARM>` and 28:ref:`VIDIOC_S_PARM <VIDIOC_G_PARM>` ioctl, respectively. They take 29a pointer to a struct :c:type:`v4l2_streamparm`, which 30contains a union holding separate parameters for input and output 31devices. 32 33These ioctls are optional, drivers need not implement them. If so, they 34return the ``EINVAL`` error code. 35