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

Linux 6.18.37 · Userspace API / Media / V4L

Video for Linux API 명세

V4L2 API 명세의 목차, 기여자, 저작권과 2002~2016년의 개정 이력을 제공합니다.

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

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

1. 요약·해설

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

요약·해설

v4l2.rst:1-413

V4L2 API 명세를 구성하는 하위 문서와 주요 기여, 50건의 개정 기록을 한 페이지에서 확인할 수 있습니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2 .. include:: <isonum.txt>
3
4 .. _v4l2spec:
5
6 ############################
7 Part I - Video for Linux API
8 ############################
9
10 This part describes the Video for Linux API version 2 (V4L2 API) specification.
11
12 **Revision 4.5**
13
14 .. toctree::
15 :caption: Table of Contents
16 :numbered:
17 :maxdepth: 5
18
19 common
20 pixfmt
21 io
22 devices
23 libv4l
24 compat
25 user-func
26 common-defs
27 videodev
28 capture-example
29 v4l2grab-example
30 biblio
31
32
33 **********************
34 Revision and Copyright
35 **********************
36
37 Authors, in alphabetical order:
38
39 - Ailus, Sakari <sakari.ailus@iki.fi>
40
41 - Subdev selections API.
42
43 - Carvalho Chehab, Mauro <mchehab+samsung@kernel.org>
44
45 - Documented libv4l, designed and added v4l2grab example, Remote Controller chapter.
46
47 - Dirks, Bill
48
49 - Original author of the V4L2 API and documentation.
50
51 - Figa, Tomasz <tfiga@chromium.org>
52
53 - Documented the memory-to-memory decoder interface.
54 - Documented the memory-to-memory encoder interface.
55
56 - H Schimek, Michael <mschimek@gmx.at>
57
58 - Original author of the V4L2 API and documentation.
59
60 - Karicheri, Muralidharan <m-karicheri2@ti.com>
61
62 - Documented the Digital Video timings API.
63
64 - Osciak, Pawel <posciak@chromium.org>
65
66 - Documented the memory-to-memory decoder interface.
67 - Documented the memory-to-memory encoder interface.
68
69 - Osciak, Pawel <pawel@osciak.com>
70
71 - Designed and documented the multi-planar API.
72
73 - Palosaari, Antti <crope@iki.fi>
74
75 - SDR API.
76
77 - Ribalda, Ricardo
78
79 - Introduce HSV formats and other minor changes.
80
81 - Rubli, Martin
82
83 - Designed and documented the VIDIOC_ENUM_FRAMESIZES and VIDIOC_ENUM_FRAMEINTERVALS ioctls.
84
85 - Walls, Andy <awalls@md.metrocast.net>
86
87 - Documented the fielded V4L2_MPEG_STREAM_VBI_FMT_IVTV MPEG stream embedded, sliced VBI data format in this specification.
88
89 - Verkuil, Hans <hverkuil@kernel.org>
90
91 - Designed and documented the VIDIOC_LOG_STATUS ioctl, the extended control ioctls, major parts of the sliced VBI API, the MPEG encoder and decoder APIs and the DV Timings API.
92
93 **Copyright** |copy| 1999-2018: Bill Dirks, Michael H. Schimek, Hans Verkuil, Martin Rubli, Andy Walls, Muralidharan Karicheri, Mauro Carvalho Chehab, Pawel Osciak, Sakari Ailus & Antti Palosaari, Tomasz Figa
94
95 Except when explicitly stated as GPL, programming examples within this
96 part can be used and distributed without restrictions.
97
98 ****************
99 Revision History
100 ****************
101
102 :revision: 4.10 / 2016-07-15 (*rr*)
103
104 Introduce HSV formats.
105
106
107 :revision: 4.5 / 2015-10-29 (*rr*)
108
109 Extend VIDIOC_G_EXT_CTRLS;. Replace ctrl_class with a new union with
110 ctrl_class and which. Which is used to select the current value of the
111 control or the default value.
112
113
114 :revision: 4.4 / 2015-05-26 (*ap*)
115
116 Renamed V4L2_TUNER_ADC to V4L2_TUNER_SDR. Added
117 V4L2_CID_RF_TUNER_RF_GAIN control. Added transmitter support for
118 Software Defined Radio (SDR) Interface.
119
120
121 :revision: 4.1 / 2015-02-13 (*mcc*)
122
123 Fix documentation for media controller device nodes and add support for
124 DVB device nodes. Add support for Tuner sub-device.
125
126
127 :revision: 3.19 / 2014-12-05 (*hv*)
128
129 Rewrote Colorspace chapter, added new enum
130 :c:type:`v4l2_ycbcr_encoding` and enum
131 :c:type:`v4l2_quantization` fields to struct
132 :c:type:`v4l2_pix_format`, struct
133 :c:type:`v4l2_pix_format_mplane` and struct
134 :c:type:`v4l2_mbus_framefmt`.
135
136
137 :revision: 3.17 / 2014-08-04 (*lp, hv*)
138
139 Extended struct :c:type:`v4l2_pix_format`. Added
140 format flags. Added compound control types and VIDIOC_QUERY_EXT_CTRL.
141
142
143 :revision: 3.15 / 2014-02-03 (*hv, ap*)
144
145 Update several sections of "Common API Elements": "Opening and Closing
146 Devices" "Querying Capabilities", "Application Priority", "Video Inputs
147 and Outputs", "Audio Inputs and Outputs" "Tuners and Modulators", "Video
148 Standards" and "Digital Video (DV) Timings". Added SDR API.
149
150
151 :revision: 3.14 / 2013-11-25 (*rr*)
152
153 Set width and height as unsigned on v4l2_rect.
154
155
156 :revision: 3.11 / 2013-05-26 (*hv*)
157
158 Remove obsolete VIDIOC_DBG_G_CHIP_IDENT ioctl.
159
160
161 :revision: 3.10 / 2013-03-25 (*hv*)
162
163 Remove obsolete and unused DV_PRESET ioctls: VIDIOC_G_DV_PRESET,
164 VIDIOC_S_DV_PRESET, VIDIOC_QUERY_DV_PRESET and
165 VIDIOC_ENUM_DV_PRESET. Remove the related v4l2_input/output
166 capability flags V4L2_IN_CAP_PRESETS and V4L2_OUT_CAP_PRESETS.
167 Added VIDIOC_DBG_G_CHIP_INFO.
168
169
170 :revision: 3.9 / 2012-12-03 (*sa, sn*)
171
172 Added timestamp types to v4l2_buffer. Added
173 V4L2_EVENT_CTRL_CH_RANGE control event changes flag.
174
175
176 :revision: 3.6 / 2012-07-02 (*hv*)
177
178 Added VIDIOC_ENUM_FREQ_BANDS.
179
180
181 :revision: 3.5 / 2012-05-07 (*sa, sn, hv*)
182
183 Added V4L2_CTRL_TYPE_INTEGER_MENU and V4L2 subdev selections API.
184 Improved the description of V4L2_CID_COLORFX control, added
185 V4L2_CID_COLORFX_CBCR control. Added camera controls
186 V4L2_CID_AUTO_EXPOSURE_BIAS,
187 V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE,
188 V4L2_CID_IMAGE_STABILIZATION, V4L2_CID_ISO_SENSITIVITY,
189 V4L2_CID_ISO_SENSITIVITY_AUTO, V4L2_CID_EXPOSURE_METERING,
190 V4L2_CID_SCENE_MODE, V4L2_CID_3A_LOCK,
191 V4L2_CID_AUTO_FOCUS_START, V4L2_CID_AUTO_FOCUS_STOP,
192 V4L2_CID_AUTO_FOCUS_STATUS and V4L2_CID_AUTO_FOCUS_RANGE. Added
193 VIDIOC_ENUM_DV_TIMINGS, VIDIOC_QUERY_DV_TIMINGS and
194 VIDIOC_DV_TIMINGS_CAP.
195
196
197 :revision: 3.4 / 2012-01-25 (*sn*)
198
199 Added :ref:`JPEG compression control class. <jpeg-controls>`
200
201
202 :revision: 3.3 / 2012-01-11 (*hv*)
203
204 Added device_caps field to struct v4l2_capabilities.
205
206
207 :revision: 3.2 / 2011-08-26 (*hv*)
208
209 Added V4L2_CTRL_FLAG_VOLATILE.
210
211
212 :revision: 3.1 / 2011-06-27 (*mcc, po, hv*)
213
214 Documented that VIDIOC_QUERYCAP now returns a per-subsystem version
215 instead of a per-driver one. Standardize an error code for invalid
216 ioctl. Added V4L2_CTRL_TYPE_BITMASK.
217
218
219 :revision: 2.6.39 / 2011-03-01 (*mcc, po*)
220
221 Removed VIDIOC_*_OLD from videodev2.h header and update it to reflect
222 latest changes. Added the :ref:`multi-planar API <planar-apis>`.
223
224
225 :revision: 2.6.37 / 2010-08-06 (*hv*)
226
227 Removed obsolete vtx (videotext) API.
228
229
230 :revision: 2.6.33 / 2009-12-03 (*mk*)
231
232 Added documentation for the Digital Video timings API.
233
234
235 :revision: 2.6.32 / 2009-08-31 (*mcc*)
236
237 Now, revisions will match the kernel version where the V4L2 API changes
238 will be used by the Linux Kernel. Also added Remote Controller chapter.
239
240
241 :revision: 0.29 / 2009-08-26 (*ev*)
242
243 Added documentation for string controls and for FM Transmitter controls.
244
245
246 :revision: 0.28 / 2009-08-26 (*gl*)
247
248 Added V4L2_CID_BAND_STOP_FILTER documentation.
249
250
251 :revision: 0.27 / 2009-08-15 (*mcc*)
252
253 Added libv4l and Remote Controller documentation; added v4l2grab and
254 keytable application examples.
255
256
257 :revision: 0.26 / 2009-07-23 (*hv*)
258
259 Finalized the RDS capture API. Added modulator and RDS encoder
260 capabilities. Added support for string controls.
261
262
263 :revision: 0.25 / 2009-01-18 (*hv*)
264
265 Added pixel formats VYUY, NV16 and NV61, and changed the debug ioctls
266 VIDIOC_DBG_G/S_REGISTER and VIDIOC_DBG_G_CHIP_IDENT. Added camera
267 controls V4L2_CID_ZOOM_ABSOLUTE, V4L2_CID_ZOOM_RELATIVE,
268 V4L2_CID_ZOOM_CONTINUOUS and V4L2_CID_PRIVACY.
269
270
271 :revision: 0.24 / 2008-03-04 (*mhs*)
272
273 Added pixel formats Y16 and SBGGR16, new controls and a camera controls
274 class. Removed VIDIOC_G/S_MPEGCOMP.
275
276
277 :revision: 0.23 / 2007-08-30 (*mhs*)
278
279 Fixed a typo in VIDIOC_DBG_G/S_REGISTER. Clarified the byte order of
280 packed pixel formats.
281
282
283 :revision: 0.22 / 2007-08-29 (*mhs*)
284
285 Added the Video Output Overlay interface, new MPEG controls,
286 V4L2_FIELD_INTERLACED_TB and V4L2_FIELD_INTERLACED_BT,
287 VIDIOC_DBG_G/S_REGISTER, VIDIOC\_(TRY\_)ENCODER_CMD,
288 VIDIOC_G_CHIP_IDENT, VIDIOC_G_ENC_INDEX, new pixel formats.
289 Clarifications in the cropping chapter, about RGB pixel formats, the
290 mmap(), poll(), select(), read() and write() functions. Typographical
291 fixes.
292
293
294 :revision: 0.21 / 2006-12-19 (*mhs*)
295
296 Fixed a link in the VIDIOC_G_EXT_CTRLS section.
297
298
299 :revision: 0.20 / 2006-11-24 (*mhs*)
300
301 Clarified the purpose of the audioset field in struct v4l2_input and
302 v4l2_output.
303
304
305 :revision: 0.19 / 2006-10-19 (*mhs*)
306
307 Documented V4L2_PIX_FMT_RGB444.
308
309
310 :revision: 0.18 / 2006-10-18 (*mhs*)
311
312 Added the description of extended controls by Hans Verkuil. Linked
313 V4L2_PIX_FMT_MPEG to V4L2_CID_MPEG_STREAM_TYPE.
314
315
316 :revision: 0.17 / 2006-10-12 (*mhs*)
317
318 Corrected V4L2_PIX_FMT_HM12 description.
319
320
321 :revision: 0.16 / 2006-10-08 (*mhs*)
322
323 VIDIOC_ENUM_FRAMESIZES and VIDIOC_ENUM_FRAMEINTERVALS are now part
324 of the API.
325
326
327 :revision: 0.15 / 2006-09-23 (*mhs*)
328
329 Cleaned up the bibliography, added BT.653 and BT.1119.
330 capture.c/start_capturing() for user pointer I/O did not initialize the
331 buffer index. Documented the V4L MPEG and MJPEG VID_TYPEs and
332 V4L2_PIX_FMT_SBGGR8. Updated the list of reserved pixel formats. See
333 the history chapter for API changes.
334
335
336 :revision: 0.14 / 2006-09-14 (*mr*)
337
338 Added VIDIOC_ENUM_FRAMESIZES and VIDIOC_ENUM_FRAMEINTERVALS proposal
339 for frame format enumeration of digital devices.
340
341
342 :revision: 0.13 / 2006-04-07 (*mhs*)
343
344 Corrected the description of struct v4l2_window clips. New V4L2_STD\_
345 and V4L2_TUNER_MODE_LANG1_LANG2 defines.
346
347
348 :revision: 0.12 / 2006-02-03 (*mhs*)
349
350 Corrected the description of struct v4l2_captureparm and
351 v4l2_outputparm.
352
353
354 :revision: 0.11 / 2006-01-27 (*mhs*)
355
356 Improved the description of struct v4l2_tuner.
357
358
359 :revision: 0.10 / 2006-01-10 (*mhs*)
360
361 VIDIOC_G_INPUT and VIDIOC_S_PARM clarifications.
362
363
364 :revision: 0.9 / 2005-11-27 (*mhs*)
365
366 Improved the 525 line numbering diagram. Hans Verkuil and I rewrote the
367 sliced VBI section. He also contributed a VIDIOC_LOG_STATUS page.
368 Fixed VIDIOC_S_STD call in the video standard selection example.
369 Various updates.
370
371
372 :revision: 0.8 / 2004-10-04 (*mhs*)
373
374 Somehow a piece of junk slipped into the capture example, removed.
375
376
377 :revision: 0.7 / 2004-09-19 (*mhs*)
378
379 Fixed video standard selection, control enumeration, downscaling and
380 aspect example. Added read and user pointer i/o to video capture
381 example.
382
383
384 :revision: 0.6 / 2004-08-01 (*mhs*)
385
386 v4l2_buffer changes, added video capture example, various corrections.
387
388
389 :revision: 0.5 / 2003-11-05 (*mhs*)
390
391 Pixel format erratum.
392
393
394 :revision: 0.4 / 2003-09-17 (*mhs*)
395
396 Corrected source and Makefile to generate a PDF. SGML fixes. Added
397 latest API changes. Closed gaps in the history chapter.
398
399
400 :revision: 0.3 / 2003-02-05 (*mhs*)
401
402 Another draft, more corrections.
403
404
405 :revision: 0.2 / 2003-01-15 (*mhs*)
406
407 Second draft, with corrections pointed out by Gerd Knorr.
408
409
410 :revision: 0.1 / 2002-12-01 (*mhs*)
411
412 First draft, based on documentation by Bill Dirks and discussions on the
413 V4L mailing list.
414

