<refentry id="vidioc-g-output">
  <refmeta>
    <refentrytitle>ioctl VIDIOC_G_OUTPUT, VIDIOC_S_OUTPUT</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>VIDIOC_G_OUTPUT</refname>
    <refname>VIDIOC_S_OUTPUT</refname>
    <refpurpose>Query or select the current video output</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <funcsynopsis>
      <funcprototype>
	<funcdef>int <function>ioctl</function></funcdef>
	<paramdef>int <parameter>fd</parameter></paramdef>
	<paramdef>int <parameter>request</parameter></paramdef>
	<paramdef>int *<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_G_OUTPUT, VIDIOC_S_OUTPUT</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>argp</parameter></term>
	<listitem>
	  <para></para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Description</title>

    <para>To query the current video output applications call the
<constant>VIDIOC_G_OUTPUT</constant> ioctl with a pointer to an integer
where the driver stores the number of the output, as in the
&v4l2-output; <structfield>index</structfield> field. This ioctl
will fail only when there are no video outputs, returning the
&EINVAL;.</para>

    <para>To select a video output applications store the number of the
desired output in an integer and call the
<constant>VIDIOC_S_OUTPUT</constant> ioctl with a pointer to this integer.
Side effects are possible. For example outputs may support different
video standards, so the driver may implicitly switch the current
standard.
standard. Because of these possible side effects applications
must select an output before querying or negotiating any other parameters.</para>

    <para>Information about video outputs is available using the
&VIDIOC-ENUMOUTPUT; ioctl.</para>
  </refsect1>

  <refsect1>
    &return-value;

    <variablelist>
      <varlistentry>
	<term><errorcode>EINVAL</errorcode></term>
	<listitem>
	  <para>The number of the video output is out of bounds, or
there are no video outputs at all.</para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
</refentry>
