Merge branch 'for-linus-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[deliverable/linux.git] / Documentation / media / uapi / v4l / vidioc-cropcap.rst
CommitLineData
5377d91f
MH
1.. -*- coding: utf-8; mode: rst -*-
2
af4a4d0d 3.. _VIDIOC_CROPCAP:
5377d91f
MH
4
5********************
6ioctl VIDIOC_CROPCAP
7********************
8
15e7d615 9Name
586027ce 10====
5377d91f 11
586027ce 12VIDIOC_CROPCAP - Information about the video cropping and scaling abilities
5377d91f 13
15e7d615
MCC
14
15Synopsis
5377d91f
MH
16========
17
b7e67f6c 18.. cpp:function:: int ioctl( int fd, int request, struct v4l2_cropcap *argp )
5377d91f 19
586027ce 20
15e7d615 21Arguments
5377d91f
MH
22=========
23
24``fd``
25 File descriptor returned by :ref:`open() <func-open>`.
26
27``request``
28 VIDIOC_CROPCAP
29
30``argp``
31
32
15e7d615 33Description
5377d91f
MH
34===========
35
36Applications use this function to query the cropping limits, the pixel
37aspect of images and to calculate scale factors. They set the ``type``
38field of a v4l2_cropcap structure to the respective buffer (stream)
2212ff25 39type and call the :ref:`VIDIOC_CROPCAP` ioctl with a pointer to this
5377d91f
MH
40structure. Drivers fill the rest of the structure. The results are
41constant except when switching the video standard. Remember this switch
42can occur implicit when switching the video input or output.
43
44Do not use the multiplanar buffer types. Use
45``V4L2_BUF_TYPE_VIDEO_CAPTURE`` instead of
46``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE`` and use
47``V4L2_BUF_TYPE_VIDEO_OUTPUT`` instead of
48``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE``.
49
50This ioctl must be implemented for video capture or output devices that
51support cropping and/or scaling and/or have non-square pixels, and for
52overlay devices.
53
54
55.. _v4l2-cropcap:
56
57.. flat-table:: struct v4l2_cropcap
58 :header-rows: 0
59 :stub-columns: 0
60 :widths: 1 1 2
61
62
63 - .. row 1
64
65 - __u32
66
67 - ``type``
68
69 - Type of the data stream, set by the application. Only these types
0579e6e3
MCC
70 are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``,
71 ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` and
72 ``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :ref:`v4l2-buf-type`.
5377d91f
MH
73
74 - .. row 2
75
76 - struct :ref:`v4l2_rect <v4l2-rect-crop>`
77
78 - ``bounds``
79
80 - Defines the window within capturing or output is possible, this
0579e6e3
MCC
81 may exclude for example the horizontal and vertical blanking
82 areas. The cropping rectangle cannot exceed these limits. Width
83 and height are defined in pixels, the driver writer is free to
84 choose origin and units of the coordinate system in the analog
85 domain.
5377d91f
MH
86
87 - .. row 3
88
89 - struct :ref:`v4l2_rect <v4l2-rect-crop>`
90
91 - ``defrect``
92
93 - Default cropping rectangle, it shall cover the "whole picture".
0579e6e3
MCC
94 Assuming pixel aspect 1/1 this could be for example a 640 × 480
95 rectangle for NTSC, a 768 × 576 rectangle for PAL and SECAM
96 centered over the active picture area. The same co-ordinate system
97 as for ``bounds`` is used.
5377d91f
MH
98
99 - .. row 4
100
101 - struct :ref:`v4l2_fract <v4l2-fract>`
102
103 - ``pixelaspect``
104
105 - This is the pixel aspect (y / x) when no scaling is applied, the
0579e6e3
MCC
106 ratio of the actual sampling frequency and the frequency required
107 to get square pixels.
5377d91f 108
0579e6e3
MCC
109 When cropping coordinates refer to square pixels, the driver sets
110 ``pixelaspect`` to 1/1. Other common values are 54/59 for PAL and
111 SECAM, 11/10 for NTSC sampled according to [:ref:`itu601`].
5377d91f
MH
112
113
114
115.. _v4l2-rect-crop:
116
117.. flat-table:: struct v4l2_rect
118 :header-rows: 0
119 :stub-columns: 0
120 :widths: 1 1 2
121
122
123 - .. row 1
124
125 - __s32
126
127 - ``left``
128
129 - Horizontal offset of the top, left corner of the rectangle, in
0579e6e3 130 pixels.
5377d91f
MH
131
132 - .. row 2
133
134 - __s32
135
136 - ``top``
137
138 - Vertical offset of the top, left corner of the rectangle, in
0579e6e3 139 pixels.
5377d91f
MH
140
141 - .. row 3
142
143 - __u32
144
145 - ``width``
146
147 - Width of the rectangle, in pixels.
148
149 - .. row 4
150
151 - __u32
152
153 - ``height``
154
155 - Height of the rectangle, in pixels.
156
157
15e7d615 158Return Value
5377d91f
MH
159============
160
161On success 0 is returned, on error -1 and the ``errno`` variable is set
162appropriately. The generic error codes are described at the
163:ref:`Generic Error Codes <gen-errors>` chapter.
164
165EINVAL
166 The struct :ref:`v4l2_cropcap <v4l2-cropcap>` ``type`` is
167 invalid.
This page took 0.047814 seconds and 5 git commands to generate.