3. 한국어 전문 번역

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

V4L2 API 명세와 문서 구성

1-31

이 문서는 Video for Linux API 버전 2(V4L2 API) 명세의 제1부이며 표기된 문서 개정판은 4.5입니다.

V4L2 명세 목차
하위 문서내용
common공통 API 요소
pixfmt이미지 픽셀 형식
io입출력 방식
devices장치 인터페이스
libv4llibv4l
compat호환성
user-func사용자 공간 함수 참조
common-defs공통 정의
videodevvideodev 헤더
capture-example캡처 예제
v4l2grab-examplev4l2grab 예제
biblio참고 문헌

원문 toctree의 번호와 순서를 보존합니다.

.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
.. include:: <isonum.txt>

.. _v4l2spec:

############################
Part I - Video for Linux API
############################

This part describes the Video for Linux API version 2 (V4L2 API) specification.

**Revision 4.5**

.. toctree::
    :caption: Table of Contents
    :numbered:
    :maxdepth: 5

    common
    pixfmt
    io
    devices
    libv4l
    compat
    user-func
    common-defs
    videodev
    capture-example
    v4l2grab-example
    biblio

개정 이력: 4.10~3.15

98-149
V4L2 개정 이력 2014~2016
개정날짜변경 사항
4.102016-07-15HSV 형식을 도입했습니다.
4.52015-10-29VIDIOC_G_EXT_CTRLS를 확장하고 ctrl_class를 ctrl_class와 which를 담는 union으로 대체했습니다. which는 현재값과 기본값 선택에 사용합니다.
4.42015-05-26V4L2_TUNER_ADC를 V4L2_TUNER_SDR로 바꾸고 RF 이득 제어와 SDR 송신 지원을 추가했습니다.
4.12015-02-13미디어 컨트롤러 장치 노드 문서를 수정하고 DVB 장치 노드와 튜너 서브디바이스를 지원했습니다.
3.192014-12-05색공간 장을 다시 쓰고 v4l2_ycbcr_encoding과 v4l2_quantization을 픽셀·다중 평면·미디어 버스 형식 구조체에 추가했습니다.
3.172014-08-04v4l2_pix_format, 형식 플래그, 복합 제어 형식, VIDIOC_QUERY_EXT_CTRL을 확장·추가했습니다.
3.152014-02-03공통 API의 장치 열기, capability, 우선순위, 입출력, 오디오, 튜너, 표준, DV 타이밍 절을 갱신하고 SDR API를 추가했습니다.

