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