2009-09-14 09:16:04 +08:00
|
|
|
<refentry id="vidioc-querystd">
|
|
|
|
<refmeta>
|
|
|
|
<refentrytitle>ioctl VIDIOC_QUERYSTD</refentrytitle>
|
|
|
|
&manvol;
|
|
|
|
</refmeta>
|
|
|
|
|
|
|
|
<refnamediv>
|
|
|
|
<refname>VIDIOC_QUERYSTD</refname>
|
|
|
|
<refpurpose>Sense the video standard received by the current
|
|
|
|
input</refpurpose>
|
|
|
|
</refnamediv>
|
|
|
|
|
|
|
|
<refsynopsisdiv>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>int <function>ioctl</function></funcdef>
|
|
|
|
<paramdef>int <parameter>fd</parameter></paramdef>
|
|
|
|
<paramdef>int <parameter>request</parameter></paramdef>
|
|
|
|
<paramdef>v4l2_std_id *<parameter>argp</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
</refsynopsisdiv>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>Arguments</title>
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
|
|
<term><parameter>fd</parameter></term>
|
|
|
|
<listitem>
|
|
|
|
<para>&fd;</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
|
|
<term><parameter>request</parameter></term>
|
|
|
|
<listitem>
|
|
|
|
<para>VIDIOC_QUERYSTD</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
|
|
<term><parameter>argp</parameter></term>
|
|
|
|
<listitem>
|
|
|
|
<para></para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
|
|
<para>The hardware may be able to detect the current video
|
|
|
|
standard automatically. To do so, applications call <constant>
|
|
|
|
VIDIOC_QUERYSTD</constant> with a pointer to a &v4l2-std-id; type. The
|
|
|
|
driver stores here a set of candidates, this can be a single flag or a
|
|
|
|
set of supported standards if for example the hardware can only
|
2013-05-29 21:19:05 +08:00
|
|
|
distinguish between 50 and 60 Hz systems. If no signal was detected,
|
|
|
|
then the driver will return V4L2_STD_UNKNOWN. When detection is not
|
2009-09-14 09:16:04 +08:00
|
|
|
possible or fails, the set must contain all standards supported by the
|
|
|
|
current video input or output.</para>
|
|
|
|
|
2015-12-24 21:18:10 +08:00
|
|
|
<para>Please note that drivers shall <emphasis>not</emphasis> switch the video standard
|
|
|
|
automatically if a new video standard is detected. Instead, drivers should send the
|
|
|
|
<constant>V4L2_EVENT_SOURCE_CHANGE</constant> event (if they support this) and expect
|
|
|
|
that userspace will take action by calling <constant>VIDIOC_QUERYSTD</constant>.
|
|
|
|
The reason is that a new video standard can mean different buffer sizes as well, and you
|
|
|
|
cannot change buffer sizes on the fly. In general, applications that receive the
|
|
|
|
Source Change event will have to call <constant>VIDIOC_QUERYSTD</constant>,
|
|
|
|
and if the detected video standard is valid they will have to stop streaming, set the new
|
|
|
|
standard, allocate new buffers and start streaming again.</para>
|
|
|
|
|
2009-09-14 09:16:04 +08:00
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
&return-value;
|
2012-09-14 17:44:20 +08:00
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
|
|
<term><errorcode>ENODATA</errorcode></term>
|
|
|
|
<listitem>
|
|
|
|
<para>Standard video timings are not supported for this input or output.</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
2009-09-14 09:16:04 +08:00
|
|
|
</refsect1>
|
|
|
|
</refentry>
|