<refentry id="vidioc-subdev-g-frame-interval">
  <refmeta>
    <refentrytitle>ioctl VIDIOC_SUBDEV_G_FRAME_INTERVAL, VIDIOC_SUBDEV_S_FRAME_INTERVAL</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>VIDIOC_SUBDEV_G_FRAME_INTERVAL</refname>
    <refname>VIDIOC_SUBDEV_S_FRAME_INTERVAL</refname>
    <refpurpose>Get or set the frame interval on a subdev pad</refpurpose>
  </refnamediv>

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

  <refsect1>
    <title>Description</title>

    <note>
      <title>Experimental</title>
      <para>This is an <link linkend="experimental">experimental</link>
      interface and may change in the future.</para>
    </note>

    <para>These ioctls are used to get and set the frame interval at specific
    subdev pads in the image pipeline. The frame interval only makes sense for
    sub-devices that can control the frame period on their own. This includes,
    for instance, image sensors and TV tuners. Sub-devices that don't support
    frame intervals must not implement these ioctls.</para>

    <para>To retrieve the current frame interval applications set the
    <structfield>pad</structfield> field of a &v4l2-subdev-frame-interval; to
    the desired pad number as reported by the media controller API. When they
    call the <constant>VIDIOC_SUBDEV_G_FRAME_INTERVAL</constant> ioctl with a
    pointer to this structure the driver fills the members of the
    <structfield>interval</structfield> field.</para>

    <para>To change the current frame interval applications set both the
    <structfield>pad</structfield> field and all members of the
    <structfield>interval</structfield> field. When they call the
    <constant>VIDIOC_SUBDEV_S_FRAME_INTERVAL</constant> ioctl with a pointer to
    this structure the driver verifies the requested interval, adjusts it based
    on the hardware capabilities and configures the device. Upon return the
    &v4l2-subdev-frame-interval; contains the current frame interval as would be
    returned by a <constant>VIDIOC_SUBDEV_G_FRAME_INTERVAL</constant> call.
    </para>

    <para>Drivers must not return an error solely because the requested interval
    doesn't match the device capabilities. They must instead modify the interval
    to match what the hardware can provide. The modified interval should be as
    close as possible to the original request.</para>

    <para>Sub-devices that support the frame interval ioctls should implement
    them on a single pad only. Their behaviour when supported on multiple pads
    of the same sub-device is not defined.</para>

    <table pgwide="1" frame="none" id="v4l2-subdev-frame-interval">
      <title>struct <structname>v4l2_subdev_frame_interval</structname></title>
      <tgroup cols="3">
        &cs-str;
	<tbody valign="top">
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>pad</structfield></entry>
	    <entry>Pad number as reported by the media controller API.</entry>
	  </row>
	  <row>
	    <entry>&v4l2-fract;</entry>
	    <entry><structfield>interval</structfield></entry>
	    <entry>Period, in seconds, between consecutive video frames.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>reserved</structfield>[9]</entry>
	    <entry>Reserved for future extensions. Applications and drivers must
	    set the array to zero.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>
  </refsect1>

  <refsect1>
    &return-value;

    <variablelist>
      <varlistentry>
	<term><errorcode>EBUSY</errorcode></term>
	<listitem>
	  <para>The frame interval can't be changed because the pad is currently
	  busy. This can be caused, for instance, by an active video stream on
	  the pad. The ioctl must not be retried without performing another
	  action to fix the problem first. Only returned by
	  <constant>VIDIOC_SUBDEV_S_FRAME_INTERVAL</constant></para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><errorcode>EINVAL</errorcode></term>
	<listitem>
	  <para>The &v4l2-subdev-frame-interval; <structfield>pad</structfield>
	  references a non-existing pad, or the pad doesn't support frame
	  intervals.</para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
</refentry>