최신 개정부터 역순으로 정리합니다.

****************
Revision History
****************

:revision: 4.10 / 2016-07-15 (*rr*)

Introduce HSV formats.


:revision: 4.5 / 2015-10-29 (*rr*)

Extend VIDIOC_G_EXT_CTRLS;. Replace ctrl_class with a new union with
ctrl_class and which. Which is used to select the current value of the
control or the default value.


:revision: 4.4 / 2015-05-26 (*ap*)

Renamed V4L2_TUNER_ADC to V4L2_TUNER_SDR. Added
V4L2_CID_RF_TUNER_RF_GAIN control. Added transmitter support for
Software Defined Radio (SDR) Interface.


:revision: 4.1 / 2015-02-13 (*mcc*)

Fix documentation for media controller device nodes and add support for
DVB device nodes. Add support for Tuner sub-device.


:revision: 3.19 / 2014-12-05 (*hv*)

Rewrote Colorspace chapter, added new enum
:c:type:`v4l2_ycbcr_encoding` and enum
:c:type:`v4l2_quantization` fields to struct
:c:type:`v4l2_pix_format`, struct
:c:type:`v4l2_pix_format_mplane` and struct
:c:type:`v4l2_mbus_framefmt`.


:revision: 3.17 / 2014-08-04 (*lp, hv*)

