1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Streaming Parameters</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="LINUX MEDIA INFRASTRUCTURE API"><link rel="up" href="common.html" title="Chapter&#160;1.&#160;Common API Elements"><link rel="prev" href="selection-api.html" title="Experimental API for cropping, composing and scaling"><link rel="next" href="pixfmt.html" title="Chapter&#160;2.&#160;Image Formats"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Streaming Parameters</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="selection-api.html">Prev</a>&#160;</td><th width="60%" align="center">Chapter&#160;1.&#160;Common API Elements</th><td width="20%" align="right">&#160;<a accesskey="n" href="pixfmt.html">Next</a></td></tr></table><hr></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="streaming-par"></a>Streaming Parameters</h2></div></div></div><p>Streaming parameters are intended to optimize the video
2capture process as well as I/O. Presently applications can request a
3high quality capture mode with the <a class="link" href="vidioc-g-parm.html" title="ioctl VIDIOC_G_PARM, VIDIOC_S_PARM"><code class="constant">VIDIOC_S_PARM</code></a> ioctl.</p><p>The current video standard determines a nominal number of
4frames per second. If less than this number of frames is to be
5captured or output, applications can request frame skipping or
6duplicating on the driver side. This is especially useful when using
7the <a class="link" href="func-read.html" title="V4L2 read()"><code class="function">read()</code></a> or <a class="link" href="func-write.html" title="V4L2 write()"><code class="function">write()</code></a>, which are not augmented by timestamps
8or sequence counters, and to avoid unnecessary data copying.</p><p>Finally these ioctls can be used to determine the number of
9buffers used internally by a driver in read/write mode. For
10implications see the section discussing the <a class="link" href="func-read.html" title="V4L2 read()"><code class="function">read()</code></a>
11function.</p><p>To get and set the streaming parameters applications call
12the <a class="link" href="vidioc-g-parm.html" title="ioctl VIDIOC_G_PARM, VIDIOC_S_PARM"><code class="constant">VIDIOC_G_PARM</code></a> and <a class="link" href="vidioc-g-parm.html" title="ioctl VIDIOC_G_PARM, VIDIOC_S_PARM"><code class="constant">VIDIOC_S_PARM</code></a> ioctl, respectively. They take
13a pointer to a struct&#160;<a class="link" href="vidioc-g-parm.html#v4l2-streamparm" title="Table&#160;A.78.&#160;struct v4l2_streamparm">v4l2_streamparm</a>, which contains a union holding
14separate parameters for input and output devices.</p><p>These ioctls are optional, drivers need not implement
15them. If so, they return the <span class="errorcode">EINVAL</span> error code.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="selection-api.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="common.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="pixfmt.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Experimental API for cropping, composing and scaling&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;Chapter&#160;2.&#160;Image Formats</td></tr></table></div></body></html>
16