← Documents Documentation/userspace-api/media/v4l/vidioc-enuminput.rst GitHub 원문 ↗

Linux 6.18.37 · 사용자 공간 API

VIDIOC_ENUMINPUT ioctl

V4L2 비디오 입력을 index 순서로 열거하고 v4l2_input의 오디오 연결, tuner·표준, 상태 및 capability 플래그와 오류 조건을 설명합니다.

Source pathDocumentation/userspace-api/media/v4l/vidioc-enuminput.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

vidioc-enuminput.rst:1-229

V4L2 비디오 입력을 index 순서로 열거하고 v4l2_input의 오디오 연결, tuner·표준, 상태 및 capability 플래그와 오류 조건을 설명합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2 .. c:namespace:: V4L
3
4 .. _VIDIOC_ENUMINPUT:
5
6 **********************
7 ioctl VIDIOC_ENUMINPUT
8 **********************
9
10 Name
11 ====
12
13 VIDIOC_ENUMINPUT - Enumerate video inputs
14
15 Synopsis
16 ========
17
18 .. c:macro:: VIDIOC_ENUMINPUT
19
20 ``int ioctl(int fd, VIDIOC_ENUMINPUT, struct v4l2_input *argp)``
21
22 Arguments
23 =========
24
25 ``fd``
26 File descriptor returned by :c:func:`open()`.
27
28 ``argp``
29 Pointer to struct :c:type:`v4l2_input`.
30
31 Description
32 ===========
33
34 To query the attributes of a video input applications initialize the
35 ``index`` field of struct :c:type:`v4l2_input` and call the
36 :ref:`VIDIOC_ENUMINPUT` with a pointer to this structure. Drivers
37 fill the rest of the structure or return an ``EINVAL`` error code when the
38 index is out of bounds. To enumerate all inputs applications shall begin
39 at index zero, incrementing by one until the driver returns ``EINVAL``.
40
41 .. tabularcolumns:: |p{3.0cm}|p{3.5cm}|p{10.8cm}|
42
43 .. c:type:: v4l2_input
44
45 .. flat-table:: struct v4l2_input
46 :header-rows: 0
47 :stub-columns: 0
48 :widths: 1 1 2
49
50 * - __u32
51 - ``index``
52 - Identifies the input, set by the application.
53 * - __u8
54 - ``name``\ [32]
55 - Name of the video input, a NUL-terminated ASCII string, for
56 example: "Vin (Composite 2)". This information is intended for the
57 user, preferably the connector label on the device itself.
58 * - __u32
59 - ``type``
60 - Type of the input, see :ref:`input-type`.
61 * - __u32
62 - ``audioset``
63 - Drivers can enumerate up to 32 video and audio inputs. This field
64 shows which audio inputs were selectable as audio source if this
65 was the currently selected video input. It is a bit mask. The LSB
66 corresponds to audio input 0, the MSB to input 31. Any number of
67 bits can be set, or none.
68
69 When the driver does not enumerate audio inputs no bits must be
70 set. Applications shall not interpret this as lack of audio
71 support. Some drivers automatically select audio sources and do
72 not enumerate them since there is no choice anyway.
73
74 For details on audio inputs and how to select the current input
75 see :ref:`audio`.
76 * - __u32
77 - ``tuner``
78 - Capture devices can have zero or more tuners (RF demodulators).
79 When the ``type`` is set to ``V4L2_INPUT_TYPE_TUNER`` this is an
80 RF connector and this field identifies the tuner. It corresponds
81 to struct :c:type:`v4l2_tuner` field ``index``. For
82 details on tuners see :ref:`tuner`.
83 * - :ref:`v4l2_std_id <v4l2-std-id>`
84 - ``std``
85 - Every video input supports one or more different video standards.
86 This field is a set of all supported standards. For details on
87 video standards and how to switch see :ref:`standard`.
88 * - __u32
89 - ``status``
90 - This field provides status information about the input. See
91 :ref:`input-status` for flags. With the exception of the sensor
92 orientation bits ``status`` is only valid when this is the current
93 input.
94 * - __u32
95 - ``capabilities``
96 - This field provides capabilities for the input. See
97 :ref:`input-capabilities` for flags.
98 * - __u32
99 - ``reserved``\ [3]
100 - Reserved for future extensions. Drivers must set the array to
101 zero.
102
103
104 .. tabularcolumns:: |p{6.6cm}|p{1.0cm}|p{9.7cm}|
105
106 .. _input-type:
107
108 .. flat-table:: Input Types
109 :header-rows: 0
110 :stub-columns: 0
111 :widths: 3 1 4
112
113 * - ``V4L2_INPUT_TYPE_TUNER``
114 - 1
115 - This input uses a tuner (RF demodulator).
116 * - ``V4L2_INPUT_TYPE_CAMERA``
117 - 2
118 - Any non-tuner video input, for example Composite Video,
119 S-Video, HDMI, camera sensor. The naming as ``_TYPE_CAMERA`` is historical,
120 today we would have called it ``_TYPE_VIDEO``.
121 * - ``V4L2_INPUT_TYPE_TOUCH``
122 - 3
123 - This input is a touch device for capturing raw touch data.
124
125
126 .. tabularcolumns:: |p{5.6cm}|p{2.6cm}|p{9.1cm}|
127
128 .. _input-status:
129
130 .. flat-table:: Input Status Flags
131 :header-rows: 0
132 :stub-columns: 0
133
134 * - :cspan:`2` General
135 * - ``V4L2_IN_ST_NO_POWER``
136 - 0x00000001
137 - Attached device is off.
138 * - ``V4L2_IN_ST_NO_SIGNAL``
139 - 0x00000002
140 -
141 * - ``V4L2_IN_ST_NO_COLOR``
142 - 0x00000004
143 - The hardware supports color decoding, but does not detect color
144 modulation in the signal.
145 * - :cspan:`2` Sensor Orientation
146 * - ``V4L2_IN_ST_HFLIP``
147 - 0x00000010
148 - The input is connected to a device that produces a signal that is
149 flipped horizontally and does not correct this before passing the
150 signal to userspace.
151 * - ``V4L2_IN_ST_VFLIP``
152 - 0x00000020
153 - The input is connected to a device that produces a signal that is
154 flipped vertically and does not correct this before passing the
155 signal to userspace.
156 .. note:: A 180 degree rotation is the same as HFLIP | VFLIP
157 * - :cspan:`2` Analog Video
158 * - ``V4L2_IN_ST_NO_H_LOCK``
159 - 0x00000100
160 - No horizontal sync lock.
161 * - ``V4L2_IN_ST_COLOR_KILL``
162 - 0x00000200
163 - A color killer circuit automatically disables color decoding when
164 it detects no color modulation. When this flag is set the color
165 killer is enabled *and* has shut off color decoding.
166 * - ``V4L2_IN_ST_NO_V_LOCK``
167 - 0x00000400
168 - No vertical sync lock.
169 * - ``V4L2_IN_ST_NO_STD_LOCK``
170 - 0x00000800
171 - No standard format lock in case of auto-detection format
172 by the component.
173 * - :cspan:`2` Digital Video
174 * - ``V4L2_IN_ST_NO_SYNC``
175 - 0x00010000
176 - No synchronization lock.
177 * - ``V4L2_IN_ST_NO_EQU``
178 - 0x00020000
179 - No equalizer lock.
180 * - ``V4L2_IN_ST_NO_CARRIER``
181 - 0x00040000
182 - Carrier recovery failed.
183 * - :cspan:`2` VCR and Set-Top Box
184 * - ``V4L2_IN_ST_MACROVISION``
185 - 0x01000000
186 - Macrovision is an analog copy prevention system mangling the video
187 signal to confuse video recorders. When this flag is set
188 Macrovision has been detected.
189 * - ``V4L2_IN_ST_NO_ACCESS``
190 - 0x02000000
191 - Conditional access denied.
192 * - ``V4L2_IN_ST_VTR``
193 - 0x04000000
194 - VTR time constant. [?]
195
196
197 .. tabularcolumns:: |p{6.6cm}|p{2.4cm}|p{8.3cm}|
198
199 .. _input-capabilities:
200
201 .. flat-table:: Input capabilities
202 :header-rows: 0
203 :stub-columns: 0
204 :widths: 3 1 4
205
206 * - ``V4L2_IN_CAP_DV_TIMINGS``
207 - 0x00000002
208 - This input supports setting video timings by using
209 ``VIDIOC_S_DV_TIMINGS``.
210 * - ``V4L2_IN_CAP_STD``
211 - 0x00000004
212 - This input supports setting the TV standard by using
213 ``VIDIOC_S_STD``.
214 * - ``V4L2_IN_CAP_NATIVE_SIZE``
215 - 0x00000008
216 - This input supports setting the native size using the
217 ``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see
218 :ref:`v4l2-selections-common`.
219
220 Return Value
221 ============
222
223 On success 0 is returned, on error -1 and the ``errno`` variable is set
224 appropriately. The generic error codes are described at the
225 :ref:`Generic Error Codes <gen-errors>` chapter.
226
227 EINVAL
228 The struct :c:type:`v4l2_input` ``index`` is out of
229 bounds.
230

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

