Documentation/userspace-api/media/v4l/hist-v4l2.rst

Source file repositories/reference/linux-study-clean/Documentation/userspace-api/media/v4l/hist-v4l2.rst

File Facts

System
Linux kernel
Corpus path
Documentation/userspace-api/media/v4l/hist-v4l2.rst
Extension
.rst
Size
49307 bytes
Lines
1277
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

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

.. _hist-v4l2:

***********************
Changes of the V4L2 API
***********************

Soon after the V4L API was added to the kernel it was criticised as too
inflexible. In August 1998 Bill Dirks proposed a number of improvements
and began to work on documentation, example drivers and applications.
With the help of other volunteers this eventually became the V4L2 API,
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 :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`` :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``
identifiers are now ordinals instead of flags, and the
``video_std_construct()`` helper function takes id and
transmission arguments.

1998-09-28: Revamped video standard. Made video controls individually
enumerable.

1998-10-02: The ``id`` field was removed from
struct ``video_standard`` and the color subcarrier fields were
renamed. The :ref:`VIDIOC_QUERYSTD` ioctl was
renamed to :ref:`VIDIOC_ENUMSTD`,
:ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` to
:ref:`VIDIOC_ENUMINPUT`. A first draft of the
Codec API was released.

1998-11-08: Many minor changes. Most symbols have been renamed. Some
material changes to struct v4l2_capability.

1998-11-12: The read/write direction of some ioctls was misdefined.

1998-11-14: ``V4L2_PIX_FMT_RGB24`` changed to ``V4L2_PIX_FMT_BGR24``,
and ``V4L2_PIX_FMT_RGB32`` changed to ``V4L2_PIX_FMT_BGR32``. Audio
controls are now accessible with the
:ref:`VIDIOC_G_CTRL <VIDIOC_G_CTRL>` and
:ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>` ioctls under names starting
with ``V4L2_CID_AUDIO``. The ``V4L2_MAJOR`` define was removed from
``videodev.h`` since it was only used once in the ``videodev`` kernel
module. The ``YUV422`` and ``YUV411`` planar image formats were added.

1998-11-28: A few ioctl symbols changed. Interfaces for codecs and video
output devices were added.

1999-01-14: A raw VBI capture interface was added.

1999-01-19: The ``VIDIOC_NEXTBUF`` ioctl was removed.

V4L2 Version 0.16 1999-01-31
============================

Annotation

Implementation Notes