Extended struct :c:type:`v4l2_pix_format`. Added
format flags. Added compound control types and VIDIOC_QUERY_EXT_CTRL.


:revision: 3.15 / 2014-02-03 (*hv, ap*)

Update several sections of "Common API Elements": "Opening and Closing
Devices" "Querying Capabilities", "Application Priority", "Video Inputs
and Outputs", "Audio Inputs and Outputs" "Tuners and Modulators", "Video
Standards" and "Digital Video (DV) Timings". Added SDR API.

개정 이력: 3.14~2.6.39

150-224
V4L2 개정 이력 2011~2013
개정날짜변경 사항
3.142013-11-25v4l2_rect의 width와 height를 unsigned로 정했습니다.
3.112013-05-26폐기된 VIDIOC_DBG_G_CHIP_IDENT를 제거했습니다.
3.102013-03-25폐기된 DV_PRESET ioctl과 관련 capability를 제거하고 VIDIOC_DBG_G_CHIP_INFO를 추가했습니다.
3.92012-12-03v4l2_buffer 타임스탬프 형식과 V4L2_EVENT_CTRL_CH_RANGE를 추가했습니다.
3.62012-07-02VIDIOC_ENUM_FREQ_BANDS를 추가했습니다.
3.52012-05-07정수 메뉴 제어와 서브디바이스 선택 API, 다수의 카메라 제어와 DV 타이밍 열거·조회 호출을 추가했습니다.
3.42012-01-25JPEG 압축 제어 클래스를 추가했습니다.
3.32012-01-11v4l2_capabilities에 device_caps 필드를 추가했습니다.
3.22011-08-26V4L2_CTRL_FLAG_VOLATILE을 추가했습니다.
3.12011-06-27VIDIOC_QUERYCAP의 버전 의미를 하위 시스템 단위로 정하고 잘못된 ioctl 오류를 표준화했으며 비트마스크 제어 형식을 추가했습니다.
2.6.392011-03-01videodev2.h의 VIDIOC_*_OLD를 제거하고 다중 평면 API를 추가했습니다.

