<refentry id="vidioc-g-crop">
  <refmeta>
    <refentrytitle>ioctl VIDIOC_G_CROP, VIDIOC_S_CROP</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>VIDIOC_G_CROP</refname>
    <refname>VIDIOC_S_CROP</refname>
    <refpurpose>Get or set the current cropping rectangle</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_crop *<parameter>argp</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
    <funcsynopsis>
      <funcprototype>
	<funcdef>int <function>ioctl</function></funcdef>
	<paramdef>int <parameter>fd</parameter></paramdef>
	<paramdef>int <parameter>request</parameter></paramdef>
	<paramdef>const struct v4l2_crop *<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_CROP, VIDIOC_S_CROP</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>argp</parameter></term>
	<listitem>
	  <para></para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Description</title>

    <para>To query the cropping rectangle size and position
applications set the <structfield>type</structfield> field of a
<structname>v4l2_crop</structname> structure to the respective buffer
(stream) type and call the <constant>VIDIOC_G_CROP</constant> ioctl
with a pointer to this structure. The driver fills the rest of the
structure or returns the &EINVAL; if cropping is not supported.</para>

    <para>To change the cropping rectangle applications initialize the
<structfield>type</structfield> and &v4l2-rect; substructure named
<structfield>c</structfield> of a v4l2_crop structure and call the
<constant>VIDIOC_S_CROP</constant> ioctl with a pointer to this
structure.</para>

    <para>The driver first adjusts the requested dimensions against
hardware limits, &ie; the bounds given by the capture/output window,
and it rounds to the closest possible values of horizontal and
vertical offset, width and height. In particular the driver must round
the vertical offset of the cropping rectangle to frame lines modulo
two, such that the field order cannot be confused.</para>

    <para>Second the driver adjusts the image size (the opposite
rectangle of the scaling process, source or target depending on the
data direction) to the closest size possible while maintaining the
current horizontal and vertical scaling factor.</para>

    <para>Finally the driver programs the hardware with the actual
cropping and image parameters. <constant>VIDIOC_S_CROP</constant> is a
write-only ioctl, it does not return the actual parameters. To query
them applications must call <constant>VIDIOC_G_CROP</constant> and
&VIDIOC-G-FMT;. When the parameters are unsuitable the application may
modify the cropping or image parameters and repeat the cycle until
satisfactory parameters have been negotiated.</para>

    <para>When cropping is not supported then no parameters are
changed and <constant>VIDIOC_S_CROP</constant> returns the
&EINVAL;.</para>

    <table pgwide="1" frame="none" id="v4l2-crop">
      <title>struct <structname>v4l2_crop</structname></title>
      <tgroup cols="3">
	&cs-str;
	<tbody valign="top">
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>type</structfield></entry>
	    <entry>Type of the data stream, set by the application.
Only these types are valid here: <constant>V4L2_BUF_TYPE_VIDEO_CAPTURE</constant>,
<constant>V4L2_BUF_TYPE_VIDEO_OUTPUT</constant> and
<constant>V4L2_BUF_TYPE_VIDEO_OVERLAY</constant>. See <xref linkend="v4l2-buf-type" />.</entry>
	  </row>
	  <row>
	    <entry>&v4l2-rect;</entry>
	    <entry><structfield>c</structfield></entry>
	    <entry>Cropping rectangle. The same co-ordinate system as
for &v4l2-cropcap; <structfield>bounds</structfield> is used.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>
  </refsect1>

  <refsect1>
    &return-value;
  </refsect1>
</refentry>
