<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. It is good practice to 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>