커널 3.x 초반과 다중 평면 API 도입기의 변경입니다.


:revision: 3.14 / 2013-11-25 (*rr*)

Set width and height as unsigned on v4l2_rect.


:revision: 3.11 / 2013-05-26 (*hv*)

Remove obsolete VIDIOC_DBG_G_CHIP_IDENT ioctl.


:revision: 3.10 / 2013-03-25 (*hv*)

Remove obsolete and unused DV_PRESET ioctls: VIDIOC_G_DV_PRESET,
VIDIOC_S_DV_PRESET, VIDIOC_QUERY_DV_PRESET and
VIDIOC_ENUM_DV_PRESET. Remove the related v4l2_input/output
capability flags V4L2_IN_CAP_PRESETS and V4L2_OUT_CAP_PRESETS.
Added VIDIOC_DBG_G_CHIP_INFO.


:revision: 3.9 / 2012-12-03 (*sa, sn*)

Added timestamp types to v4l2_buffer. Added
V4L2_EVENT_CTRL_CH_RANGE control event changes flag.


:revision: 3.6 / 2012-07-02 (*hv*)

Added VIDIOC_ENUM_FREQ_BANDS.


:revision: 3.5 / 2012-05-07 (*sa, sn, hv*)

Added V4L2_CTRL_TYPE_INTEGER_MENU and V4L2 subdev selections API.
Improved the description of V4L2_CID_COLORFX control, added
V4L2_CID_COLORFX_CBCR control. Added camera controls
V4L2_CID_AUTO_EXPOSURE_BIAS,
V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE,
V4L2_CID_IMAGE_STABILIZATION, V4L2_CID_ISO_SENSITIVITY,
V4L2_CID_ISO_SENSITIVITY_AUTO, V4L2_CID_EXPOSURE_METERING,
V4L2_CID_SCENE_MODE, V4L2_CID_3A_LOCK,
V4L2_CID_AUTO_FOCUS_START, V4L2_CID_AUTO_FOCUS_STOP,
V4L2_CID_AUTO_FOCUS_STATUS and V4L2_CID_AUTO_FOCUS_RANGE. Added
VIDIOC_ENUM_DV_TIMINGS, VIDIOC_QUERY_DV_TIMINGS and
VIDIOC_DV_TIMINGS_CAP.