목적, 호출 형식과 인자

1-30

`VIDIOC_ENUMINPUT`은 비디오 입력을 열거하는 ioctl입니다. 호출 형식은 `int ioctl(int fd, VIDIOC_ENUMINPUT, struct v4l2_input *argp)`입니다.

`fd`는 `open()`이 반환한 파일 디스크립터이며, `argp`는 조회할 입력 순번과 드라이버가 반환하는 입력 속성을 담는 `struct v4l2_input`을 가리킵니다.

.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
.. c:namespace:: V4L

.. _VIDIOC_ENUMINPUT:

**********************
ioctl VIDIOC_ENUMINPUT
**********************

Name
====

VIDIOC_ENUMINPUT - Enumerate video inputs

Synopsis
========

.. c:macro:: VIDIOC_ENUMINPUT

``int ioctl(int fd, VIDIOC_ENUMINPUT, struct v4l2_input *argp)``

Arguments
=========

``fd``
    File descriptor returned by :c:func:`open()`.

``argp``
    Pointer to struct :c:type:`v4l2_input`.

비디오 입력 열거 절차

31-40

응용 프로그램은 `v4l2_input.index`에 조회할 입력 순번을 넣고 `VIDIOC_ENUMINPUT`을 호출합니다. 드라이버는 구조체의 나머지 필드를 채우며, 순번이 범위를 벗어나면 `EINVAL`을 반환합니다.

