Lines Matching +full:video +full:- +full:interface
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
4 .. _hist-v4l2:
21 1998-08-20: First version.
23 1998-08-27: The :c:func:`select()` function was introduced.
25 1998-09-10: New video standard interface.
27 1998-09-18: The ``VIDIOC_NONCAP`` ioctl was replaced by the otherwise
36 1998-09-28: Revamped video standard. Made video controls individually
39 1998-10-02: The ``id`` field was removed from
47 1998-11-08: Many minor changes. Most symbols have been renamed. Some
50 1998-11-12: The read/write direction of some ioctls was misdefined.
52 1998-11-14: ``V4L2_PIX_FMT_RGB24`` changed to ``V4L2_PIX_FMT_BGR24``,
61 1998-11-28: A few ioctl symbols changed. Interfaces for codecs and video
64 1999-01-14: A raw VBI capture interface was added.
66 1999-01-19: The ``VIDIOC_NEXTBUF`` ioctl was removed.
68 V4L2 Version 0.16 1999-01-31
71 1999-01-27: There is now one QBUF ioctl, VIDIOC_QWBUF and VIDIOC_QRBUF
75 V4L2 Version 0.18 1999-03-16
82 V4L2 Version 0.19 1999-06-05
85 1999-03-18: Fill in the category and catname fields of v4l2_queryctrl
89 1999-03-31: Better compatibility for v4l memory capture ioctls. Requires
95 1999-04-04: Added a few more control IDs.
97 1999-04-07: Added the button control type.
99 1999-05-02: Fixed a typo in videodev.h, and added the
102 1999-05-20: Definition of VIDIOC_G_CTRL was wrong causing a
105 1999-06-05: Changed the value of V4L2_CID_WHITENESS.
107 V4L2 Version 0.20 (1999-09-10)
116 was changed for compatibility with v4l. (1999-08-30)
118 2. ``V4L2_TUNER_SUB_LANG1`` was added. (1999-09-05)
127 .. code-block:: c
133 .. code-block:: c
137 4. All the different get- and set-format commands were swept into one
177 signed 64-bit integer. Output devices should not send a buffer out
183 64-bit signed integers (not struct timeval's) and given in nanosecond
187 Linux time-of-day clock can be changed periodically, which would
191 timestamp field to a 64-bit integer, and I will change the
193 return a 64-bit integer.
202 1999-12-23: In struct v4l2_vbi_format the
206 2000-01-13: The ``V4L2_FMT_FLAG_NOT_INTERLACED`` flag was added.
208 2000-07-31: The ``linux/poll.h`` header is now included by
211 2000-11-20: ``V4L2_TYPE_VBI_OUTPUT`` and ``V4L2_PIX_FMT_Y41P`` were
214 2000-11-25: ``V4L2_TYPE_VBI_INPUT`` was added.
216 2000-12-04: A couple typos in symbol names were fixed.
218 2001-01-18: To avoid namespace conflicts the ``fourcc`` macro defined in
221 2001-01-25: A possible driver-level compatibility problem between the
227 2001-01-26: A possible kernel-level incompatibility between the
231 2001-03-02: Certain V4L ioctls which pass data in both direction
232 although they are defined with read-only parameter, did not work
235 2001-04-13: Big endian 16-bit RGB formats were added.
237 2001-09-17: New YUV formats and the
243 2000-09-18: ``V4L2_BUF_TYPE_VBI`` was added. This may *break
251 V4L2 Version 0.20 2000-11-23
254 A number of changes were made to the raw VBI interface.
261 numbering scheme. We now use line number as defined by ITU-R, period.
286 V4L2 Version 0.20 2002-07-25
289 Added sliced VBI interface proposal.
291 V4L2 in Linux 2.5.46, 2002-10
294 Around October-November 2002, prior to an announced feature freeze of
330 :ref:`video` and :ref:`audio`.
346 Instead of linking one video input to one audio input this field
347 reports all audio inputs this video input combines with.
350 video inputs), ``std`` and ``status``.
369 tuners. The link between video inputs and tuners is now reversed,
383 7. The idea of completely transparent video standards was dropped.
384 Experience showed that applications must be able to work with video
387 standards by :ref:`v4l2_std_id <v4l2-std-id>` and symbols
396 :ref:`v4l2_std_id <v4l2-std-id>` field named ``id`` was added as
406 information which standards are supported by a particular video
411 8. The struct :ref:`v4l2_queryctrl <v4l2-queryctrl>` fields
424 and ``VIDIOC_S_WIN`` ioctls to prepare for a video overlay were
429 .. flat-table::
430 :header-rows: 1
431 :stub-columns: 0
433 * - Old defines
434 - enum v4l2_buf_type
435 * - ``V4L2_BUF_TYPE_CAPTURE``
436 - ``V4L2_BUF_TYPE_VIDEO_CAPTURE``
437 * - ``V4L2_BUF_TYPE_CODECIN``
438 - Omitted for now
439 * - ``V4L2_BUF_TYPE_CODECOUT``
440 - Omitted for now
441 * - ``V4L2_BUF_TYPE_EFFECTSIN``
442 - Omitted for now
443 * - ``V4L2_BUF_TYPE_EFFECTSIN2``
444 - Omitted for now
445 * - ``V4L2_BUF_TYPE_EFFECTSOUT``
446 - Omitted for now
447 * - ``V4L2_BUF_TYPE_VIDEOOUT``
448 - ``V4L2_BUF_TYPE_VIDEO_OUTPUT``
449 * - ``-``
450 - ``V4L2_BUF_TYPE_VIDEO_OVERLAY``
451 * - ``-``
452 - ``V4L2_BUF_TYPE_VBI_CAPTURE``
453 * - ``-``
454 - ``V4L2_BUF_TYPE_VBI_OUTPUT``
455 * - ``-``
456 - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE``
457 * - ``-``
458 - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``
459 * - ``V4L2_BUF_TYPE_PRIVATE_BASE``
460 - ``V4L2_BUF_TYPE_PRIVATE`` (but this is deprecated)
469 by its four-character-code already know the color depth, and others
483 .. flat-table::
484 :header-rows: 1
485 :stub-columns: 0
487 * - Old flag
488 - enum v4l2_field
489 * - ``V4L2_FMT_FLAG_NOT_INTERLACED``
490 - ?
491 * - ``V4L2_FMT_FLAG_INTERLACED`` = ``V4L2_FMT_FLAG_COMBINED``
492 - ``V4L2_FIELD_INTERLACED``
493 * - ``V4L2_FMT_FLAG_TOPFIELD`` = ``V4L2_FMT_FLAG_ODDFIELD``
494 - ``V4L2_FIELD_TOP``
495 * - ``V4L2_FMT_FLAG_BOTFIELD`` = ``V4L2_FMT_FLAG_EVENFIELD``
496 - ``V4L2_FIELD_BOTTOM``
497 * - ``-``
498 - ``V4L2_FIELD_SEQ_TB``
499 * - ``-``
500 - ``V4L2_FIELD_SEQ_BT``
501 * - ``-``
502 - ``V4L2_FIELD_ALTERNATE``
534 indeed allocated in device memory rather than DMA-able system
538 ``base[3]`` array anticipating double- and triple-buffering in
539 off-screen video memory, however without defining a synchronization
543 using the new cropping and scaling interface. The
559 17. The digital zoom interface, including struct ``v4l2_zoomcap``,
562 scaling interface. The previously unused
567 ``SAMPLE_FORMAT`` field now contains a four-character-code as used
568 to identify video image formats and ``V4L2_PIX_FMT_GREY`` replaces
575 expression of multiples of the NTSC-M frame rate 30000 / 1001. A new
590 V4L2 2003-06-19
598 :ref:`app-pri` for details.
600 3. The audio input and output interface was found to be incomplete.
604 current audio input, if more than one combines with the current video
621 defined with write-read parameter. It was changed to write-only,
622 while the write-read version was renamed to ``VIDIOC_OVERLAY_OLD``.
628 regions where the video can be seen. Correct is that clipping
629 rectangles define regions where *no* video shall be displayed and so
634 write-only parameter, inconsistent with other ioctls modifying their
635 argument. They were changed to write-read, while a ``_OLD`` suffix
636 was added to the write-only versions. The old ioctls were removed on
640 V4L2 2003-11-05
643 1. In :ref:`pixfmt-rgb` the following pixel formats were incorrectly
648 .. flat-table::
649 :header-rows: 1
650 :stub-columns: 0
652 * - Symbol
653 - In this document prior to revision 0.5
654 - Corrected
655 * - ``V4L2_PIX_FMT_RGB24``
656 - B, G, R
657 - R, G, B
658 * - ``V4L2_PIX_FMT_BGR24``
659 - R, G, B
660 - B, G, R
661 * - ``V4L2_PIX_FMT_RGB32``
662 - B, G, R, X
663 - R, G, B, X
664 * - ``V4L2_PIX_FMT_BGR32``
665 - R, G, B, X
666 - B, G, R, X
670 In :ref:`v4l-image-properties` the mapping of the V4L
676 for details see :ref:`pixfmt-rgb`.
678 V4L2 in Linux 2.6.6, 2004-05-09
682 defined with read-only parameter. It is now defined as write-read
683 ioctl, while the read-only version was renamed to
691 field is to alternate between video inputs (e. g. cameras) in step
692 with the video capturing process. This function must be enabled with
694 longer read-only.
696 V4L2 spec erratum 2004-08-01
699 1. The return value of the :ref:`func-open` function was incorrectly
702 2. Audio output ioctls end in -AUDOUT, not -AUDIOOUT.
716 1. A new sliced VBI interface was added. It is documented in
717 :ref:`sliced` and replaces the interface first proposed in V4L2
725 2. New video standards ``V4L2_STD_NTSC_443``, ``V4L2_STD_SECAM_LC``,
730 :ref:`v4l2-std-id`.
739 V4L2 spec erratum 2005-11-27
742 The capture example in :ref:`capture-example` called the
744 cropping is supported. In the video standard selection example in
748 V4L2 spec erratum 2006-01-10
754 in the video signal to improve the image quality.)
756 2. :ref:`VIDIOC_S_PARM <VIDIOC_G_PARM>` is a write-read ioctl, not
757 write-only as stated on its reference page. The ioctl changed in 2003
760 V4L2 spec erratum 2006-02-03
766 V4L2 spec erratum 2006-02-04
777 1. New video standard macros were added: ``V4L2_STD_NTSC_M_KR`` (NTSC M
788 V4L2 spec erratum 2006-09-23 (Draft 0.15)
792 ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT`` of the sliced VBI interface were
809 6. In :ref:`output` and :ref:`raw-vbi` the device file names
810 ``/dev/vout`` which never caught on were replaced by ``/dev/video``.
813 extended from 224-239 to 224-255. Accordingly device file names
828 (:ref:`control-flags`). See :ref:`extended-controls` for details.
838 was redefined from being read-only to write-read. Applications must
848 3. A new pixel format ``V4L2_PIX_FMT_RGB444`` (:ref:`pixfmt-rgb`) was
851 V4L2 spec erratum 2006-10-12 (Draft 0.17)
854 1. ``V4L2_PIX_FMT_HM12`` (:ref:`reserved-formats`) is a YUV 4:2:0, not
861 General Public License version two or later, and under a 3-clause
862 BSD-style license.
872 inverted local alpha value were added to the video overlay interface.
898 1. The pixel formats :ref:`V4L2_PIX_FMT_Y16 <V4L2-PIX-FMT-Y16>` and
899 :ref:`V4L2_PIX_FMT_SBGGR16 <V4L2-PIX-FMT-SBGGR16>` were added.
907 3. A :ref:`Camera controls class <camera-controls>` was added, with
917 were superseded by the :ref:`extended controls <extended-controls>`
918 interface in Linux 2.6.18, where finally removed from the
947 2. Added ``V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC`` MPEG video encoding.
1003 1. Added support for Digital Video timings in order to support HDTV
1010 controls to the :ref:`Camera controls class <camera-controls>`.
1025 2. Multi-planar API added. Does not affect the compatibility of current
1026 drivers and applications. See :ref:`multi-planar API <planar-apis>`
1032 1. VIDIOC_QUERYCAP now returns a per-subsystem version instead of a
1033 per-driver one.
1047 applications. See :ref:`selection API <selection-api>` for details.
1061 1. Added :ref:`JPEG compression control class <jpeg-controls>`.
1074 2. Added selection API for V4L2 subdev interface:
1110 struct v4l2_buffer. See :ref:`buffer-flags`.
1113 :ref:`ctrl-changes-flags`.
1140 1. Added Software Defined Radio (SDR) Interface.
1177 3. Added transmitter support for Software Defined Radio (SDR) Interface.
1186 X Video Extension
1187 -----------------
1189 The X Video Extension (abbreviated XVideo or just Xv) is an extension of
1191 scope is similar to V4L2, an API to video capture and output devices for
1192 X clients. Xv allows applications to display live video in a window,
1198 advantages over the V4L2 :ref:`video overlay interface <overlay>`. The
1200 memory or off-screen buffers for a destructive overlay. It can program
1201 the RAMDAC for a non-destructive overlay, scaling or color-keying, or
1202 the clipping functions of the video capture hardware, always in sync
1219 backward-compatibility layer. Since V4L2 permits multiple opens it is
1220 possible (if supported by the V4L2 driver) to capture video while an X
1221 client requested video overlay. Restrictions of simultaneous capturing
1225 YUV to RGB conversion and scaling for faster video playback, and added
1226 an interface to MPEG-2 decoding hardware. This API is useful to display
1229 Digital Video
1230 -------------
1239 ----------------
1241 [to do - OSS/ALSA]
1251 - :ref:`VIDIOC_DBG_G_REGISTER` and
1254 - :ref:`VIDIOC_DBG_G_CHIP_INFO` ioctl.
1264 - ``VIDIOC_G_MPEGCOMP`` and ``VIDIOC_S_MPEGCOMP`` ioctls. Use Extended
1265 Controls, :ref:`extended-controls`.
1267 - VIDIOC_G_DV_PRESET, VIDIOC_S_DV_PRESET,
1269 the DV Timings API (:ref:`dv-timings`).
1271 - ``VIDIOC_SUBDEV_G_CROP`` and ``VIDIOC_SUBDEV_S_CROP`` ioctls. Use