PipeWire: spa/param/audio/raw.h Source File

PipeWire 1.6.8

Loading...
Searching...
No Matches
raw.h
Go to the documentation of this file.
1/* Simple Plugin API */
2/* SPDX-FileCopyrightText: Copyright © 2018 Wim Taymans */
3/* SPDX-License-Identifier: MIT */
4
5#ifndef SPA_AUDIO_RAW_H
6#define SPA_AUDIO_RAW_H
7
8#include <stdint.h>
9
10#include <spa/utils/endian.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
20
21/* This is the max number of channels, changing this will change the
22 * size of some helper structures. This value should be at least 64 */
23#ifndef SPA_AUDIO_MAX_CHANNELS
24#define SPA_AUDIO_MAX_CHANNELS 64u
25#endif
26
27enum spa_audio_format {
28 SPA_AUDIO_FORMAT_UNKNOWN,
29 SPA_AUDIO_FORMAT_ENCODED,
30
31 /* interleaved formats */
32 SPA_AUDIO_FORMAT_START_Interleaved = 0x100,
33 SPA_AUDIO_FORMAT_S8,
34 SPA_AUDIO_FORMAT_U8,
35 SPA_AUDIO_FORMAT_S16_LE,
36 SPA_AUDIO_FORMAT_S16_BE,
37 SPA_AUDIO_FORMAT_U16_LE,
38 SPA_AUDIO_FORMAT_U16_BE,
39 SPA_AUDIO_FORMAT_S24_32_LE,
40 SPA_AUDIO_FORMAT_S24_32_BE,
41 SPA_AUDIO_FORMAT_U24_32_LE,
42 SPA_AUDIO_FORMAT_U24_32_BE,
43 SPA_AUDIO_FORMAT_S32_LE,
44 SPA_AUDIO_FORMAT_S32_BE,
45 SPA_AUDIO_FORMAT_U32_LE,
46 SPA_AUDIO_FORMAT_U32_BE,
47 SPA_AUDIO_FORMAT_S24_LE,
48 SPA_AUDIO_FORMAT_S24_BE,
49 SPA_AUDIO_FORMAT_U24_LE,
50 SPA_AUDIO_FORMAT_U24_BE,
51 SPA_AUDIO_FORMAT_S20_LE,
52 SPA_AUDIO_FORMAT_S20_BE,
53 SPA_AUDIO_FORMAT_U20_LE,
54 SPA_AUDIO_FORMAT_U20_BE,
55 SPA_AUDIO_FORMAT_S18_LE,
56 SPA_AUDIO_FORMAT_S18_BE,
57 SPA_AUDIO_FORMAT_U18_LE,
58 SPA_AUDIO_FORMAT_U18_BE,
59 SPA_AUDIO_FORMAT_F32_LE,
60 SPA_AUDIO_FORMAT_F32_BE,
61 SPA_AUDIO_FORMAT_F64_LE,
62 SPA_AUDIO_FORMAT_F64_BE,
63
64 SPA_AUDIO_FORMAT_ULAW,
65 SPA_AUDIO_FORMAT_ALAW,
66
67 /* planar formats */
68 SPA_AUDIO_FORMAT_START_Planar = 0x200,
69 SPA_AUDIO_FORMAT_U8P,
70 SPA_AUDIO_FORMAT_S16P,
71 SPA_AUDIO_FORMAT_S24_32P,
72 SPA_AUDIO_FORMAT_S32P,
73 SPA_AUDIO_FORMAT_S24P,
74 SPA_AUDIO_FORMAT_F32P,
75 SPA_AUDIO_FORMAT_F64P,
76 SPA_AUDIO_FORMAT_S8P,
77
78 /* other formats start here */
79 SPA_AUDIO_FORMAT_START_Other = 0x400,
80
81 /* Aliases */
82
83 /* DSP formats */
84 SPA_AUDIO_FORMAT_DSP_S32 = SPA_AUDIO_FORMAT_S24_32P,
85 SPA_AUDIO_FORMAT_DSP_F32 = SPA_AUDIO_FORMAT_F32P,
86 SPA_AUDIO_FORMAT_DSP_F64 = SPA_AUDIO_FORMAT_F64P,
87
88 /* native endian */
89#if __BYTE_ORDER == __BIG_ENDIAN
90 SPA_AUDIO_FORMAT_S16 = SPA_AUDIO_FORMAT_S16_BE,
91 SPA_AUDIO_FORMAT_U16 = SPA_AUDIO_FORMAT_U16_BE,
92 SPA_AUDIO_FORMAT_S24_32 = SPA_AUDIO_FORMAT_S24_32_BE,
93 SPA_AUDIO_FORMAT_U24_32 = SPA_AUDIO_FORMAT_U24_32_BE,
94 SPA_AUDIO_FORMAT_S32 = SPA_AUDIO_FORMAT_S32_BE,
95 SPA_AUDIO_FORMAT_U32 = SPA_AUDIO_FORMAT_U32_BE,
96 SPA_AUDIO_FORMAT_S24 = SPA_AUDIO_FORMAT_S24_BE,
97 SPA_AUDIO_FORMAT_U24 = SPA_AUDIO_FORMAT_U24_BE,
98 SPA_AUDIO_FORMAT_S20 = SPA_AUDIO_FORMAT_S20_BE,
99 SPA_AUDIO_FORMAT_U20 = SPA_AUDIO_FORMAT_U20_BE,
100 SPA_AUDIO_FORMAT_S18 = SPA_AUDIO_FORMAT_S18_BE,
101 SPA_AUDIO_FORMAT_U18 = SPA_AUDIO_FORMAT_U18_BE,
102 SPA_AUDIO_FORMAT_F32 = SPA_AUDIO_FORMAT_F32_BE,
103 SPA_AUDIO_FORMAT_F64 = SPA_AUDIO_FORMAT_F64_BE,
104 SPA_AUDIO_FORMAT_S16_OE = SPA_AUDIO_FORMAT_S16_LE,
105 SPA_AUDIO_FORMAT_U16_OE = SPA_AUDIO_FORMAT_U16_LE,
106 SPA_AUDIO_FORMAT_S24_32_OE = SPA_AUDIO_FORMAT_S24_32_LE,
107 SPA_AUDIO_FORMAT_U24_32_OE = SPA_AUDIO_FORMAT_U24_32_LE,
108 SPA_AUDIO_FORMAT_S32_OE = SPA_AUDIO_FORMAT_S32_LE,
109 SPA_AUDIO_FORMAT_U32_OE = SPA_AUDIO_FORMAT_U32_LE,
110 SPA_AUDIO_FORMAT_S24_OE = SPA_AUDIO_FORMAT_S24_LE,
111 SPA_AUDIO_FORMAT_U24_OE = SPA_AUDIO_FORMAT_U24_LE,
112 SPA_AUDIO_FORMAT_S20_OE = SPA_AUDIO_FORMAT_S20_LE,
113 SPA_AUDIO_FORMAT_U20_OE = SPA_AUDIO_FORMAT_U20_LE,
114 SPA_AUDIO_FORMAT_S18_OE = SPA_AUDIO_FORMAT_S18_LE,
115 SPA_AUDIO_FORMAT_U18_OE = SPA_AUDIO_FORMAT_U18_LE,
116 SPA_AUDIO_FORMAT_F32_OE = SPA_AUDIO_FORMAT_F32_LE,
117 SPA_AUDIO_FORMAT_F64_OE = SPA_AUDIO_FORMAT_F64_LE,
118#elif __BYTE_ORDER == __LITTLE_ENDIAN
119 SPA_AUDIO_FORMAT_S16 = SPA_AUDIO_FORMAT_S16_LE,
120 SPA_AUDIO_FORMAT_U16 = SPA_AUDIO_FORMAT_U16_LE,
121 SPA_AUDIO_FORMAT_S24_32 = SPA_AUDIO_FORMAT_S24_32_LE,
122 SPA_AUDIO_FORMAT_U24_32 = SPA_AUDIO_FORMAT_U24_32_LE,
123 SPA_AUDIO_FORMAT_S32 = SPA_AUDIO_FORMAT_S32_LE,
124 SPA_AUDIO_FORMAT_U32 = SPA_AUDIO_FORMAT_U32_LE,
125 SPA_AUDIO_FORMAT_S24 = SPA_AUDIO_FORMAT_S24_LE,
126 SPA_AUDIO_FORMAT_U24 = SPA_AUDIO_FORMAT_U24_LE,
127 SPA_AUDIO_FORMAT_S20 = SPA_AUDIO_FORMAT_S20_LE,
128 SPA_AUDIO_FORMAT_U20 = SPA_AUDIO_FORMAT_U20_LE,
129 SPA_AUDIO_FORMAT_S18 = SPA_AUDIO_FORMAT_S18_LE,
130 SPA_AUDIO_FORMAT_U18 = SPA_AUDIO_FORMAT_U18_LE,
131 SPA_AUDIO_FORMAT_F32 = SPA_AUDIO_FORMAT_F32_LE,
132 SPA_AUDIO_FORMAT_F64 = SPA_AUDIO_FORMAT_F64_LE,
133 SPA_AUDIO_FORMAT_S16_OE = SPA_AUDIO_FORMAT_S16_BE,
134 SPA_AUDIO_FORMAT_U16_OE = SPA_AUDIO_FORMAT_U16_BE,
135 SPA_AUDIO_FORMAT_S24_32_OE = SPA_AUDIO_FORMAT_S24_32_BE,
136 SPA_AUDIO_FORMAT_U24_32_OE = SPA_AUDIO_FORMAT_U24_32_BE,
137 SPA_AUDIO_FORMAT_S32_OE = SPA_AUDIO_FORMAT_S32_BE,
138 SPA_AUDIO_FORMAT_U32_OE = SPA_AUDIO_FORMAT_U32_BE,
139 SPA_AUDIO_FORMAT_S24_OE = SPA_AUDIO_FORMAT_S24_BE,
140 SPA_AUDIO_FORMAT_U24_OE = SPA_AUDIO_FORMAT_U24_BE,
141 SPA_AUDIO_FORMAT_S20_OE = SPA_AUDIO_FORMAT_S20_BE,
142 SPA_AUDIO_FORMAT_U20_OE = SPA_AUDIO_FORMAT_U20_BE,
143 SPA_AUDIO_FORMAT_S18_OE = SPA_AUDIO_FORMAT_S18_BE,
144 SPA_AUDIO_FORMAT_U18_OE = SPA_AUDIO_FORMAT_U18_BE,
145 SPA_AUDIO_FORMAT_F32_OE = SPA_AUDIO_FORMAT_F32_BE,
146 SPA_AUDIO_FORMAT_F64_OE = SPA_AUDIO_FORMAT_F64_BE,
147#endif
148};
149
150#define SPA_AUDIO_FORMAT_IS_INTERLEAVED(fmt) ((fmt) > SPA_AUDIO_FORMAT_START_Interleaved && (fmt) < SPA_AUDIO_FORMAT_START_Planar)
151#define SPA_AUDIO_FORMAT_IS_PLANAR(fmt) ((fmt) > SPA_AUDIO_FORMAT_START_Planar && (fmt) < SPA_AUDIO_FORMAT_START_Other)
152
153enum spa_audio_channel {
154 SPA_AUDIO_CHANNEL_UNKNOWN,
155 SPA_AUDIO_CHANNEL_NA,
156
157 SPA_AUDIO_CHANNEL_MONO,
158
160 SPA_AUDIO_CHANNEL_FL,
161 SPA_AUDIO_CHANNEL_FR,
162 SPA_AUDIO_CHANNEL_FC,
163 SPA_AUDIO_CHANNEL_LFE,
164 SPA_AUDIO_CHANNEL_SL,
165 SPA_AUDIO_CHANNEL_SR,
166 SPA_AUDIO_CHANNEL_FLC,
167 SPA_AUDIO_CHANNEL_FRC,
168 SPA_AUDIO_CHANNEL_RC,
169 SPA_AUDIO_CHANNEL_RL,
170 SPA_AUDIO_CHANNEL_RR,
171 SPA_AUDIO_CHANNEL_TC,
172 SPA_AUDIO_CHANNEL_TFL,
173 SPA_AUDIO_CHANNEL_TFC,
174 SPA_AUDIO_CHANNEL_TFR,
175 SPA_AUDIO_CHANNEL_TRL,
176 SPA_AUDIO_CHANNEL_TRC,
177 SPA_AUDIO_CHANNEL_TRR,
178 SPA_AUDIO_CHANNEL_RLC,
179 SPA_AUDIO_CHANNEL_RRC,
180 SPA_AUDIO_CHANNEL_FLW,
181 SPA_AUDIO_CHANNEL_FRW,
182 SPA_AUDIO_CHANNEL_LFE2,
183 SPA_AUDIO_CHANNEL_FLH,
184 SPA_AUDIO_CHANNEL_FCH,
185 SPA_AUDIO_CHANNEL_FRH,
186 SPA_AUDIO_CHANNEL_TFLC,
187 SPA_AUDIO_CHANNEL_TFRC,
188 SPA_AUDIO_CHANNEL_TSL,
189 SPA_AUDIO_CHANNEL_TSR,
190 SPA_AUDIO_CHANNEL_LLFE,
191 SPA_AUDIO_CHANNEL_RLFE,
192 SPA_AUDIO_CHANNEL_BC,
193 SPA_AUDIO_CHANNEL_BLC,
194 SPA_AUDIO_CHANNEL_BRC,
195
196 SPA_AUDIO_CHANNEL_START_Aux = 0x1000,
197 SPA_AUDIO_CHANNEL_AUX0 = SPA_AUDIO_CHANNEL_START_Aux,
198 SPA_AUDIO_CHANNEL_AUX1,
199 SPA_AUDIO_CHANNEL_AUX2,
200 SPA_AUDIO_CHANNEL_AUX3,
201 SPA_AUDIO_CHANNEL_AUX4,
202 SPA_AUDIO_CHANNEL_AUX5,
203 SPA_AUDIO_CHANNEL_AUX6,
204 SPA_AUDIO_CHANNEL_AUX7,
205 SPA_AUDIO_CHANNEL_AUX8,
206 SPA_AUDIO_CHANNEL_AUX9,
207 SPA_AUDIO_CHANNEL_AUX10,
208 SPA_AUDIO_CHANNEL_AUX11,
209 SPA_AUDIO_CHANNEL_AUX12,
210 SPA_AUDIO_CHANNEL_AUX13,
211 SPA_AUDIO_CHANNEL_AUX14,
212 SPA_AUDIO_CHANNEL_AUX15,
213 SPA_AUDIO_CHANNEL_AUX16,
214 SPA_AUDIO_CHANNEL_AUX17,
215 SPA_AUDIO_CHANNEL_AUX18,
216 SPA_AUDIO_CHANNEL_AUX19,
217 SPA_AUDIO_CHANNEL_AUX20,
218 SPA_AUDIO_CHANNEL_AUX21,
219 SPA_AUDIO_CHANNEL_AUX22,
220 SPA_AUDIO_CHANNEL_AUX23,
221 SPA_AUDIO_CHANNEL_AUX24,
222 SPA_AUDIO_CHANNEL_AUX25,
223 SPA_AUDIO_CHANNEL_AUX26,
224 SPA_AUDIO_CHANNEL_AUX27,
225 SPA_AUDIO_CHANNEL_AUX28,
226 SPA_AUDIO_CHANNEL_AUX29,
227 SPA_AUDIO_CHANNEL_AUX30,
228 SPA_AUDIO_CHANNEL_AUX31,
229 SPA_AUDIO_CHANNEL_AUX32,
230 SPA_AUDIO_CHANNEL_AUX33,
231 SPA_AUDIO_CHANNEL_AUX34,
232 SPA_AUDIO_CHANNEL_AUX35,
233 SPA_AUDIO_CHANNEL_AUX36,
234 SPA_AUDIO_CHANNEL_AUX37,
235 SPA_AUDIO_CHANNEL_AUX38,
236 SPA_AUDIO_CHANNEL_AUX39,
237 SPA_AUDIO_CHANNEL_AUX40,
238 SPA_AUDIO_CHANNEL_AUX41,
239 SPA_AUDIO_CHANNEL_AUX42,
240 SPA_AUDIO_CHANNEL_AUX43,
241 SPA_AUDIO_CHANNEL_AUX44,
242 SPA_AUDIO_CHANNEL_AUX45,
243 SPA_AUDIO_CHANNEL_AUX46,
244 SPA_AUDIO_CHANNEL_AUX47,
245 SPA_AUDIO_CHANNEL_AUX48,
246 SPA_AUDIO_CHANNEL_AUX49,
247 SPA_AUDIO_CHANNEL_AUX50,
248 SPA_AUDIO_CHANNEL_AUX51,
249 SPA_AUDIO_CHANNEL_AUX52,
250 SPA_AUDIO_CHANNEL_AUX53,
251 SPA_AUDIO_CHANNEL_AUX54,
252 SPA_AUDIO_CHANNEL_AUX55,
253 SPA_AUDIO_CHANNEL_AUX56,
254 SPA_AUDIO_CHANNEL_AUX57,
255 SPA_AUDIO_CHANNEL_AUX58,
256 SPA_AUDIO_CHANNEL_AUX59,
257 SPA_AUDIO_CHANNEL_AUX60,
258 SPA_AUDIO_CHANNEL_AUX61,
259 SPA_AUDIO_CHANNEL_AUX62,
260 SPA_AUDIO_CHANNEL_AUX63,
261
262 SPA_AUDIO_CHANNEL_LAST_Aux = 0x1fff,
263
264 SPA_AUDIO_CHANNEL_START_Custom = 0x10000,
265};
266
267#define SPA_AUDIO_CHANNEL_IS_AUX(ch) ((ch)>=SPA_AUDIO_CHANNEL_START_Aux && (ch)<=SPA_AUDIO_CHANNEL_LAST_Aux)
268
269enum spa_audio_volume_ramp_scale {
270 SPA_AUDIO_VOLUME_RAMP_INVALID,
271 SPA_AUDIO_VOLUME_RAMP_LINEAR,
272 SPA_AUDIO_VOLUME_RAMP_CUBIC,
273};
274
276#define SPA_AUDIO_FLAG_NONE (0) /*< no valid flag */
277#define SPA_AUDIO_FLAG_UNPOSITIONED (1 << 0) /*< the position array explicitly
278 * contains unpositioned channels. */
282struct spa_audio_info_raw {
283 enum spa_audio_format format; /*< format, one of enum spa_audio_format */
284 uint32_t flags; /*< extra flags */
285 uint32_t rate; /*< sample rate */
286 uint32_t channels; /*< number of channels. This can be more than SPA_AUDIO_MAX_CHANNELS
287 * and you may assume there is enough padding for the extra
288 * channel positions. */
289 uint32_t position[SPA_AUDIO_MAX_CHANNELS]; /*< channel position from enum spa_audio_channel */
290 /* padding follows here when channels > SPA_AUDIO_MAX_CHANNELS */
291};
292
293#define SPA_AUDIO_INFO_RAW_INIT(...) ((struct spa_audio_info_raw) { __VA_ARGS__ })
294
295#define SPA_AUDIO_INFO_RAW_MAX_POSITION(size) (((size)-offsetof(struct spa_audio_info_raw,position))/sizeof(uint32_t))
296
297#define SPA_AUDIO_INFO_RAW_VALID_SIZE(size) ((size) >= offsetof(struct spa_audio_info_raw, position))
298
299
300#define SPA_KEY_AUDIO_FORMAT "audio.format"
302#define SPA_KEY_AUDIO_CHANNEL "audio.channel"
304#define SPA_KEY_AUDIO_CHANNELS "audio.channels"
305#define SPA_KEY_AUDIO_RATE "audio.rate"
306#define SPA_KEY_AUDIO_LAYOUT "audio.layout"
307#define SPA_KEY_AUDIO_POSITION "audio.position"
309#define SPA_KEY_AUDIO_ALLOWED_RATES "audio.allowed-rates"
314
315#ifdef __cplusplus
316} /* extern "C" */
317#endif
318
319#endif /* SPA_AUDIO_RAW_H */
spa_audio_channel
spa_audio_channel
Definition raw.h:161
spa_audio_format
spa_audio_format
Definition raw.h:33
SPA_AUDIO_MAX_CHANNELS
#define SPA_AUDIO_MAX_CHANNELS
Definition raw.h:30
spa_audio_volume_ramp_scale
spa_audio_volume_ramp_scale
Definition raw.h:278
SPA_AUDIO_CHANNEL_AUX5
@ SPA_AUDIO_CHANNEL_AUX5
Definition raw.h:210
SPA_AUDIO_CHANNEL_BC
@ SPA_AUDIO_CHANNEL_BC
bottom center 0 -30
Definition raw.h:200
SPA_AUDIO_CHANNEL_FC
@ SPA_AUDIO_CHANNEL_FC
front center 0 0
Definition raw.h:170
SPA_AUDIO_CHANNEL_AUX62
@ SPA_AUDIO_CHANNEL_AUX62
Definition raw.h:267
SPA_AUDIO_CHANNEL_FLW
@ SPA_AUDIO_CHANNEL_FLW
front left wide 60 0
Definition raw.h:188
SPA_AUDIO_CHANNEL_AUX17
@ SPA_AUDIO_CHANNEL_AUX17
Definition raw.h:222
SPA_AUDIO_CHANNEL_AUX31
@ SPA_AUDIO_CHANNEL_AUX31
Definition raw.h:236
SPA_AUDIO_CHANNEL_START_Custom
@ SPA_AUDIO_CHANNEL_START_Custom
Definition raw.h:272
SPA_AUDIO_CHANNEL_FLC
@ SPA_AUDIO_CHANNEL_FLC
front left center 22.5 0
Definition raw.h:174
SPA_AUDIO_CHANNEL_AUX42
@ SPA_AUDIO_CHANNEL_AUX42
Definition raw.h:247
SPA_AUDIO_CHANNEL_TFLC
@ SPA_AUDIO_CHANNEL_TFLC
top front left center 45 30
Definition raw.h:194
SPA_AUDIO_CHANNEL_TFRC
@ SPA_AUDIO_CHANNEL_TFRC
top front right center -45 30
Definition raw.h:195
SPA_AUDIO_CHANNEL_AUX0
@ SPA_AUDIO_CHANNEL_AUX0
Definition raw.h:205
SPA_AUDIO_CHANNEL_AUX25
@ SPA_AUDIO_CHANNEL_AUX25
Definition raw.h:230
SPA_AUDIO_CHANNEL_AUX27
@ SPA_AUDIO_CHANNEL_AUX27
Definition raw.h:232
SPA_AUDIO_CHANNEL_AUX60
@ SPA_AUDIO_CHANNEL_AUX60
Definition raw.h:265
SPA_AUDIO_CHANNEL_BRC
@ SPA_AUDIO_CHANNEL_BRC
bottom right center -45 -30
Definition raw.h:202
SPA_AUDIO_CHANNEL_AUX50
@ SPA_AUDIO_CHANNEL_AUX50
Definition raw.h:255
SPA_AUDIO_CHANNEL_AUX63
@ SPA_AUDIO_CHANNEL_AUX63
Definition raw.h:268
SPA_AUDIO_CHANNEL_AUX53
@ SPA_AUDIO_CHANNEL_AUX53
Definition raw.h:258
SPA_AUDIO_CHANNEL_AUX34
@ SPA_AUDIO_CHANNEL_AUX34
Definition raw.h:239
SPA_AUDIO_CHANNEL_AUX3
@ SPA_AUDIO_CHANNEL_AUX3
Definition raw.h:208
SPA_AUDIO_CHANNEL_FR
@ SPA_AUDIO_CHANNEL_FR
front right -30 0
Definition raw.h:169
SPA_AUDIO_CHANNEL_AUX43
@ SPA_AUDIO_CHANNEL_AUX43
Definition raw.h:248
SPA_AUDIO_CHANNEL_AUX46
@ SPA_AUDIO_CHANNEL_AUX46
Definition raw.h:251
SPA_AUDIO_CHANNEL_AUX57
@ SPA_AUDIO_CHANNEL_AUX57
Definition raw.h:262
SPA_AUDIO_CHANNEL_RLFE
@ SPA_AUDIO_CHANNEL_RLFE
right LFE -45 -30
Definition raw.h:199
SPA_AUDIO_CHANNEL_AUX56
@ SPA_AUDIO_CHANNEL_AUX56
Definition raw.h:261
SPA_AUDIO_CHANNEL_AUX52
@ SPA_AUDIO_CHANNEL_AUX52
Definition raw.h:257
SPA_AUDIO_CHANNEL_AUX10
@ SPA_AUDIO_CHANNEL_AUX10
Definition raw.h:215
SPA_AUDIO_CHANNEL_AUX33
@ SPA_AUDIO_CHANNEL_AUX33
Definition raw.h:238
SPA_AUDIO_CHANNEL_AUX12
@ SPA_AUDIO_CHANNEL_AUX12
Definition raw.h:217
SPA_AUDIO_CHANNEL_BLC
@ SPA_AUDIO_CHANNEL_BLC
bottom left center 45 -30
Definition raw.h:201
SPA_AUDIO_CHANNEL_AUX6
@ SPA_AUDIO_CHANNEL_AUX6
Definition raw.h:211
SPA_AUDIO_CHANNEL_AUX23
@ SPA_AUDIO_CHANNEL_AUX23
Definition raw.h:228
SPA_AUDIO_CHANNEL_TRC
@ SPA_AUDIO_CHANNEL_TRC
top rear center 180 30
Definition raw.h:184
SPA_AUDIO_CHANNEL_AUX48
@ SPA_AUDIO_CHANNEL_AUX48
Definition raw.h:253
SPA_AUDIO_CHANNEL_AUX13
@ SPA_AUDIO_CHANNEL_AUX13
Definition raw.h:218
SPA_AUDIO_CHANNEL_START_Aux
@ SPA_AUDIO_CHANNEL_START_Aux
aux channels
Definition raw.h:204
SPA_AUDIO_CHANNEL_TFC
@ SPA_AUDIO_CHANNEL_TFC
top front center 0 30
Definition raw.h:181
SPA_AUDIO_CHANNEL_TFR
@ SPA_AUDIO_CHANNEL_TFR
top front right -30 30
Definition raw.h:182
SPA_AUDIO_CHANNEL_AUX61
@ SPA_AUDIO_CHANNEL_AUX61
Definition raw.h:266
SPA_AUDIO_CHANNEL_AUX28
@ SPA_AUDIO_CHANNEL_AUX28
Definition raw.h:233
SPA_AUDIO_CHANNEL_AUX30
@ SPA_AUDIO_CHANNEL_AUX30
Definition raw.h:235
SPA_AUDIO_CHANNEL_RLC
@ SPA_AUDIO_CHANNEL_RLC
rear left center 135 0
Definition raw.h:186
SPA_AUDIO_CHANNEL_LFE2
@ SPA_AUDIO_CHANNEL_LFE2
LFE 2 0 -30.
Definition raw.h:190
SPA_AUDIO_CHANNEL_AUX35
@ SPA_AUDIO_CHANNEL_AUX35
Definition raw.h:240
SPA_AUDIO_CHANNEL_AUX2
@ SPA_AUDIO_CHANNEL_AUX2
Definition raw.h:207
SPA_AUDIO_CHANNEL_RR
@ SPA_AUDIO_CHANNEL_RR
rear right -110 0
Definition raw.h:178
SPA_AUDIO_CHANNEL_TRL
@ SPA_AUDIO_CHANNEL_TRL
top rear left 110 30
Definition raw.h:183
SPA_AUDIO_CHANNEL_AUX7
@ SPA_AUDIO_CHANNEL_AUX7
Definition raw.h:212
SPA_AUDIO_CHANNEL_AUX44
@ SPA_AUDIO_CHANNEL_AUX44
Definition raw.h:249
SPA_AUDIO_CHANNEL_LLFE
@ SPA_AUDIO_CHANNEL_LLFE
left LFE 45 -30
Definition raw.h:198
SPA_AUDIO_CHANNEL_AUX41
@ SPA_AUDIO_CHANNEL_AUX41
Definition raw.h:246
SPA_AUDIO_CHANNEL_AUX8
@ SPA_AUDIO_CHANNEL_AUX8
Definition raw.h:213
SPA_AUDIO_CHANNEL_AUX39
@ SPA_AUDIO_CHANNEL_AUX39
Definition raw.h:244
SPA_AUDIO_CHANNEL_AUX54
@ SPA_AUDIO_CHANNEL_AUX54
Definition raw.h:259
SPA_AUDIO_CHANNEL_AUX19
@ SPA_AUDIO_CHANNEL_AUX19
Definition raw.h:224
SPA_AUDIO_CHANNEL_AUX59
@ SPA_AUDIO_CHANNEL_AUX59
Definition raw.h:264
SPA_AUDIO_CHANNEL_TRR
@ SPA_AUDIO_CHANNEL_TRR
top rear right -110 30
Definition raw.h:185
SPA_AUDIO_CHANNEL_UNKNOWN
@ SPA_AUDIO_CHANNEL_UNKNOWN
unspecified
Definition raw.h:162
SPA_AUDIO_CHANNEL_RL
@ SPA_AUDIO_CHANNEL_RL
rear left 110 0
Definition raw.h:177
SPA_AUDIO_CHANNEL_AUX37
@ SPA_AUDIO_CHANNEL_AUX37
Definition raw.h:242
SPA_AUDIO_CHANNEL_AUX21
@ SPA_AUDIO_CHANNEL_AUX21
Definition raw.h:226
SPA_AUDIO_CHANNEL_AUX38
@ SPA_AUDIO_CHANNEL_AUX38
Definition raw.h:243
SPA_AUDIO_CHANNEL_AUX58
@ SPA_AUDIO_CHANNEL_AUX58
Definition raw.h:263
SPA_AUDIO_CHANNEL_AUX4
@ SPA_AUDIO_CHANNEL_AUX4
Definition raw.h:209
SPA_AUDIO_CHANNEL_NA
@ SPA_AUDIO_CHANNEL_NA
N/A, silent.
Definition raw.h:163
SPA_AUDIO_CHANNEL_TSL
@ SPA_AUDIO_CHANNEL_TSL
top side left 90 0
Definition raw.h:196
SPA_AUDIO_CHANNEL_LFE
@ SPA_AUDIO_CHANNEL_LFE
LFE 0 -30.
Definition raw.h:171
SPA_AUDIO_CHANNEL_SR
@ SPA_AUDIO_CHANNEL_SR
side right -90 0
Definition raw.h:173
SPA_AUDIO_CHANNEL_FCH
@ SPA_AUDIO_CHANNEL_FCH
front center high 0 30
Definition raw.h:192
SPA_AUDIO_CHANNEL_AUX45
@ SPA_AUDIO_CHANNEL_AUX45
Definition raw.h:250
SPA_AUDIO_CHANNEL_LAST_Aux
@ SPA_AUDIO_CHANNEL_LAST_Aux
aux channels
Definition raw.h:270
SPA_AUDIO_CHANNEL_TSR
@ SPA_AUDIO_CHANNEL_TSR
top side right -90 0
Definition raw.h:197
SPA_AUDIO_CHANNEL_TFL
@ SPA_AUDIO_CHANNEL_TFL
top front left 30 30
Definition raw.h:180
SPA_AUDIO_CHANNEL_AUX9
@ SPA_AUDIO_CHANNEL_AUX9
Definition raw.h:214
SPA_AUDIO_CHANNEL_AUX55
@ SPA_AUDIO_CHANNEL_AUX55
Definition raw.h:260
SPA_AUDIO_CHANNEL_AUX51
@ SPA_AUDIO_CHANNEL_AUX51
Definition raw.h:256
SPA_AUDIO_CHANNEL_TC
@ SPA_AUDIO_CHANNEL_TC
top center 0 90
Definition raw.h:179
SPA_AUDIO_CHANNEL_AUX16
@ SPA_AUDIO_CHANNEL_AUX16
Definition raw.h:221
SPA_AUDIO_CHANNEL_FRC
@ SPA_AUDIO_CHANNEL_FRC
front right center -22.5 0
Definition raw.h:175
SPA_AUDIO_CHANNEL_RC
@ SPA_AUDIO_CHANNEL_RC
rear center 180 0
Definition raw.h:176
SPA_AUDIO_CHANNEL_AUX36
@ SPA_AUDIO_CHANNEL_AUX36
Definition raw.h:241
SPA_AUDIO_CHANNEL_AUX26
@ SPA_AUDIO_CHANNEL_AUX26
Definition raw.h:231
SPA_AUDIO_CHANNEL_AUX40
@ SPA_AUDIO_CHANNEL_AUX40
Definition raw.h:245
SPA_AUDIO_CHANNEL_FL
@ SPA_AUDIO_CHANNEL_FL
Azimuth Elevation.
Definition raw.h:168
SPA_AUDIO_CHANNEL_MONO
@ SPA_AUDIO_CHANNEL_MONO
mono stream
Definition raw.h:165
SPA_AUDIO_CHANNEL_AUX49
@ SPA_AUDIO_CHANNEL_AUX49
Definition raw.h:254
SPA_AUDIO_CHANNEL_AUX18
@ SPA_AUDIO_CHANNEL_AUX18
Definition raw.h:223
SPA_AUDIO_CHANNEL_AUX1
@ SPA_AUDIO_CHANNEL_AUX1
Definition raw.h:206
SPA_AUDIO_CHANNEL_AUX47
@ SPA_AUDIO_CHANNEL_AUX47
Definition raw.h:252
SPA_AUDIO_CHANNEL_AUX11
@ SPA_AUDIO_CHANNEL_AUX11
Definition raw.h:216
SPA_AUDIO_CHANNEL_FLH
@ SPA_AUDIO_CHANNEL_FLH
front left high 22.5 30
Definition raw.h:191
SPA_AUDIO_CHANNEL_AUX14
@ SPA_AUDIO_CHANNEL_AUX14
Definition raw.h:219
SPA_AUDIO_CHANNEL_AUX32
@ SPA_AUDIO_CHANNEL_AUX32
Definition raw.h:237
SPA_AUDIO_CHANNEL_FRW
@ SPA_AUDIO_CHANNEL_FRW
front right wide -60 0
Definition raw.h:189
SPA_AUDIO_CHANNEL_AUX29
@ SPA_AUDIO_CHANNEL_AUX29
Definition raw.h:234
SPA_AUDIO_CHANNEL_RRC
@ SPA_AUDIO_CHANNEL_RRC
rear right center -135 0
Definition raw.h:187
SPA_AUDIO_CHANNEL_SL
@ SPA_AUDIO_CHANNEL_SL
side left 90 0
Definition raw.h:172
SPA_AUDIO_CHANNEL_AUX15
@ SPA_AUDIO_CHANNEL_AUX15
Definition raw.h:220
SPA_AUDIO_CHANNEL_AUX24
@ SPA_AUDIO_CHANNEL_AUX24
Definition raw.h:229
SPA_AUDIO_CHANNEL_AUX20
@ SPA_AUDIO_CHANNEL_AUX20
Definition raw.h:225
SPA_AUDIO_CHANNEL_AUX22
@ SPA_AUDIO_CHANNEL_AUX22
Definition raw.h:227
SPA_AUDIO_CHANNEL_FRH
@ SPA_AUDIO_CHANNEL_FRH
front right high -22.5 30
Definition raw.h:193
SPA_AUDIO_FORMAT_S32
@ SPA_AUDIO_FORMAT_S32
Definition raw.h:100
SPA_AUDIO_FORMAT_F64_LE
@ SPA_AUDIO_FORMAT_F64_LE
Definition raw.h:67
SPA_AUDIO_FORMAT_U16_OE
@ SPA_AUDIO_FORMAT_U16_OE
Definition raw.h:111
SPA_AUDIO_FORMAT_F32_OE
@ SPA_AUDIO_FORMAT_F32_OE
Definition raw.h:122
SPA_AUDIO_FORMAT_U16_BE
@ SPA_AUDIO_FORMAT_U16_BE
Definition raw.h:44
SPA_AUDIO_FORMAT_S16P
@ SPA_AUDIO_FORMAT_S16P
Definition raw.h:76
SPA_AUDIO_FORMAT_U20_OE
@ SPA_AUDIO_FORMAT_U20_OE
Definition raw.h:119
SPA_AUDIO_FORMAT_U24_32_BE
@ SPA_AUDIO_FORMAT_U24_32_BE
Definition raw.h:48
SPA_AUDIO_FORMAT_U24_32
@ SPA_AUDIO_FORMAT_U24_32
Definition raw.h:99
SPA_AUDIO_FORMAT_U24_OE
@ SPA_AUDIO_FORMAT_U24_OE
Definition raw.h:117
SPA_AUDIO_FORMAT_U18_LE
@ SPA_AUDIO_FORMAT_U18_LE
Definition raw.h:63
SPA_AUDIO_FORMAT_S18_LE
@ SPA_AUDIO_FORMAT_S18_LE
Definition raw.h:61
SPA_AUDIO_FORMAT_U32_BE
@ SPA_AUDIO_FORMAT_U32_BE
Definition raw.h:52
SPA_AUDIO_FORMAT_ULAW
@ SPA_AUDIO_FORMAT_ULAW
Definition raw.h:70
SPA_AUDIO_FORMAT_U32_LE
@ SPA_AUDIO_FORMAT_U32_LE
Definition raw.h:51
SPA_AUDIO_FORMAT_S20
@ SPA_AUDIO_FORMAT_S20
Definition raw.h:104
SPA_AUDIO_FORMAT_S32_BE
@ SPA_AUDIO_FORMAT_S32_BE
Definition raw.h:50
SPA_AUDIO_FORMAT_DSP_F64
@ SPA_AUDIO_FORMAT_DSP_F64
Definition raw.h:92
SPA_AUDIO_FORMAT_F32P
@ SPA_AUDIO_FORMAT_F32P
Definition raw.h:80
SPA_AUDIO_FORMAT_S24_32_LE
@ SPA_AUDIO_FORMAT_S24_32_LE
Definition raw.h:45
SPA_AUDIO_FORMAT_S16_LE
@ SPA_AUDIO_FORMAT_S16_LE
Definition raw.h:41
SPA_AUDIO_FORMAT_S18_OE
@ SPA_AUDIO_FORMAT_S18_OE
Definition raw.h:120
SPA_AUDIO_FORMAT_F32_BE
@ SPA_AUDIO_FORMAT_F32_BE
Definition raw.h:66
SPA_AUDIO_FORMAT_F32_LE
@ SPA_AUDIO_FORMAT_F32_LE
Definition raw.h:65
SPA_AUDIO_FORMAT_U18_OE
@ SPA_AUDIO_FORMAT_U18_OE
Definition raw.h:121
SPA_AUDIO_FORMAT_START_Planar
@ SPA_AUDIO_FORMAT_START_Planar
Definition raw.h:74
SPA_AUDIO_FORMAT_START_Interleaved
@ SPA_AUDIO_FORMAT_START_Interleaved
Definition raw.h:38
SPA_AUDIO_FORMAT_U32
@ SPA_AUDIO_FORMAT_U32
Definition raw.h:101
SPA_AUDIO_FORMAT_S16_OE
@ SPA_AUDIO_FORMAT_S16_OE
Definition raw.h:110
SPA_AUDIO_FORMAT_S32_OE
@ SPA_AUDIO_FORMAT_S32_OE
Definition raw.h:114
SPA_AUDIO_FORMAT_U24_BE
@ SPA_AUDIO_FORMAT_U24_BE
Definition raw.h:56
SPA_AUDIO_FORMAT_U24_LE
@ SPA_AUDIO_FORMAT_U24_LE
Definition raw.h:55
SPA_AUDIO_FORMAT_U18_BE
@ SPA_AUDIO_FORMAT_U18_BE
Definition raw.h:64
SPA_AUDIO_FORMAT_S20_BE
@ SPA_AUDIO_FORMAT_S20_BE
Definition raw.h:58
SPA_AUDIO_FORMAT_U24_32_LE
@ SPA_AUDIO_FORMAT_U24_32_LE
Definition raw.h:47
SPA_AUDIO_FORMAT_U20_LE
@ SPA_AUDIO_FORMAT_U20_LE
Definition raw.h:59
SPA_AUDIO_FORMAT_S24P
@ SPA_AUDIO_FORMAT_S24P
Definition raw.h:79
SPA_AUDIO_FORMAT_S32_LE
@ SPA_AUDIO_FORMAT_S32_LE
Definition raw.h:49
SPA_AUDIO_FORMAT_DSP_F32
@ SPA_AUDIO_FORMAT_DSP_F32
Definition raw.h:91
SPA_AUDIO_FORMAT_S24_32P
@ SPA_AUDIO_FORMAT_S24_32P
Definition raw.h:77
SPA_AUDIO_FORMAT_S20_OE
@ SPA_AUDIO_FORMAT_S20_OE
Definition raw.h:118
SPA_AUDIO_FORMAT_S8P
@ SPA_AUDIO_FORMAT_S8P
Definition raw.h:82
SPA_AUDIO_FORMAT_U24
@ SPA_AUDIO_FORMAT_U24
Definition raw.h:103
SPA_AUDIO_FORMAT_START_Other
@ SPA_AUDIO_FORMAT_START_Other
Definition raw.h:85
SPA_AUDIO_FORMAT_UNKNOWN
@ SPA_AUDIO_FORMAT_UNKNOWN
Definition raw.h:34
SPA_AUDIO_FORMAT_F64_BE
@ SPA_AUDIO_FORMAT_F64_BE
Definition raw.h:68
SPA_AUDIO_FORMAT_F64P
@ SPA_AUDIO_FORMAT_F64P
Definition raw.h:81
SPA_AUDIO_FORMAT_U20
@ SPA_AUDIO_FORMAT_U20
Definition raw.h:105
SPA_AUDIO_FORMAT_S8
@ SPA_AUDIO_FORMAT_S8
Definition raw.h:39
SPA_AUDIO_FORMAT_U32_OE
@ SPA_AUDIO_FORMAT_U32_OE
Definition raw.h:115
SPA_AUDIO_FORMAT_U8
@ SPA_AUDIO_FORMAT_U8
Definition raw.h:40
SPA_AUDIO_FORMAT_U16_LE
@ SPA_AUDIO_FORMAT_U16_LE
Definition raw.h:43
SPA_AUDIO_FORMAT_S24_LE
@ SPA_AUDIO_FORMAT_S24_LE
Definition raw.h:53
SPA_AUDIO_FORMAT_DSP_S32
@ SPA_AUDIO_FORMAT_DSP_S32
Definition raw.h:90
SPA_AUDIO_FORMAT_U18
@ SPA_AUDIO_FORMAT_U18
Definition raw.h:107
SPA_AUDIO_FORMAT_U20_BE
@ SPA_AUDIO_FORMAT_U20_BE
Definition raw.h:60
SPA_AUDIO_FORMAT_S24
@ SPA_AUDIO_FORMAT_S24
Definition raw.h:102
SPA_AUDIO_FORMAT_ENCODED
@ SPA_AUDIO_FORMAT_ENCODED
Definition raw.h:35
SPA_AUDIO_FORMAT_S16_BE
@ SPA_AUDIO_FORMAT_S16_BE
Definition raw.h:42
SPA_AUDIO_FORMAT_S24_BE
@ SPA_AUDIO_FORMAT_S24_BE
Definition raw.h:54
SPA_AUDIO_FORMAT_U8P
@ SPA_AUDIO_FORMAT_U8P
Definition raw.h:75
SPA_AUDIO_FORMAT_ALAW
@ SPA_AUDIO_FORMAT_ALAW
Definition raw.h:71
SPA_AUDIO_FORMAT_S32P
@ SPA_AUDIO_FORMAT_S32P
Definition raw.h:78
SPA_AUDIO_FORMAT_S24_32_OE
@ SPA_AUDIO_FORMAT_S24_32_OE
Definition raw.h:112
SPA_AUDIO_FORMAT_U24_32_OE
@ SPA_AUDIO_FORMAT_U24_32_OE
Definition raw.h:113
SPA_AUDIO_FORMAT_S24_32_BE
@ SPA_AUDIO_FORMAT_S24_32_BE
Definition raw.h:46
SPA_AUDIO_FORMAT_S16
@ SPA_AUDIO_FORMAT_S16
Definition raw.h:96
SPA_AUDIO_FORMAT_S24_32
@ SPA_AUDIO_FORMAT_S24_32
Definition raw.h:98
SPA_AUDIO_FORMAT_F64
@ SPA_AUDIO_FORMAT_F64
Definition raw.h:109
SPA_AUDIO_FORMAT_F32
@ SPA_AUDIO_FORMAT_F32
Definition raw.h:108
SPA_AUDIO_FORMAT_S20_LE
@ SPA_AUDIO_FORMAT_S20_LE
Definition raw.h:57
SPA_AUDIO_FORMAT_S18
@ SPA_AUDIO_FORMAT_S18
Definition raw.h:106
SPA_AUDIO_FORMAT_F64_OE
@ SPA_AUDIO_FORMAT_F64_OE
Definition raw.h:123
SPA_AUDIO_FORMAT_S18_BE
@ SPA_AUDIO_FORMAT_S18_BE
Definition raw.h:62
SPA_AUDIO_FORMAT_S24_OE
@ SPA_AUDIO_FORMAT_S24_OE
Definition raw.h:116
SPA_AUDIO_FORMAT_U16
@ SPA_AUDIO_FORMAT_U16
Definition raw.h:97
SPA_AUDIO_VOLUME_RAMP_CUBIC
@ SPA_AUDIO_VOLUME_RAMP_CUBIC
Definition raw.h:281
SPA_AUDIO_VOLUME_RAMP_LINEAR
@ SPA_AUDIO_VOLUME_RAMP_LINEAR
Definition raw.h:280
SPA_AUDIO_VOLUME_RAMP_INVALID
@ SPA_AUDIO_VOLUME_RAMP_INVALID
Definition raw.h:279
spa_audio_info_raw
Audio information description.
Definition raw.h:292
spa_audio_info_raw::format
enum spa_audio_format format
Definition raw.h:293
spa_audio_info_raw::channels
uint32_t channels
Definition raw.h:296
spa_audio_info_raw::flags
uint32_t flags
Definition raw.h:294
spa_audio_info_raw::position
uint32_t position[SPA_AUDIO_MAX_CHANNELS]
Definition raw.h:299
spa_audio_info_raw::rate
uint32_t rate
Definition raw.h:295