모든 입력을 조사하려면 index 0에서 시작해 한 번에 1씩 증가시키고, 드라이버가 `EINVAL`을 반환할 때 열거를 끝냅니다.

따라서 연속 열거 중의 `EINVAL`은 다음 입력이 없다는 정상적인 종료 표지로 사용할 수 있지만, 임의의 index를 조회할 때는 요청한 순번이 유효하지 않다는 오류입니다.

비디오 입력 열거
v4l2_input 준비index=0 설정VIDIOC_ENUMINPUT 호출반환된 입력 속성 기록index를 1 증가EINVAL에서 종료

연속된 입력 순번을 조회해 장치가 제공하는 모든 입력을 수집합니다.

Description
===========

To query the attributes of a video input applications initialize the
``index`` field of struct :c:type:`v4l2_input` and call the
:ref:`VIDIOC_ENUMINPUT` with a pointer to this structure. Drivers
fill the rest of the structure or return an ``EINVAL`` error code when the
index is out of bounds. To enumerate all inputs applications shall begin
at index zero, incrementing by one until the driver returns ``EINVAL``.

v4l2_input 구조체

41-102
struct v4l2_input
형식필드의미
`__u32``index`응용 프로그램이 설정하는 비디오 입력 식별 순번
`__u8[32]``name`NUL로 끝나는 ASCII 입력 이름. 사용자에게 보여 줄 정보이며 장치 자체의 커넥터 라벨을 쓰는 것이 바람직함
`__u32``type`입력 유형. Input Types 표의 상수 사용
`__u32``audioset`현재 비디오 입력을 선택했을 때 선택할 수 있는 오디오 입력을 나타내는 32비트 마스크
`__u32``tuner``type`이 `V4L2_INPUT_TYPE_TUNER`일 때 이 RF 커넥터에 연결된 tuner 순번
`v4l2_std_id``std`이 비디오 입력이 지원하는 모든 비디오 표준의 집합
`__u32``status`입력 상태 플래그. 센서 방향 비트를 제외하면 현재 선택된 입력에서만 유효
`__u32``capabilities`입력이 제공하는 기능 플래그
`__u32[3]``reserved`미래 확장용 배열. 드라이버가 모두 0으로 설정해야 함

응용 프로그램이 지정하는 값과 드라이버가 반환하는 입력 속성을 원문 순서대로 정리합니다.

`name`은 `Vin (Composite 2)` 같은 NUL 종료 ASCII 문자열입니다. 사용자가 실제 단자를 식별할 수 있도록 장치에 인쇄된 커넥터 이름을 제공하는 것이 좋습니다.