:revision: 3.4 / 2012-01-25 (*sn*)

Added :ref:`JPEG compression control class. <jpeg-controls>`


:revision: 3.3 / 2012-01-11 (*hv*)

Added device_caps field to struct v4l2_capabilities.


:revision: 3.2 / 2011-08-26 (*hv*)

Added V4L2_CTRL_FLAG_VOLATILE.


:revision: 3.1 / 2011-06-27 (*mcc, po, hv*)

Documented that VIDIOC_QUERYCAP now returns a per-subsystem version
instead of a per-driver one. Standardize an error code for invalid
ioctl. Added V4L2_CTRL_TYPE_BITMASK.


:revision: 2.6.39 / 2011-03-01 (*mcc, po*)

Removed VIDIOC_*_OLD from videodev2.h header and update it to reflect
latest changes. Added the :ref:`multi-planar API <planar-apis>`.

개정 이력: 2.6.37~0.24

225-275
V4L2 개정 이력 2008~2010
개정날짜변경 사항
2.6.372010-08-06폐기된 vtx 비디오텍스트 API를 제거했습니다.
2.6.332009-12-03디지털 비디오 타이밍 API를 문서화했습니다.
2.6.322009-08-31개정 번호를 V4L2 API 변경이 들어가는 커널 버전과 맞추고 리모컨 장을 추가했습니다.
0.292009-08-26문자열 제어와 FM 송신기 제어를 문서화했습니다.
0.282009-08-26V4L2_CID_BAND_STOP_FILTER를 문서화했습니다.
0.272009-08-15libv4l·리모컨 문서와 v4l2grab·keytable 예제를 추가했습니다.
0.262009-07-23RDS 캡처 API를 확정하고 변조기·RDS 인코더 capability와 문자열 제어를 추가했습니다.
0.252009-01-18VYUY·NV16·NV61 형식, 디버그 ioctl 변경과 줌·프라이버시 카메라 제어를 추가했습니다.
0.242008-03-04Y16·SBGGR16 형식과 카메라 제어 클래스를 추가하고 VIDIOC_G/S_MPEGCOMP를 제거했습니다.

커널 버전 연동과 SDR 이전의 주요 확장입니다.

:revision: 2.6.37 / 2010-08-06 (*hv*)

Removed obsolete vtx (videotext) API.


:revision: 2.6.33 / 2009-12-03 (*mk*)

Added documentation for the Digital Video timings API.


:revision: 2.6.32 / 2009-08-31 (*mcc*)

Now, revisions will match the kernel version where the V4L2 API changes
will be used by the Linux Kernel. Also added Remote Controller chapter.


