~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/media/v4l/vidioc-subdev-g-selection.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
  2 .. c:namespace:: V4L
  3 
  4 .. _VIDIOC_SUBDEV_G_SELECTION:
  5 
  6 **********************************************************
  7 ioctl VIDIOC_SUBDEV_G_SELECTION, VIDIOC_SUBDEV_S_SELECTION
  8 **********************************************************
  9 
 10 Name
 11 ====
 12 
 13 VIDIOC_SUBDEV_G_SELECTION - VIDIOC_SUBDEV_S_SELECTION - Get or set selection rectangles on a subdev pad
 14 
 15 Synopsis
 16 ========
 17 
 18 .. c:macro:: VIDIOC_SUBDEV_G_SELECTION
 19 
 20 ``int ioctl(int fd, VIDIOC_SUBDEV_G_SELECTION, struct v4l2_subdev_selection *argp)``
 21 
 22 .. c:macro:: VIDIOC_SUBDEV_S_SELECTION
 23 
 24 ``int ioctl(int fd, VIDIOC_SUBDEV_S_SELECTION, struct v4l2_subdev_selection *argp)``
 25 
 26 Arguments
 27 =========
 28 
 29 ``fd``
 30     File descriptor returned by :c:func:`open()`.
 31 
 32 ``argp``
 33     Pointer to struct :c:type:`v4l2_subdev_selection`.
 34 
 35 Description
 36 ===========
 37 
 38 The selections are used to configure various image processing
 39 functionality performed by the subdevs which affect the image size. This
 40 currently includes cropping, scaling and composition.
 41 
 42 The selection API replaces
 43 :ref:`the old subdev crop API <VIDIOC_SUBDEV_G_CROP>`. All the
 44 function of the crop API, and more, are supported by the selections API.
 45 
 46 See :ref:`subdev` for more information on how each selection target
 47 affects the image processing pipeline inside the subdevice.
 48 
 49 If the subdev device node has been registered in read-only mode, calls to
 50 ``VIDIOC_SUBDEV_S_SELECTION`` are only valid if the ``which`` field is set to
 51 ``V4L2_SUBDEV_FORMAT_TRY``, otherwise an error is returned and the errno
 52 variable is set to ``-EPERM``.
 53 
 54 Types of selection targets
 55 --------------------------
 56 
 57 There are two types of selection targets: actual and bounds. The actual
 58 targets are the targets which configure the hardware. The BOUNDS target
 59 will return a rectangle that contain all possible actual rectangles.
 60 
 61 Discovering supported features
 62 ------------------------------
 63 
 64 To discover which targets are supported, the user can perform
 65 ``VIDIOC_SUBDEV_G_SELECTION`` on them. Any unsupported target will
 66 return ``EINVAL``.
 67 
 68 Selection targets and flags are documented in
 69 :ref:`v4l2-selections-common`.
 70 
 71 .. c:type:: v4l2_subdev_selection
 72 
 73 .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.5cm}|
 74 
 75 .. flat-table:: struct v4l2_subdev_selection
 76     :header-rows:  0
 77     :stub-columns: 0
 78     :widths:       1 1 2
 79 
 80     * - __u32
 81       - ``which``
 82       - Active or try selection, from enum
 83         :ref:`v4l2_subdev_format_whence <v4l2-subdev-format-whence>`.
 84     * - __u32
 85       - ``pad``
 86       - Pad number as reported by the media framework.
 87     * - __u32
 88       - ``target``
 89       - Target selection rectangle. See :ref:`v4l2-selections-common`.
 90     * - __u32
 91       - ``flags``
 92       - Flags. See :ref:`v4l2-selection-flags`.
 93     * - struct :c:type:`v4l2_rect`
 94       - ``r``
 95       - Selection rectangle, in pixels.
 96     * - __u32
 97       - ``stream``
 98       - Stream identifier.
 99     * - __u32
100       - ``reserved``\ [7]
101       - Reserved for future extensions. Applications and drivers must set
102         the array to zero.
103 
104 Return Value
105 ============
106 
107 On success 0 is returned, on error -1 and the ``errno`` variable is set
108 appropriately. The generic error codes are described at the
109 :ref:`Generic Error Codes <gen-errors>` chapter.
110 
111 EBUSY
112     The selection rectangle can't be changed because the pad is
113     currently busy. This can be caused, for instance, by an active video
114     stream on the pad. The ioctl must not be retried without performing
115     another action to fix the problem first. Only returned by
116     ``VIDIOC_SUBDEV_S_SELECTION``
117 
118 EINVAL
119     The struct :c:type:`v4l2_subdev_selection` ``pad`` references a
120     non-existing pad, the ``which`` field has an unsupported value, or the
121     selection target is not supported on the given subdev pad.
122 
123 EPERM
124     The ``VIDIOC_SUBDEV_S_SELECTION`` ioctl has been called on a read-only
125     subdevice and the ``which`` field is set to ``V4L2_SUBDEV_FORMAT_ACTIVE``.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php