162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci.. _common:
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci###################
662306a36Sopenharmony_ciCommon API Elements
762306a36Sopenharmony_ci###################
862306a36Sopenharmony_ciProgramming a V4L2 device consists of these steps:
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci-  Opening the device
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci-  Changing device properties, selecting a video and audio input, video
1362306a36Sopenharmony_ci   standard, picture brightness a. o.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci-  Negotiating a data format
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci-  Negotiating an input/output method
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci-  The actual input/output loop
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci-  Closing the device
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciIn practice most steps are optional and can be executed out of order. It
2462306a36Sopenharmony_cidepends on the V4L2 device type, you can read about the details in
2562306a36Sopenharmony_ci:ref:`devices`. In this chapter we will discuss the basic concepts
2662306a36Sopenharmony_ciapplicable to all devices.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci.. toctree::
3062306a36Sopenharmony_ci    :maxdepth: 1
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci    open
3362306a36Sopenharmony_ci    querycap
3462306a36Sopenharmony_ci    app-pri
3562306a36Sopenharmony_ci    video
3662306a36Sopenharmony_ci    audio
3762306a36Sopenharmony_ci    tuner
3862306a36Sopenharmony_ci    standard
3962306a36Sopenharmony_ci    dv-timings
4062306a36Sopenharmony_ci    control
4162306a36Sopenharmony_ci    extended-controls
4262306a36Sopenharmony_ci    ext-ctrls-camera
4362306a36Sopenharmony_ci    ext-ctrls-flash
4462306a36Sopenharmony_ci    ext-ctrls-image-source
4562306a36Sopenharmony_ci    ext-ctrls-image-process
4662306a36Sopenharmony_ci    ext-ctrls-codec
4762306a36Sopenharmony_ci    ext-ctrls-codec-stateless
4862306a36Sopenharmony_ci    ext-ctrls-jpeg
4962306a36Sopenharmony_ci    ext-ctrls-dv
5062306a36Sopenharmony_ci    ext-ctrls-rf-tuner
5162306a36Sopenharmony_ci    ext-ctrls-fm-tx
5262306a36Sopenharmony_ci    ext-ctrls-fm-rx
5362306a36Sopenharmony_ci    ext-ctrls-detect
5462306a36Sopenharmony_ci    ext-ctrls-colorimetry
5562306a36Sopenharmony_ci    fourcc
5662306a36Sopenharmony_ci    format
5762306a36Sopenharmony_ci    planar-apis
5862306a36Sopenharmony_ci    selection-api
5962306a36Sopenharmony_ci    crop
6062306a36Sopenharmony_ci    streaming-par
61