`audioset`은 최대 32개의 오디오 입력과 비디오 입력 사이의 선택 가능 관계를 나타냅니다. 최하위 비트는 오디오 입력 0, 최상위 비트는 입력 31에 대응하며 비트가 여러 개 설정되거나 하나도 설정되지 않을 수 있습니다.

드라이버가 오디오 입력을 별도로 열거하지 않는다면 `audioset`의 모든 비트가 0이어야 합니다. 그러나 이를 오디오 미지원으로 해석해서는 안 됩니다. 선택지가 없어 오디오 소스를 자동으로 정하는 드라이버도 있기 때문입니다. 오디오 입력 조회와 현재 입력 선택은 `audio` 문서를 따릅니다.

`type`이 `V4L2_INPUT_TYPE_TUNER`이면 `tuner`는 `struct v4l2_tuner.index`와 같은 RF demodulator 순번입니다. `std`는 지원하는 비디오 표준 전체를 나타내며 표준 전환 방법은 `standard` 문서에 정의됩니다.

`status`의 센서 방향 비트는 입력 선택 여부와 관계없이 의미가 있지만, 그 밖의 상태 비트는 이 입력이 현재 입력일 때만 유효합니다. `reserved[3]`은 드라이버가 반드시 0으로 반환해야 합니다.

.. tabularcolumns:: |p{3.0cm}|p{3.5cm}|p{10.8cm}|

.. c:type:: v4l2_input

.. flat-table:: struct v4l2_input
    :header-rows:  0
    :stub-columns: 0
    :widths:       1 1 2

    * - __u32
      - ``index``
      - Identifies the input, set by the application.
    * - __u8
      - ``name``\ [32]
      - Name of the video input, a NUL-terminated ASCII string, for
	example: "Vin (Composite 2)". This information is intended for the
	user, preferably the connector label on the device itself.
    * - __u32
      - ``type``
      - Type of the input, see :ref:`input-type`.
    * - __u32
      - ``audioset``
      - Drivers can enumerate up to 32 video and audio inputs. This field
	shows which audio inputs were selectable as audio source if this
	was the currently selected video input. It is a bit mask. The LSB
	corresponds to audio input 0, the MSB to input 31. Any number of
	bits can be set, or none.

	When the driver does not enumerate audio inputs no bits must be
	set. Applications shall not interpret this as lack of audio
	support. Some drivers automatically select audio sources and do
	not enumerate them since there is no choice anyway.

	For details on audio inputs and how to select the current input
	see :ref:`audio`.
    * - __u32
      - ``tuner``
      - Capture devices can have zero or more tuners (RF demodulators).
	When the ``type`` is set to ``V4L2_INPUT_TYPE_TUNER`` this is an
	RF connector and this field identifies the tuner. It corresponds
	to struct :c:type:`v4l2_tuner` field ``index``. For
	details on tuners see :ref:`tuner`.
    * - :ref:`v4l2_std_id <v4l2-std-id>`
      - ``std``
      - Every video input supports one or more different video standards.
	This field is a set of all supported standards. For details on
	video standards and how to switch see :ref:`standard`.
    * - __u32
      - ``status``
      - This field provides status information about the input. See
	:ref:`input-status` for flags. With the exception of the sensor
	orientation bits ``status`` is only valid when this is the current
	input.
    * - __u32
      - ``capabilities``
      - This field provides capabilities for the input. See
	:ref:`input-capabilities` for flags.
    * - __u32
      - ``reserved``\ [3]
      - Reserved for future extensions. Drivers must set the array to
	zero.

입력 유형

103-124
Input Types
상수의미
`V4L2_INPUT_TYPE_TUNER``1`tuner, 즉 RF demodulator를 사용하는 입력
`V4L2_INPUT_TYPE_CAMERA``2`Composite Video, S-Video, HDMI, camera sensor 등 tuner가 아닌 모든 비디오 입력
`V4L2_INPUT_TYPE_TOUCH``3`raw touch 데이터를 캡처하는 touch 장치 입력

`v4l2_input.type`에 반환되는 입력 유형입니다.

`V4L2_INPUT_TYPE_CAMERA`라는 이름은 역사적인 명칭입니다. 현재 API를 새로 이름 붙였다면 `V4L2_INPUT_TYPE_VIDEO`에 가까운 의미이며 카메라 센서만 뜻하지 않습니다.


.. tabularcolumns:: |p{6.6cm}|p{1.0cm}|p{9.7cm}|

.. _input-type:

