 1b88db2f2b
			
		
	
	
	1b88db2f2b
	
	
	
		
			
			Field 'rect' is really named 'r'. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
		
			
				
	
	
		
			165 lines
		
	
	
	
		
			5 KiB
			
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
	
		
			5 KiB
			
		
	
	
	
		
			XML
		
	
	
	
	
	
| <refentry id="vidioc-subdev-g-selection">
 | |
|   <refmeta>
 | |
|     <refentrytitle>ioctl VIDIOC_SUBDEV_G_SELECTION, VIDIOC_SUBDEV_S_SELECTION</refentrytitle>
 | |
|     &manvol;
 | |
|   </refmeta>
 | |
| 
 | |
|   <refnamediv>
 | |
|     <refname>VIDIOC_SUBDEV_G_SELECTION</refname>
 | |
|     <refname>VIDIOC_SUBDEV_S_SELECTION</refname>
 | |
|     <refpurpose>Get or set selection rectangles 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_selection *<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_SELECTION, VIDIOC_SUBDEV_S_SELECTION</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>The selections are used to configure various image
 | |
|     processing functionality performed by the subdevs which affect the
 | |
|     image size. This currently includes cropping, scaling and
 | |
|     composition.</para>
 | |
| 
 | |
|     <para>The selection API replaces <link
 | |
|     linkend="vidioc-subdev-g-crop">the old subdev crop API</link>. All
 | |
|     the function of the crop API, and more, are supported by the
 | |
|     selections API.</para>
 | |
| 
 | |
|     <para>See <xref linkend="subdev"></xref> for
 | |
|     more information on how each selection target affects the image
 | |
|     processing pipeline inside the subdevice.</para>
 | |
| 
 | |
|     <refsect2>
 | |
|       <title>Types of selection targets</title>
 | |
| 
 | |
|       <para>There are two types of selection targets: actual and bounds. The
 | |
|       actual targets are the targets which configure the hardware. The BOUNDS
 | |
|       target will return a rectangle that contain all possible actual
 | |
|       rectangles.</para>
 | |
|     </refsect2>
 | |
| 
 | |
|     <refsect2>
 | |
|       <title>Discovering supported features</title>
 | |
| 
 | |
|       <para>To discover which targets are supported, the user can
 | |
|       perform <constant>VIDIOC_SUBDEV_G_SELECTION</constant> on them.
 | |
|       Any unsupported target will return
 | |
|       <constant>EINVAL</constant>.</para>
 | |
| 
 | |
|     <para>Selection targets and flags are documented in <xref
 | |
|     linkend="v4l2-selections-common"/>.</para>
 | |
| 
 | |
|     <table pgwide="1" frame="none" id="v4l2-subdev-selection">
 | |
|       <title>struct <structname>v4l2_subdev_selection</structname></title>
 | |
|       <tgroup cols="3">
 | |
|         &cs-str;
 | |
| 	<tbody valign="top">
 | |
| 	  <row>
 | |
| 	    <entry>__u32</entry>
 | |
| 	    <entry><structfield>which</structfield></entry>
 | |
| 	    <entry>Active or try selection, from
 | |
| 	    &v4l2-subdev-format-whence;.</entry>
 | |
| 	  </row>
 | |
| 	  <row>
 | |
| 	    <entry>__u32</entry>
 | |
| 	    <entry><structfield>pad</structfield></entry>
 | |
| 	    <entry>Pad number as reported by the media framework.</entry>
 | |
| 	  </row>
 | |
| 	  <row>
 | |
| 	    <entry>__u32</entry>
 | |
| 	    <entry><structfield>target</structfield></entry>
 | |
| 	    <entry>Target selection rectangle. See
 | |
| 	    <xref linkend="v4l2-selections-common" />.</entry>
 | |
| 	  </row>
 | |
| 	  <row>
 | |
| 	    <entry>__u32</entry>
 | |
| 	    <entry><structfield>flags</structfield></entry>
 | |
| 	    <entry>Flags. See
 | |
| 	    <xref linkend="v4l2-selection-flags" />.</entry>
 | |
| 	  </row>
 | |
| 	  <row>
 | |
| 	    <entry>&v4l2-rect;</entry>
 | |
| 	    <entry><structfield>r</structfield></entry>
 | |
| 	    <entry>Selection rectangle, in pixels.</entry>
 | |
| 	  </row>
 | |
| 	  <row>
 | |
| 	    <entry>__u32</entry>
 | |
| 	    <entry><structfield>reserved</structfield>[8]</entry>
 | |
| 	    <entry>Reserved for future extensions. Applications and drivers must
 | |
| 	    set the array to zero.</entry>
 | |
| 	  </row>
 | |
| 	</tbody>
 | |
|       </tgroup>
 | |
|     </table>
 | |
|     </refsect2>
 | |
| 
 | |
|   </refsect1>
 | |
| 
 | |
|   <refsect1>
 | |
|     &return-value;
 | |
| 
 | |
|     <variablelist>
 | |
|       <varlistentry>
 | |
| 	<term><errorcode>EBUSY</errorcode></term>
 | |
| 	<listitem>
 | |
| 	  <para>The selection rectangle 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_SELECTION</constant></para>
 | |
| 	</listitem>
 | |
|       </varlistentry>
 | |
|       <varlistentry>
 | |
| 	<term><errorcode>EINVAL</errorcode></term>
 | |
| 	<listitem>
 | |
| 	  <para>The &v4l2-subdev-selection;
 | |
| 	  <structfield>pad</structfield> references a non-existing
 | |
| 	  pad, the <structfield>which</structfield> field references a
 | |
| 	  non-existing format, or the selection target is not
 | |
| 	  supported on the given subdev pad.</para>
 | |
| 	</listitem>
 | |
|       </varlistentry>
 | |
|     </variablelist>
 | |
|   </refsect1>
 | |
| </refentry>
 |