:revision: 0.29 / 2009-08-26 (*ev*)

Added documentation for string controls and for FM Transmitter controls.


:revision: 0.28 / 2009-08-26 (*gl*)

Added V4L2_CID_BAND_STOP_FILTER documentation.


:revision: 0.27 / 2009-08-15 (*mcc*)

Added libv4l and Remote Controller documentation; added v4l2grab and
keytable application examples.


:revision: 0.26 / 2009-07-23 (*hv*)

Finalized the RDS capture API. Added modulator and RDS encoder
capabilities. Added support for string controls.


:revision: 0.25 / 2009-01-18 (*hv*)

Added pixel formats VYUY, NV16 and NV61, and changed the debug ioctls
VIDIOC_DBG_G/S_REGISTER and VIDIOC_DBG_G_CHIP_IDENT. Added camera
controls V4L2_CID_ZOOM_ABSOLUTE, V4L2_CID_ZOOM_RELATIVE,
V4L2_CID_ZOOM_CONTINUOUS and V4L2_CID_PRIVACY.


:revision: 0.24 / 2008-03-04 (*mhs*)

Added pixel formats Y16 and SBGGR16, new controls and a camera controls
class. Removed VIDIOC_G/S_MPEGCOMP.

개정 이력: 0.23~0.15

276-335
V4L2 개정 이력 2006~2007
개정날짜변경 사항
0.232007-08-30디버그 레지스터 ioctl 오타를 수정하고 패킹 픽셀 형식의 바이트 순서를 명확히 했습니다.
0.222007-08-29출력 오버레이, MPEG 제어, 인터레이스 필드, 디버그·인코더 호출과 새 픽셀 형식을 추가하고 자르기·RGB·I/O 설명을 보완했습니다.
0.212006-12-19VIDIOC_G_EXT_CTRLS 절의 링크를 수정했습니다.
0.202006-11-24v4l2_input과 v4l2_output의 audioset 목적을 명확히 했습니다.
0.192006-10-19V4L2_PIX_FMT_RGB444를 문서화했습니다.
0.182006-10-18확장 제어 설명을 추가하고 MPEG 픽셀 형식과 MPEG 스트림 형식 제어를 연결했습니다.
0.172006-10-12V4L2_PIX_FMT_HM12 설명을 수정했습니다.
0.162006-10-08프레임 크기와 프레임 간격 열거 ioctl을 정식 API에 포함했습니다.
0.152006-09-23참고 문헌과 사용자 포인터 캡처 예제를 고치고 MPEG/MJPEG 형식, SBGGR8, 예약 형식 목록을 문서화했습니다.

출력 오버레이, MPEG 제어와 형식 열거가 정착된 시기입니다.


:revision: 0.23 / 2007-08-30 (*mhs*)

Fixed a typo in VIDIOC_DBG_G/S_REGISTER. Clarified the byte order of
packed pixel formats.


:revision: 0.22 / 2007-08-29 (*mhs*)

Added the Video Output Overlay interface, new MPEG controls,
V4L2_FIELD_INTERLACED_TB and V4L2_FIELD_INTERLACED_BT,
VIDIOC_DBG_G/S_REGISTER, VIDIOC\_(TRY\_)ENCODER_CMD,
VIDIOC_G_CHIP_IDENT, VIDIOC_G_ENC_INDEX, new pixel formats.
Clarifications in the cropping chapter, about RGB pixel formats, the
mmap(), poll(), select(), read() and write() functions. Typographical
fixes.


:revision: 0.21 / 2006-12-19 (*mhs*)

Fixed a link in the VIDIOC_G_EXT_CTRLS section.


:revision: 0.20 / 2006-11-24 (*mhs*)

Clarified the purpose of the audioset field in struct v4l2_input and
v4l2_output.


:revision: 0.19 / 2006-10-19 (*mhs*)

Documented V4L2_PIX_FMT_RGB444.


:revision: 0.18 / 2006-10-18 (*mhs*)

Added the description of extended controls by Hans Verkuil. Linked
V4L2_PIX_FMT_MPEG to V4L2_CID_MPEG_STREAM_TYPE.


:revision: 0.17 / 2006-10-12 (*mhs*)

Corrected V4L2_PIX_FMT_HM12 description.


:revision: 0.16 / 2006-10-08 (*mhs*)

VIDIOC_ENUM_FRAMESIZES and VIDIOC_ENUM_FRAMEINTERVALS are now part
of the API.


:revision: 0.15 / 2006-09-23 (*mhs*)