.. flat-table:: Input Types
    :header-rows:  0
    :stub-columns: 0
    :widths:       3 1 4

    * - ``V4L2_INPUT_TYPE_TUNER``
      - 1
      - This input uses a tuner (RF demodulator).
    * - ``V4L2_INPUT_TYPE_CAMERA``
      - 2
      - Any non-tuner video input, for example Composite Video,
	S-Video, HDMI, camera sensor. The naming as ``_TYPE_CAMERA`` is historical,
	today we would have called it ``_TYPE_VIDEO``.
    * - ``V4L2_INPUT_TYPE_TOUCH``
      - 3
      - This input is a touch device for capturing raw touch data.

입력 상태 플래그

125-195
Input Status Flags
분류상수의미
일반`V4L2_IN_ST_NO_POWER``0x00000001`연결된 장치의 전원이 꺼짐
일반`V4L2_IN_ST_NO_SIGNAL``0x00000002`신호가 감지되지 않음
일반`V4L2_IN_ST_NO_COLOR``0x00000004`하드웨어는 색상 디코딩을 지원하지만 신호에서 색상 변조를 감지하지 못함
센서 방향`V4L2_IN_ST_HFLIP``0x00000010`연결된 장치가 수평 반전된 신호를 만들고 userspace에 넘기기 전에 보정하지 않음
센서 방향`V4L2_IN_ST_VFLIP``0x00000020`연결된 장치가 수직 반전된 신호를 만들고 userspace에 넘기기 전에 보정하지 않음
아날로그 비디오`V4L2_IN_ST_NO_H_LOCK``0x00000100`수평 동기 lock이 없음
아날로그 비디오`V4L2_IN_ST_COLOR_KILL``0x00000200`color killer가 활성화되어 있고 색상 변조 부재를 감지해 색상 디코딩을 중단함
아날로그 비디오`V4L2_IN_ST_NO_V_LOCK``0x00000400`수직 동기 lock이 없음
아날로그 비디오`V4L2_IN_ST_NO_STD_LOCK``0x00000800`component가 형식을 자동 감지할 때 표준 형식 lock이 없음
디지털 비디오`V4L2_IN_ST_NO_SYNC``0x00010000`동기화 lock이 없음
디지털 비디오`V4L2_IN_ST_NO_EQU``0x00020000`equalizer lock이 없음
디지털 비디오`V4L2_IN_ST_NO_CARRIER``0x00040000`carrier 복구 실패
VCR·셋톱박스`V4L2_IN_ST_MACROVISION``0x01000000`비디오 레코더를 혼란시키도록 신호를 변형하는 아날로그 복사 방지 방식 Macrovision이 감지됨
VCR·셋톱박스`V4L2_IN_ST_NO_ACCESS``0x02000000`조건부 접근이 거부됨
VCR·셋톱박스`V4L2_IN_ST_VTR``0x04000000`VTR time constant. 원문도 의미 뒤에 `[?]`를 남겨 불확실성을 표시함

`v4l2_input.status`가 보고하는 일반 상태, 센서 방향, 아날로그·디지털 비디오 및 VCR·셋톱박스 상태입니다.

`V4L2_IN_ST_HFLIP | V4L2_IN_ST_VFLIP` 조합은 180도 회전과 같습니다. 이 두 비트는 신호를 userspace로 전달하기 전에 장치가 방향을 바로잡지 않았음을 알립니다.

`V4L2_IN_ST_COLOR_KILL`은 회로가 존재한다는 뜻만이 아닙니다. color killer가 활성화되어 있으며 색상 변조가 없다고 판단해 실제로 색상 디코딩을 껐다는 뜻입니다.

status 해석 기준
status 값 읽기HFLIP/VFLIP 분리방향 비트는 항상 해석나머지 비트 확인현재 입력일 때만 상태로 사용

센서 방향 비트와 나머지 상태 비트의 유효 범위를 구분합니다.


.. tabularcolumns:: |p{5.6cm}|p{2.6cm}|p{9.1cm}|

.. _input-status:

