diff options
Diffstat (limited to 'Documentation/userspace-api/media/v4l/hist-v4l2.rst')
-rw-r--r-- | Documentation/userspace-api/media/v4l/hist-v4l2.rst | 70 |
1 files changed, 4 insertions, 66 deletions
diff --git a/Documentation/userspace-api/media/v4l/hist-v4l2.rst b/Documentation/userspace-api/media/v4l/hist-v4l2.rst index 1a4fd941f163..28a2750d5c8c 100644 --- a/Documentation/userspace-api/media/v4l/hist-v4l2.rst +++ b/Documentation/userspace-api/media/v4l/hist-v4l2.rst @@ -1,4 +1,5 @@ .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later +.. c:namespace:: V4L .. _hist-v4l2: @@ -14,18 +15,17 @@ not just an extension but a replacement for the V4L API. However it took another four years and two stable kernel releases until the new API was finally accepted for inclusion into the kernel in its present form. - Early Versions ============== 1998-08-20: First version. -1998-08-27: The :ref:`select() <func-select>` function was introduced. +1998-08-27: The :c:func:`select()` function was introduced. 1998-09-10: New video standard interface. 1998-09-18: The ``VIDIOC_NONCAP`` ioctl was replaced by the otherwise -meaningless ``O_TRUNC`` :ref:`open() <func-open>` flag, and the +meaningless ``O_TRUNC`` :c:func:`open()` flag, and the aliases ``O_NONCAP`` and ``O_NOIO`` were defined. Applications can set this flag if they intend to access controls only, as opposed to capture applications which need exclusive access. The ``VIDEO_STD_XXX`` @@ -65,7 +65,6 @@ output devices were added. 1999-01-19: The ``VIDIOC_NEXTBUF`` ioctl was removed. - V4L2 Version 0.16 1999-01-31 ============================ @@ -73,7 +72,6 @@ V4L2 Version 0.16 1999-01-31 are gone. VIDIOC_QBUF takes a v4l2_buffer as a parameter. Added digital zoom (cropping) controls. - V4L2 Version 0.18 1999-03-16 ============================ @@ -81,7 +79,6 @@ Added a v4l to V4L2 ioctl compatibility layer to videodev.c. Driver writers, this changes how you implement your ioctl handler. See the Driver Writer's Guide. Added some more control id codes. - V4L2 Version 0.19 1999-06-05 ============================ @@ -107,7 +104,6 @@ malfunction of this ioctl. 1999-06-05: Changed the value of V4L2_CID_WHITENESS. - V4L2 Version 0.20 (1999-09-10) ============================== @@ -128,14 +124,12 @@ common Linux driver API conventions. VIDIOC_STREAMON, VIDIOC_STREAMOFF, VIDIOC_S_FREQ, VIDIOC_S_INPUT, VIDIOC_S_OUTPUT, VIDIOC_S_EFFECT. For example - .. code-block:: c err = ioctl (fd, VIDIOC_XXX, V4L2_XXX); becomes - .. code-block:: c int a = V4L2_XXX; err = ioctl(fd, VIDIOC_XXX, &a); @@ -202,7 +196,6 @@ common Linux driver API conventions. field counts captured frames, it is ignored by output devices. When a capture driver drops a frame, the sequence number of that frame is skipped. - V4L2 Version 0.20 incremental changes ===================================== @@ -290,13 +283,11 @@ A number of changes were made to the raw VBI interface. were added. The former is an alias for the old ``V4L2_TYPE_VBI``, the latter was missing in the ``videodev.h`` file. - V4L2 Version 0.20 2002-07-25 ============================ Added sliced VBI interface proposal. - V4L2 in Linux 2.5.46, 2002-10 ============================= @@ -307,7 +298,7 @@ This unnamed version was finally merged into Linux 2.5.46. 1. As specified in :ref:`related`, drivers must make related device functions available under all minor device numbers. -2. The :ref:`open() <func-open>` function requires access mode +2. The :c:func:`open()` function requires access mode ``O_RDWR`` regardless of the device type. All V4L2 drivers exchanging data with applications must support the ``O_NONBLOCK`` flag. The ``O_NOIO`` flag, a V4L2 symbol which aliased the @@ -435,7 +426,6 @@ This unnamed version was finally merged into Linux 2.5.46. the buffer type names changed as follows. - .. flat-table:: :header-rows: 1 :stub-columns: 0 @@ -597,7 +587,6 @@ This unnamed version was finally merged into Linux 2.5.46. V4L2 documentation was inaccurate, this has been corrected in :ref:`pixfmt`. - V4L2 2003-06-19 =============== @@ -648,7 +637,6 @@ V4L2 2003-06-19 Kernel 2.6.39. Drivers and applications assuming a constant parameter need an update. - V4L2 2003-11-05 =============== @@ -657,7 +645,6 @@ V4L2 2003-11-05 refer to bytes in memory, in ascending address order. - .. flat-table:: :header-rows: 1 :stub-columns: 0 @@ -678,7 +665,6 @@ V4L2 2003-11-05 - R, G, B, X - B, G, R, X - The ``V4L2_PIX_FMT_BGR24`` example was always correct. In :ref:`v4l-image-properties` the mapping of the V4L @@ -689,7 +675,6 @@ V4L2 2003-11-05 RGB pixel formats differently. These issues have yet to be addressed, for details see :ref:`pixfmt-rgb`. - V4L2 in Linux 2.6.6, 2004-05-09 =============================== @@ -698,7 +683,6 @@ V4L2 in Linux 2.6.6, 2004-05-09 ioctl, while the read-only version was renamed to ``VIDIOC_CROPCAP_OLD``. The old ioctl was removed on Kernel 2.6.39. - V4L2 in Linux 2.6.8 =================== @@ -709,7 +693,6 @@ V4L2 in Linux 2.6.8 the new ``V4L2_BUF_FLAG_INPUT`` flag. The ``flags`` field is no longer read-only. - V4L2 spec erratum 2004-08-01 ============================ @@ -727,7 +710,6 @@ V4L2 spec erratum 2004-08-01 also missing from examples. Also on the ``VIDIOC_DQBUF`` page the ``EIO`` error code was not documented. - V4L2 in Linux 2.6.14 ==================== @@ -735,7 +717,6 @@ V4L2 in Linux 2.6.14 :ref:`sliced` and replaces the interface first proposed in V4L2 specification 0.8. - V4L2 in Linux 2.6.15 ==================== @@ -755,7 +736,6 @@ V4L2 in Linux 2.6.15 ``VIDIOC_G_MPEGCOMP`` and ``VIDIOC_S_MPEGCOMP`` ioctls where removed in Linux 2.6.25.) - V4L2 spec erratum 2005-11-27 ============================ @@ -765,7 +745,6 @@ cropping is supported. In the video standard selection example in :ref:`standard` the :ref:`VIDIOC_S_STD <VIDIOC_G_STD>` call used the wrong argument type. - V4L2 spec erratum 2006-01-10 ============================ @@ -778,14 +757,12 @@ V4L2 spec erratum 2006-01-10 write-only as stated on its reference page. The ioctl changed in 2003 as noted above. - V4L2 spec erratum 2006-02-03 ============================ 1. In struct v4l2_captureparm and struct v4l2_outputparm the ``timeperframe`` field gives the time in seconds, not microseconds. - V4L2 spec erratum 2006-02-04 ============================ @@ -808,7 +785,6 @@ V4L2 in Linux 2.6.17 ``V4L2_TUNER_MODE_STEREO`` for this purpose is deprecated now. See the :ref:`VIDIOC_G_TUNER <VIDIOC_G_TUNER>` section for details. - V4L2 spec erratum 2006-09-23 (Draft 0.15) ========================================= @@ -837,7 +813,6 @@ V4L2 spec erratum 2006-09-23 (Draft 0.15) extended from 224-239 to 224-255. Accordingly device file names ``/dev/vbi0`` to ``/dev/vbi31`` are possible now. - V4L2 in Linux 2.6.18 ==================== @@ -852,7 +827,6 @@ V4L2 in Linux 2.6.18 ``V4L2_CTRL_FLAG_INACTIVE`` and ``V4L2_CTRL_FLAG_SLIDER`` (:ref:`control-flags`). See :ref:`extended-controls` for details. - V4L2 in Linux 2.6.19 ==================== @@ -874,14 +848,12 @@ V4L2 in Linux 2.6.19 3. A new pixel format ``V4L2_PIX_FMT_RGB444`` (:ref:`pixfmt-rgb`) was added. - V4L2 spec erratum 2006-10-12 (Draft 0.17) ========================================= 1. ``V4L2_PIX_FMT_HM12`` (:ref:`reserved-formats`) is a YUV 4:2:0, not 4:2:2 format. - V4L2 in Linux 2.6.21 ==================== @@ -889,7 +861,6 @@ V4L2 in Linux 2.6.21 General Public License version two or later, and under a 3-clause BSD-style license. - V4L2 in Linux 2.6.22 ==================== @@ -914,7 +885,6 @@ V4L2 in Linux 2.6.22 This may **break compatibility** with existing applications. Drivers supporting the "host order RGB32" format are not known. - V4L2 in Linux 2.6.24 ==================== @@ -922,7 +892,6 @@ V4L2 in Linux 2.6.24 ``V4L2_PIX_FMT_YUV555``, ``V4L2_PIX_FMT_YUV565`` and ``V4L2_PIX_FMT_YUV32`` were added. - V4L2 in Linux 2.6.25 ==================== @@ -949,7 +918,6 @@ V4L2 in Linux 2.6.25 interface in Linux 2.6.18, where finally removed from the ``videodev2.h`` header file. - V4L2 in Linux 2.6.26 ==================== @@ -959,7 +927,6 @@ V4L2 in Linux 2.6.26 2. Added user controls ``V4L2_CID_CHROMA_AGC`` and ``V4L2_CID_COLOR_KILLER``. - V4L2 in Linux 2.6.27 ==================== @@ -971,7 +938,6 @@ V4L2 in Linux 2.6.27 ``V4L2_PIX_FMT_PCA561``, ``V4L2_PIX_FMT_SGBRG8``, ``V4L2_PIX_FMT_PAC207`` and ``V4L2_PIX_FMT_PJPG`` were added. - V4L2 in Linux 2.6.28 ==================== @@ -983,7 +949,6 @@ V4L2 in Linux 2.6.28 3. The pixel formats ``V4L2_PIX_FMT_SGRBG10`` and ``V4L2_PIX_FMT_SGRBG10DPCM8`` were added. - V4L2 in Linux 2.6.29 ==================== @@ -999,7 +964,6 @@ V4L2 in Linux 2.6.29 ``V4L2_CID_ZOOM_RELATIVE``, ``V4L2_CID_ZOOM_CONTINUOUS`` and ``V4L2_CID_PRIVACY``. - V4L2 in Linux 2.6.30 ==================== @@ -1007,7 +971,6 @@ V4L2 in Linux 2.6.30 2. New control ``V4L2_CID_COLORFX`` was added. - V4L2 in Linux 2.6.32 ==================== @@ -1034,21 +997,18 @@ V4L2 in Linux 2.6.32 9. Added Remote Controller chapter, describing the default Remote Controller mapping for media devices. - V4L2 in Linux 2.6.33 ==================== 1. Added support for Digital Video timings in order to support HDTV receivers and transmitters. - V4L2 in Linux 2.6.34 ==================== 1. Added ``V4L2_CID_IRIS_ABSOLUTE`` and ``V4L2_CID_IRIS_RELATIVE`` controls to the :ref:`Camera controls class <camera-controls>`. - V4L2 in Linux 2.6.37 ==================== @@ -1057,7 +1017,6 @@ V4L2 in Linux 2.6.37 applications found that used it. It was originally scheduled for removal in 2.6.35. - V4L2 in Linux 2.6.39 ==================== @@ -1067,7 +1026,6 @@ V4L2 in Linux 2.6.39 drivers and applications. See :ref:`multi-planar API <planar-apis>` for details. - V4L2 in Linux 3.1 ================= @@ -1078,7 +1036,6 @@ V4L2 in Linux 3.1 Added V4L2_CTRL_TYPE_BITMASK. - V4L2 in Linux 3.2 ================= @@ -1089,7 +1046,6 @@ V4L2 in Linux 3.2 Does not affect the compatibility of current drivers and applications. See :ref:`selection API <selection-api>` for details. - V4L2 in Linux 3.3 ================= @@ -1099,7 +1055,6 @@ V4L2 in Linux 3.3 2. Added the device_caps field to struct v4l2_capabilities and added the new V4L2_CAP_DEVICE_CAPS capability. - V4L2 in Linux 3.4 ================= @@ -1110,7 +1065,6 @@ V4L2 in Linux 3.4 :ref:`VIDIOC_QUERY_DV_TIMINGS` and :ref:`VIDIOC_DV_TIMINGS_CAP`. - V4L2 in Linux 3.5 ================= @@ -1137,7 +1091,6 @@ V4L2 in Linux 3.5 ``V4L2_CID_AUTO_FOCUS_START``, ``V4L2_CID_AUTO_FOCUS_STOP``, ``V4L2_CID_AUTO_FOCUS_STATUS`` and ``V4L2_CID_AUTO_FOCUS_RANGE``. - V4L2 in Linux 3.6 ================= @@ -1150,7 +1103,6 @@ V4L2 in Linux 3.6 3. Added support for frequency band enumerations: :ref:`VIDIOC_ENUM_FREQ_BANDS`. - V4L2 in Linux 3.9 ================= @@ -1160,7 +1112,6 @@ V4L2 in Linux 3.9 2. Added ``V4L2_EVENT_CTRL_CH_RANGE`` control event changes flag. See :ref:`ctrl-changes-flags`. - V4L2 in Linux 3.10 ================== @@ -1172,32 +1123,27 @@ V4L2 in Linux 3.10 2. Added new debugging ioctl :ref:`VIDIOC_DBG_G_CHIP_INFO`. - V4L2 in Linux 3.11 ================== 1. Remove obsolete ``VIDIOC_DBG_G_CHIP_IDENT`` ioctl. - V4L2 in Linux 3.14 ================== 1. In struct v4l2_rect, the type of ``width`` and ``height`` fields changed from _s32 to _u32. - V4L2 in Linux 3.15 ================== 1. Added Software Defined Radio (SDR) Interface. - V4L2 in Linux 3.16 ================== 1. Added event V4L2_EVENT_SOURCE_CHANGE. - V4L2 in Linux 3.17 ================== @@ -1207,14 +1153,12 @@ V4L2 in Linux 3.17 2. Added compound control types and :ref:`VIDIOC_QUERY_EXT_CTRL <VIDIOC_QUERYCTRL>`. - V4L2 in Linux 3.18 ================== 1. Added ``V4L2_CID_PAN_SPEED`` and ``V4L2_CID_TILT_SPEED`` camera controls. - V4L2 in Linux 3.19 ================== @@ -1232,13 +1176,11 @@ V4L2 in Linux 4.4 3. Added transmitter support for Software Defined Radio (SDR) Interface. - .. _other: Relation of V4L2 to other Linux multimedia APIs =============================================== - .. _xvideo: X Video Extension @@ -1284,7 +1226,6 @@ YUV to RGB conversion and scaling for faster video playback, and added an interface to MPEG-2 decoding hardware. This API is useful to display images captured with V4L2 devices. - Digital Video ------------- @@ -1294,13 +1235,11 @@ homepage at `https://linuxtv.org <https://linuxtv.org>`__. The Linux DVB API has no connection to the V4L2 API except that drivers for hybrid hardware may support both. - Audio Interfaces ---------------- [to do - OSS/ALSA] - .. _experimental: Experimental API Elements @@ -1314,7 +1253,6 @@ change in the future. - :ref:`VIDIOC_DBG_G_CHIP_INFO` ioctl. - .. _obsolete: Obsolete API Elements |