PipeWire  1.4.11
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 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 #include <stdint.h>
13 
14 #include <spa/utils/endian.h>
15 
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 
27 enum spa_audio_format {
30 
31  /* interleaved formats */
63 
66 
67  /* planar formats */
77 
78  /* other formats start here */
80 
81  /* Aliases */
82 
83  /* DSP formats */
87 
88  /* native endian */
89 #if __BYTE_ORDER == __BIG_ENDIAN
118 #elif __BYTE_ORDER == __LITTLE_ENDIAN
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 
153 enum spa_audio_channel {
265 };
267 #define SPA_AUDIO_CHANNEL_IS_AUX(ch) ((ch)>=SPA_AUDIO_CHANNEL_START_Aux && (ch)<=SPA_AUDIO_CHANNEL_LAST_Aux)
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. */
281  enum spa_audio_format format; /*< format, one of enum spa_audio_format */
282  uint32_t flags; /*< extra flags */
283  uint32_t rate; /*< sample rate */
284  uint32_t channels; /*< number of channels */
285  uint32_t position[SPA_AUDIO_MAX_CHANNELS]; /*< channel position from enum spa_audio_channel */
286 };
287 
288 #define SPA_AUDIO_INFO_RAW_INIT(...) ((struct spa_audio_info_raw) { __VA_ARGS__ })
289 
290 #define SPA_KEY_AUDIO_FORMAT "audio.format"
292 #define SPA_KEY_AUDIO_CHANNEL "audio.channel"
294 #define SPA_KEY_AUDIO_CHANNELS "audio.channels"
295 #define SPA_KEY_AUDIO_RATE "audio.rate"
296 #define SPA_KEY_AUDIO_POSITION "audio.position"
298 #define SPA_KEY_AUDIO_ALLOWED_RATES "audio.allowed-rates"
304 #ifdef __cplusplus
305 } /* extern "C" */
306 #endif
308 #endif /* SPA_AUDIO_RAW_H */
Definition: raw.h:80
front left wide 60 0
Definition: raw.h:188
top front right -30 30
Definition: raw.h:182
Definition: raw.h:55
Definition: raw.h:262
front left high 22.5 30
Definition: raw.h:191
top rear left 110 30
Definition: raw.h:183
Definition: raw.h:240
Definition: raw.h:218
Definition: raw.h:117
Definition: raw.h:252
Definition: raw.h:106
Definition: raw.h:116
Definition: raw.h:63
Definition: raw.h:205
bottom center 0 -30
Definition: raw.h:200
Definition: raw.h:265
Definition: raw.h:90
top front center 0 30
Definition: raw.h:181
top front left 30 30
Definition: raw.h:180
Definition: raw.h:62
Definition: raw.h:242
top center 0 90
Definition: raw.h:179
Definition: raw.h:105
Definition: raw.h:82
Audio information description.
Definition: raw.h:291
Definition: raw.h:123
Definition: raw.h:234
spa_audio_format
Definition: raw.h:33
Definition: raw.h:78
Definition: raw.h:120
uint32_t rate
Definition: raw.h:294
Definition: raw.h:229
Definition: raw.h:42
Definition: raw.h:243
top front right center -45 30
Definition: raw.h:195
Definition: raw.h:210
Definition: raw.h:209
enum spa_audio_format format
Definition: raw.h:292
front center high 0 30
Definition: raw.h:192
front right wide -60 0
Definition: raw.h:189
Definition: raw.h:258
Definition: raw.h:71
Definition: raw.h:253
Definition: raw.h:121
Definition: raw.h:50
Definition: raw.h:241
Definition: raw.h:51
Definition: raw.h:91
Definition: raw.h:85
Definition: raw.h:217
rear right -110 0
Definition: raw.h:178
mono stream
Definition: raw.h:165
Definition: raw.h:56
Definition: raw.h:222
LFE 0 -30.
Definition: raw.h:171
Definition: raw.h:68
N/A, silent.
Definition: raw.h:163
left LFE 45 -30
Definition: raw.h:198
Definition: raw.h:40
Definition: raw.h:46
Definition: raw.h:118
Definition: raw.h:232
Definition: raw.h:280
Definition: raw.h:223
Definition: raw.h:225
Definition: raw.h:236
Definition: raw.h:245
#define SPA_AUDIO_MAX_CHANNELS
Definition: raw.h:30
Definition: raw.h:70
Definition: raw.h:215
Definition: raw.h:260
Definition: raw.h:35
Definition: raw.h:249
Definition: raw.h:65
Definition: raw.h:266
aux channels
Definition: raw.h:270
Definition: raw.h:97
spa_audio_channel
Definition: raw.h:161
spa_audio_volume_ramp_scale
Definition: raw.h:278
uint32_t flags
Definition: raw.h:293
Definition: raw.h:112
Definition: raw.h:246
Definition: raw.h:48
Definition: raw.h:206
Definition: raw.h:115
Definition: raw.h:99
Definition: raw.h:102
Definition: raw.h:261
Definition: raw.h:54
top side left 90 0
Definition: raw.h:196
Definition: raw.h:49
rear right center -135 0
Definition: raw.h:187
Definition: raw.h:58
Definition: raw.h:221
Definition: raw.h:66
front left center 22.5 0
Definition: raw.h:174
Definition: raw.h:81
bottom left center 45 -30
Definition: raw.h:201
Definition: raw.h:96
Definition: raw.h:44
Definition: raw.h:259
Definition: raw.h:233
Definition: raw.h:211
Definition: raw.h:247
Definition: raw.h:207
Definition: raw.h:43
Definition: raw.h:237
Definition: raw.h:98
Definition: raw.h:107
uint32_t position[SPA_AUDIO_MAX_CHANNELS]
Definition: raw.h:296
Definition: raw.h:59
Definition: raw.h:34
rear left center 135 0
Definition: raw.h:186
Definition: raw.h:79
Definition: raw.h:279
Definition: raw.h:67
Definition: raw.h:109
Definition: raw.h:74
Definition: raw.h:92
Definition: raw.h:213
LFE 2 0 -30.
Definition: raw.h:190
rear center 180 0
Definition: raw.h:176
Definition: raw.h:255
top rear center 180 30
Definition: raw.h:184
Azimuth Elevation.
Definition: raw.h:168
Definition: raw.h:281
Definition: raw.h:224
Definition: raw.h:108
Definition: raw.h:257
bottom right center -45 -30
Definition: raw.h:202
Definition: raw.h:113
Definition: raw.h:272
Definition: raw.h:45
Definition: raw.h:39
Definition: raw.h:239
top side right -90 0
Definition: raw.h:197
Definition: raw.h:122
side right -90 0
Definition: raw.h:173
Definition: raw.h:268
Definition: raw.h:114
Definition: raw.h:212
unspecified
Definition: raw.h:162
Definition: raw.h:101
front right high -22.5 30
Definition: raw.h:193
front right center -22.5 0
Definition: raw.h:175
aux channels
Definition: raw.h:204
Definition: raw.h:52
rear left 110 0
Definition: raw.h:177
Definition: raw.h:267
Definition: raw.h:264
Definition: raw.h:47
Definition: raw.h:220
Definition: raw.h:216
Definition: raw.h:219
Definition: raw.h:214
Definition: raw.h:254
Definition: raw.h:227
Definition: raw.h:53
Definition: raw.h:251
Definition: raw.h:119
Definition: raw.h:226
Definition: raw.h:208
Definition: raw.h:110
Definition: raw.h:61
Definition: raw.h:57
Definition: raw.h:238
top front left center 45 30
Definition: raw.h:194
front center 0 0
Definition: raw.h:170
Definition: raw.h:248
front right -30 0
Definition: raw.h:169
Definition: raw.h:77
Definition: raw.h:111
Definition: raw.h:228
Definition: raw.h:244
top rear right -110 30
Definition: raw.h:185
Definition: raw.h:60
Definition: raw.h:104
Definition: raw.h:100
Definition: raw.h:230
Definition: raw.h:103
right LFE -45 -30
Definition: raw.h:199
side left 90 0
Definition: raw.h:172
Definition: raw.h:76
Definition: raw.h:235
Definition: raw.h:75
Definition: raw.h:256
Definition: raw.h:250
uint32_t channels
Definition: raw.h:295
Definition: raw.h:64
Definition: raw.h:41
Definition: raw.h:263
Definition: raw.h:231