blob: d16ecbaddc5985a7e8db2c4f7755dbe63623569a [file] [log] [blame]
Markus Heiser5377d912016-06-30 15:18:56 +02001.. -*- coding: utf-8; mode: rst -*-
2
Mauro Carvalho Chehab9f97b302016-07-07 11:05:38 -03003.. _VIDIOC_G_AUDOUT:
Markus Heiser5377d912016-06-30 15:18:56 +02004
5**************************************
6ioctl VIDIOC_G_AUDOUT, VIDIOC_S_AUDOUT
7**************************************
8
Mauro Carvalho Chehab15e7d612016-07-05 15:14:35 -03009Name
Mauro Carvalho Chehab586027c2016-07-05 07:58:48 -030010====
Markus Heiser5377d912016-06-30 15:18:56 +020011
Mauro Carvalho Chehab586027c2016-07-05 07:58:48 -030012VIDIOC_G_AUDOUT - VIDIOC_S_AUDOUT - Query or select the current audio output
Markus Heiser5377d912016-06-30 15:18:56 +020013
Mauro Carvalho Chehab15e7d612016-07-05 15:14:35 -030014
15Synopsis
Markus Heiser5377d912016-06-30 15:18:56 +020016========
17
Mauro Carvalho Chehab41d80462016-08-19 16:53:38 -030018.. c:function:: int ioctl( int fd, VIDIOC_G_AUDOUT, struct v4l2_audioout *argp )
19 :name: VIDIOC_G_AUDOUT
Markus Heiser5377d912016-06-30 15:18:56 +020020
Mauro Carvalho Chehab41d80462016-08-19 16:53:38 -030021.. c:function:: int ioctl( int fd, VIDIOC_S_AUDOUT, const struct v4l2_audioout *argp )
22 :name: VIDIOC_S_AUDOUT
Markus Heiser5377d912016-06-30 15:18:56 +020023
Mauro Carvalho Chehab586027c2016-07-05 07:58:48 -030024
Mauro Carvalho Chehab15e7d612016-07-05 15:14:35 -030025Arguments
Markus Heiser5377d912016-06-30 15:18:56 +020026=========
27
28``fd``
29 File descriptor returned by :ref:`open() <func-open>`.
30
Markus Heiser5377d912016-06-30 15:18:56 +020031``argp``
32
33
Mauro Carvalho Chehab15e7d612016-07-05 15:14:35 -030034Description
Markus Heiser5377d912016-06-30 15:18:56 +020035===========
36
37To query the current audio output applications zero out the ``reserved``
Mauro Carvalho Chehabe8be7e92016-08-29 17:37:59 -030038array of a struct :c:type:`v4l2_audioout` and call the
Markus Heiser5377d912016-06-30 15:18:56 +020039``VIDIOC_G_AUDOUT`` ioctl with a pointer to this structure. Drivers fill
Mauro Carvalho Chehabcdb4af02016-07-03 11:53:09 -030040the rest of the structure or return an ``EINVAL`` error code when the device
Markus Heiser5377d912016-06-30 15:18:56 +020041has no audio inputs, or none which combine with the current video
42output.
43
44Audio outputs have no writable properties. Nevertheless, to select the
45current audio output applications can initialize the ``index`` field and
46``reserved`` array (which in the future may contain writable properties)
Mauro Carvalho Chehabfc78c7c2016-09-08 05:43:01 -030047of a struct :c:type:`v4l2_audioout` structure and call the
Markus Heiser5377d912016-06-30 15:18:56 +020048``VIDIOC_S_AUDOUT`` ioctl. Drivers switch to the requested output or
Mauro Carvalho Chehabcdb4af02016-07-03 11:53:09 -030049return the ``EINVAL`` error code when the index is out of bounds. This is a
Markus Heiser5377d912016-06-30 15:18:56 +020050write-only ioctl, it does not return the current audio output attributes
51as ``VIDIOC_G_AUDOUT`` does.
52
Mauro Carvalho Chehabb6b6e672016-08-15 17:49:50 -030053.. note::
54
55 Connectors on a TV card to loop back the received audio signal
Mauro Carvalho Chehab706f8a92016-07-10 11:57:43 -030056 to a sound card are not audio outputs in this sense.
Markus Heiser5377d912016-06-30 15:18:56 +020057
58
Mauro Carvalho Chehabe8be7e92016-08-29 17:37:59 -030059.. c:type:: v4l2_audioout
Markus Heiser5377d912016-06-30 15:18:56 +020060
Mauro Carvalho Chehab5bd4bb72016-08-17 08:14:19 -030061.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
62
Markus Heiser5377d912016-06-30 15:18:56 +020063.. flat-table:: struct v4l2_audioout
64 :header-rows: 0
65 :stub-columns: 0
66 :widths: 1 1 2
67
Laurent Pinchartc2b66ca2016-09-05 08:44:34 -030068 * - __u32
69 - ``index``
70 - Identifies the audio output, set by the driver or application.
71 * - __u8
72 - ``name``\ [32]
73 - Name of the audio output, a NUL-terminated ASCII string, for
74 example: "Line Out". This information is intended for the user,
75 preferably the connector label on the device itself.
76 * - __u32
77 - ``capability``
78 - Audio capability flags, none defined yet. Drivers must set this
79 field to zero.
80 * - __u32
81 - ``mode``
82 - Audio mode, none defined yet. Drivers and applications (on
83 ``VIDIOC_S_AUDOUT``) must set this field to zero.
84 * - __u32
85 - ``reserved``\ [2]
86 - Reserved for future extensions. Drivers and applications must set
87 the array to zero.
Markus Heiser5377d912016-06-30 15:18:56 +020088
89
Mauro Carvalho Chehab15e7d612016-07-05 15:14:35 -030090Return Value
Markus Heiser5377d912016-06-30 15:18:56 +020091============
92
93On success 0 is returned, on error -1 and the ``errno`` variable is set
94appropriately. The generic error codes are described at the
95:ref:`Generic Error Codes <gen-errors>` chapter.
96
97EINVAL
98 No audio outputs combine with the current video output, or the
99 number of the selected audio output is out of bounds or it does not
100 combine.