Cleaned up the bibliography, added BT.653 and BT.1119.
capture.c/start_capturing() for user pointer I/O did not initialize the
buffer index. Documented the V4L MPEG and MJPEG VID_TYPEs and
V4L2_PIX_FMT_SBGGR8. Updated the list of reserved pixel formats. See
the history chapter for API changes.

개정 이력: 0.14~0.1

336-413
V4L2 초기 개정 이력 2002~2006
개정날짜변경 사항
0.142006-09-14디지털 장치의 프레임 형식 열거를 위한 프레임 크기·간격 ioctl 제안을 추가했습니다.
0.132006-04-07v4l2_window clip 설명을 수정하고 새 표준·튜너 언어 모드 정의를 추가했습니다.
0.122006-02-03v4l2_captureparm과 v4l2_outputparm 설명을 수정했습니다.
0.112006-01-27v4l2_tuner 설명을 개선했습니다.
0.102006-01-10VIDIOC_G_INPUT과 VIDIOC_S_PARM을 명확히 했습니다.
0.92005-11-27525줄 번호 도식을 개선하고 sliced VBI 절과 상태 로그 페이지를 보강했으며 표준 선택 예제를 수정했습니다.
0.82004-10-04캡처 예제에 섞인 불필요한 내용을 제거했습니다.
0.72004-09-19비디오 표준 선택·제어 열거·축소·화면비 예제를 수정하고 read 및 USERPTR 캡처 예제를 추가했습니다.
0.62004-08-01v4l2_buffer를 변경하고 비디오 캡처 예제와 여러 수정을 추가했습니다.
0.52003-11-05픽셀 형식 정오표를 반영했습니다.
0.42003-09-17PDF 생성 소스와 Makefile, SGML을 수정하고 최신 API 변경과 역사 장의 누락을 보완했습니다.
0.32003-02-05추가 수정이 포함된 새 초안을 냈습니다.
0.22003-01-15Gerd Knorr가 지적한 내용을 반영한 두 번째 초안입니다.
0.12002-12-01Bill Dirks의 문서와 V4L 메일링 리스트 논의를 바탕으로 한 첫 초안입니다.

초기 초안부터 디지털 장치 형식 열거 제안까지의 기록입니다.

:revision: 0.14 / 2006-09-14 (*mr*)

Added VIDIOC_ENUM_FRAMESIZES and VIDIOC_ENUM_FRAMEINTERVALS proposal
for frame format enumeration of digital devices.


:revision: 0.13 / 2006-04-07 (*mhs*)

Corrected the description of struct v4l2_window clips. New V4L2_STD\_
and V4L2_TUNER_MODE_LANG1_LANG2 defines.


:revision: 0.12 / 2006-02-03 (*mhs*)

Corrected the description of struct v4l2_captureparm and
v4l2_outputparm.


:revision: 0.11 / 2006-01-27 (*mhs*)

Improved the description of struct v4l2_tuner.


:revision: 0.10 / 2006-01-10 (*mhs*)

VIDIOC_G_INPUT and VIDIOC_S_PARM clarifications.


:revision: 0.9 / 2005-11-27 (*mhs*)

Improved the 525 line numbering diagram. Hans Verkuil and I rewrote the
sliced VBI section. He also contributed a VIDIOC_LOG_STATUS page.
Fixed VIDIOC_S_STD call in the video standard selection example.
Various updates.


:revision: 0.8 / 2004-10-04 (*mhs*)

Somehow a piece of junk slipped into the capture example, removed.


:revision: 0.7 / 2004-09-19 (*mhs*)

Fixed video standard selection, control enumeration, downscaling and
aspect example. Added read and user pointer i/o to video capture
example.


:revision: 0.6 / 2004-08-01 (*mhs*)

v4l2_buffer changes, added video capture example, various corrections.


:revision: 0.5 / 2003-11-05 (*mhs*)

Pixel format erratum.


:revision: 0.4 / 2003-09-17 (*mhs*)

Corrected source and Makefile to generate a PDF. SGML fixes. Added
latest API changes. Closed gaps in the history chapter.


:revision: 0.3 / 2003-02-05 (*mhs*)

Another draft, more corrections.


:revision: 0.2 / 2003-01-15 (*mhs*)

Second draft, with corrections pointed out by Gerd Knorr.


:revision: 0.1 / 2002-12-01 (*mhs*)

First draft, based on documentation by Bill Dirks and discussions on the
V4L mailing list.