mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
3.5 KiB
124 lines
3.5 KiB
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
|
.. c:namespace:: V4L |
|
|
|
.. _VIDIOC_G_AUDIO: |
|
|
|
************************************ |
|
ioctl VIDIOC_G_AUDIO, VIDIOC_S_AUDIO |
|
************************************ |
|
|
|
Name |
|
==== |
|
|
|
VIDIOC_G_AUDIO - VIDIOC_S_AUDIO - Query or select the current audio input and its attributes |
|
|
|
Synopsis |
|
======== |
|
|
|
.. c:macro:: VIDIOC_G_AUDIO |
|
|
|
``int ioctl(int fd, VIDIOC_G_AUDIO, struct v4l2_audio *argp)`` |
|
|
|
.. c:macro:: VIDIOC_S_AUDIO |
|
|
|
``int ioctl(int fd, VIDIOC_S_AUDIO, const struct v4l2_audio *argp)`` |
|
|
|
Arguments |
|
========= |
|
|
|
``fd`` |
|
File descriptor returned by :c:func:`open()`. |
|
|
|
``argp`` |
|
Pointer to struct :c:type:`v4l2_audio`. |
|
|
|
Description |
|
=========== |
|
|
|
To query the current audio input applications zero out the ``reserved`` |
|
array of a struct :c:type:`v4l2_audio` and call the |
|
:ref:`VIDIOC_G_AUDIO <VIDIOC_G_AUDIO>` ioctl with a pointer to this structure. Drivers fill |
|
the rest of the structure or return an ``EINVAL`` error code when the device |
|
has no audio inputs, or none which combine with the current video input. |
|
|
|
Audio inputs have one writable property, the audio mode. To select the |
|
current audio input *and* change the audio mode, applications initialize |
|
the ``index`` and ``mode`` fields, and the ``reserved`` array of a |
|
struct :c:type:`v4l2_audio` structure and call the :ref:`VIDIOC_S_AUDIO <VIDIOC_G_AUDIO>` |
|
ioctl. Drivers may switch to a different audio mode if the request |
|
cannot be satisfied. However, this is a write-only ioctl, it does not |
|
return the actual new audio mode. |
|
|
|
.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.5cm}| |
|
|
|
.. c:type:: v4l2_audio |
|
|
|
.. flat-table:: struct v4l2_audio |
|
:header-rows: 0 |
|
:stub-columns: 0 |
|
:widths: 1 1 2 |
|
|
|
* - __u32 |
|
- ``index`` |
|
- Identifies the audio input, set by the driver or application. |
|
* - __u8 |
|
- ``name``\ [32] |
|
- Name of the audio input, a NUL-terminated ASCII string, for |
|
example: "Line In". This information is intended for the user, |
|
preferably the connector label on the device itself. |
|
* - __u32 |
|
- ``capability`` |
|
- Audio capability flags, see :ref:`audio-capability`. |
|
* - __u32 |
|
- ``mode`` |
|
- Audio mode flags set by drivers and applications (on |
|
:ref:`VIDIOC_S_AUDIO <VIDIOC_G_AUDIO>` ioctl), see :ref:`audio-mode`. |
|
* - __u32 |
|
- ``reserved``\ [2] |
|
- Reserved for future extensions. Drivers and applications must set |
|
the array to zero. |
|
|
|
|
|
.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.5cm}| |
|
|
|
.. _audio-capability: |
|
|
|
.. flat-table:: Audio Capability Flags |
|
:header-rows: 0 |
|
:stub-columns: 0 |
|
:widths: 3 1 4 |
|
|
|
* - ``V4L2_AUDCAP_STEREO`` |
|
- 0x00001 |
|
- This is a stereo input. The flag is intended to automatically |
|
disable stereo recording etc. when the signal is always monaural. |
|
The API provides no means to detect if stereo is *received*, |
|
unless the audio input belongs to a tuner. |
|
* - ``V4L2_AUDCAP_AVL`` |
|
- 0x00002 |
|
- Automatic Volume Level mode is supported. |
|
|
|
|
|
.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.5cm}| |
|
|
|
.. _audio-mode: |
|
|
|
.. flat-table:: Audio Mode Flags |
|
:header-rows: 0 |
|
:stub-columns: 0 |
|
:widths: 3 1 4 |
|
|
|
* - ``V4L2_AUDMODE_AVL`` |
|
- 0x00001 |
|
- AVL mode is on. |
|
|
|
Return Value |
|
============ |
|
|
|
On success 0 is returned, on error -1 and the ``errno`` variable is set |
|
appropriately. The generic error codes are described at the |
|
:ref:`Generic Error Codes <gen-errors>` chapter. |
|
|
|
EINVAL |
|
No audio inputs combine with the current video input, or the number |
|
of the selected audio input is out of bounds or it does not combine.
|
|
|