.. flat-table:: Input Status Flags
    :header-rows:  0
    :stub-columns: 0

    * - :cspan:`2` General
    * - ``V4L2_IN_ST_NO_POWER``
      - 0x00000001
      - Attached device is off.
    * - ``V4L2_IN_ST_NO_SIGNAL``
      - 0x00000002
      -
    * - ``V4L2_IN_ST_NO_COLOR``
      - 0x00000004
      - The hardware supports color decoding, but does not detect color
	modulation in the signal.
    * - :cspan:`2` Sensor Orientation
    * - ``V4L2_IN_ST_HFLIP``
      - 0x00000010
      - The input is connected to a device that produces a signal that is
	flipped horizontally and does not correct this before passing the
	signal to userspace.
    * - ``V4L2_IN_ST_VFLIP``
      - 0x00000020
      - The input is connected to a device that produces a signal that is
	flipped vertically and does not correct this before passing the
	signal to userspace.
	.. note:: A 180 degree rotation is the same as HFLIP | VFLIP
    * - :cspan:`2` Analog Video
    * - ``V4L2_IN_ST_NO_H_LOCK``
      - 0x00000100
      - No horizontal sync lock.
    * - ``V4L2_IN_ST_COLOR_KILL``
      - 0x00000200
      - A color killer circuit automatically disables color decoding when
	it detects no color modulation. When this flag is set the color
	killer is enabled *and* has shut off color decoding.
    * - ``V4L2_IN_ST_NO_V_LOCK``
      - 0x00000400
      - No vertical sync lock.
    * - ``V4L2_IN_ST_NO_STD_LOCK``
      - 0x00000800
      - No standard format lock in case of auto-detection format
	by the component.
    * - :cspan:`2` Digital Video
    * - ``V4L2_IN_ST_NO_SYNC``
      - 0x00010000
      - No synchronization lock.
    * - ``V4L2_IN_ST_NO_EQU``
      - 0x00020000
      - No equalizer lock.
    * - ``V4L2_IN_ST_NO_CARRIER``
      - 0x00040000
      - Carrier recovery failed.
    * - :cspan:`2` VCR and Set-Top Box
    * - ``V4L2_IN_ST_MACROVISION``
      - 0x01000000
      - Macrovision is an analog copy prevention system mangling the video
	signal to confuse video recorders. When this flag is set
	Macrovision has been detected.
    * - ``V4L2_IN_ST_NO_ACCESS``
      - 0x02000000
      - Conditional access denied.
    * - ``V4L2_IN_ST_VTR``
      - 0x04000000
      - VTR time constant. [?]

입력 기능 플래그

196-219
Input Capabilities
상수의미
`V4L2_IN_CAP_DV_TIMINGS``0x00000002``VIDIOC_S_DV_TIMINGS`로 비디오 timing 설정 지원
`V4L2_IN_CAP_STD``0x00000004``VIDIOC_S_STD`로 TV 표준 설정 지원
`V4L2_IN_CAP_NATIVE_SIZE``0x00000008``V4L2_SEL_TGT_NATIVE_SIZE` selection target으로 native size 설정 지원

`v4l2_input.capabilities`가 알리는 입력별 설정 기능입니다.

기능 비트는 해당 입력에서 사용할 설정 API를 고르는 기준입니다. native size 선택의 상세 규칙은 공통 V4L2 selection 문서를 따릅니다.


.. tabularcolumns:: |p{6.6cm}|p{2.4cm}|p{8.3cm}|

.. _input-capabilities:

.. flat-table:: Input capabilities
    :header-rows:  0
    :stub-columns: 0
    :widths:       3 1 4

    * - ``V4L2_IN_CAP_DV_TIMINGS``
      - 0x00000002
      - This input supports setting video timings by using
	``VIDIOC_S_DV_TIMINGS``.
    * - ``V4L2_IN_CAP_STD``
      - 0x00000004
      - This input supports setting the TV standard by using
	``VIDIOC_S_STD``.
    * - ``V4L2_IN_CAP_NATIVE_SIZE``
      - 0x00000008
      - This input supports setting the native size using the
	``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see
	:ref:`v4l2-selections-common`.

반환값과 EINVAL

220-229

성공하면 0을 반환합니다. 오류가 발생하면 -1을 반환하고 `errno`를 적절한 값으로 설정하며, 공통 오류 코드는 Generic Error Codes 장을 따릅니다.

VIDIOC_ENUMINPUT 오류
errno조건
`EINVAL``struct v4l2_input.index`가 지원되는 입력 범위를 벗어남

입력 열거를 끝내거나 잘못된 순번을 판별하는 오류입니다.

Return Value
============

On success 0 is returned, on error -1 and the ``errno`` variable is set
appropriately. The generic error codes are described at the
:ref:`Generic Error Codes <gen-errors>` chapter.

EINVAL
    The struct :c:type:`v4l2_input` ``index`` is out of
    bounds.