PipeWire  1.0.3
raw.h
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 #if !defined(__FreeBSD__) && !defined(__MidnightBSD__)
15 #include <endian.h>
16 #endif
17 
23 #define SPA_AUDIO_MAX_CHANNELS 64u
24 
25 enum spa_audio_format {
28 
29  /* interleaved formats */
61 
64 
65  /* planar formats */
75 
76  /* other formats start here */
78 
79  /* Aliases */
80 
81  /* DSP formats */
85 
86  /* native endian */
87 #if __BYTE_ORDER == __BIG_ENDIAN
116 #elif __BYTE_ORDER == __LITTLE_ENDIAN
120  SPA_AUDIO_FORMAT_U24_32 = SPA_AUDIO_FORMAT_U24_32_LE,
121  SPA_AUDIO_FORMAT_S32 = SPA_AUDIO_FORMAT_S32_LE,
122  SPA_AUDIO_FORMAT_U32 = SPA_AUDIO_FORMAT_U32_LE,
145 #endif
146 };
147 
148 #define SPA_AUDIO_FORMAT_IS_INTERLEAVED(fmt) ((fmt) > SPA_AUDIO_FORMAT_START_Interleaved && (fmt) < SPA_AUDIO_FORMAT_START_Planar)
149 #define SPA_AUDIO_FORMAT_IS_PLANAR(fmt) ((fmt) > SPA_AUDIO_FORMAT_START_Planar && (fmt) < SPA_AUDIO_FORMAT_START_Other)
150 
151 enum spa_audio_channel {
262 };
268 };
271 #define SPA_AUDIO_FLAG_NONE (0) /*< no valid flag */
272 #define SPA_AUDIO_FLAG_UNPOSITIONED (1 << 0) /*< the position array explicitly
273  * contains unpositioned channels. */
276  enum spa_audio_format format; /*< format, one of enum spa_audio_format */
277  uint32_t flags; /*< extra flags */
278  uint32_t rate; /*< sample rate */
279  uint32_t channels; /*< number of channels */
280  uint32_t position[SPA_AUDIO_MAX_CHANNELS]; /*< channel position from enum spa_audio_channel */
281 };
283 #define SPA_AUDIO_INFO_RAW_INIT(...) ((struct spa_audio_info_raw) { __VA_ARGS__ })
284 
285 #define SPA_KEY_AUDIO_FORMAT "audio.format"
287 #define SPA_KEY_AUDIO_CHANNEL "audio.channel"
289 #define SPA_KEY_AUDIO_CHANNELS "audio.channels"
290 #define SPA_KEY_AUDIO_RATE "audio.rate"
291 #define SPA_KEY_AUDIO_POSITION "audio.position"
293 #define SPA_KEY_AUDIO_ALLOWED_RATES "audio.allowed-rates"
299 #ifdef __cplusplus
300 } /* extern "C" */
301 #endif
302 
303 #endif /* SPA_AUDIO_RAW_H */
Definition: raw.h:78
front left wide
Definition: raw.h:185
top front right
Definition: raw.h:179
Definition: raw.h:53
Definition: raw.h:259
front left high
Definition: raw.h:188
top rear left
Definition: raw.h:180
Definition: raw.h:237
Definition: raw.h:215
Definition: raw.h:115
Definition: raw.h:249
Definition: raw.h:104
Definition: raw.h:114
Definition: raw.h:61
Definition: raw.h:202
bottom center
Definition: raw.h:197
Definition: raw.h:262
Definition: raw.h:88
top front center
Definition: raw.h:178
top front left
Definition: raw.h:177
Definition: raw.h:60
Definition: raw.h:239
top center
Definition: raw.h:176
Definition: raw.h:103
Definition: raw.h:80
Audio information description.
Definition: raw.h:285
Definition: raw.h:121
Definition: raw.h:231
spa_audio_format
Definition: raw.h:31
Definition: raw.h:76
Definition: raw.h:118
uint32_t rate
Definition: raw.h:288
Definition: raw.h:226
Definition: raw.h:40
Definition: raw.h:240
top front right center
Definition: raw.h:192
Definition: raw.h:207
Definition: raw.h:206
enum spa_audio_format format
Definition: raw.h:286
front center high
Definition: raw.h:189
front right wide
Definition: raw.h:186
Definition: raw.h:255
Definition: raw.h:69
Definition: raw.h:250
Definition: raw.h:119
Definition: raw.h:48
Definition: raw.h:238
Definition: raw.h:49
Definition: raw.h:89
Definition: raw.h:83
Definition: raw.h:214
rear right
Definition: raw.h:175
mono stream
Definition: raw.h:163
Definition: raw.h:54
Definition: raw.h:219
LFE.
Definition: raw.h:168
Definition: raw.h:66
N/A, silent.
Definition: raw.h:161
left LFE
Definition: raw.h:195
Definition: raw.h:38
Definition: raw.h:44
Definition: raw.h:116
Definition: raw.h:229
Definition: raw.h:274
Definition: raw.h:220
Definition: raw.h:222
Definition: raw.h:233
Definition: raw.h:242
#define SPA_AUDIO_MAX_CHANNELS
Definition: raw.h:29
Definition: raw.h:68
Definition: raw.h:212
Definition: raw.h:257
Definition: raw.h:33
Definition: raw.h:246
Definition: raw.h:63
Definition: raw.h:263
aux channels
Definition: raw.h:267
Definition: raw.h:95
spa_audio_channel
Definition: raw.h:159
spa_audio_volume_ramp_scale
Definition: raw.h:272
uint32_t flags
Definition: raw.h:287
Definition: raw.h:110
Definition: raw.h:243
Definition: raw.h:46
Definition: raw.h:203
Definition: raw.h:113
Definition: raw.h:97
Definition: raw.h:100
Definition: raw.h:258
Definition: raw.h:52
top side left
Definition: raw.h:193
Definition: raw.h:47
rear right center
Definition: raw.h:184
Definition: raw.h:56
Definition: raw.h:218
Definition: raw.h:64
front left center
Definition: raw.h:171
Definition: raw.h:79
bottom left center
Definition: raw.h:198
Definition: raw.h:94
Definition: raw.h:42
Definition: raw.h:256
Definition: raw.h:230
Definition: raw.h:208
Definition: raw.h:244
Definition: raw.h:204
Definition: raw.h:41
Definition: raw.h:234
Definition: raw.h:96
Definition: raw.h:105
uint32_t position[SPA_AUDIO_MAX_CHANNELS]
Definition: raw.h:290
Definition: raw.h:57
Definition: raw.h:32
rear left center
Definition: raw.h:183
Definition: raw.h:77
Definition: raw.h:273
Definition: raw.h:65
Definition: raw.h:107
Definition: raw.h:72
Definition: raw.h:90
Definition: raw.h:210
LFE 2.
Definition: raw.h:187
rear center
Definition: raw.h:173
Definition: raw.h:252
top rear center
Definition: raw.h:181
front left
Definition: raw.h:165
Definition: raw.h:275
Definition: raw.h:221
Definition: raw.h:106
Definition: raw.h:254
bottom right center
Definition: raw.h:199
Definition: raw.h:111
Definition: raw.h:269
Definition: raw.h:43
Definition: raw.h:37
Definition: raw.h:236
top side right
Definition: raw.h:194
Definition: raw.h:120
side right
Definition: raw.h:170
Definition: raw.h:265
Definition: raw.h:112
Definition: raw.h:209
unspecified
Definition: raw.h:160
Definition: raw.h:99
front right high
Definition: raw.h:190
front right center
Definition: raw.h:172
aux channels
Definition: raw.h:201
Definition: raw.h:50
rear left
Definition: raw.h:174
Definition: raw.h:264
Definition: raw.h:261
Definition: raw.h:45
Definition: raw.h:217
Definition: raw.h:213
Definition: raw.h:216
Definition: raw.h:211
Definition: raw.h:251
Definition: raw.h:224
Definition: raw.h:51
Definition: raw.h:248
Definition: raw.h:117
Definition: raw.h:223
Definition: raw.h:205
Definition: raw.h:108
Definition: raw.h:59
Definition: raw.h:55
Definition: raw.h:235
top front left center
Definition: raw.h:191
front center
Definition: raw.h:167
Definition: raw.h:245
front right
Definition: raw.h:166
Definition: raw.h:75
Definition: raw.h:109
Definition: raw.h:225
Definition: raw.h:241
top rear right
Definition: raw.h:182
Definition: raw.h:58
Definition: raw.h:102
Definition: raw.h:98
Definition: raw.h:227
Definition: raw.h:101
right LFE
Definition: raw.h:196
side left
Definition: raw.h:169
Definition: raw.h:74
Definition: raw.h:232
Definition: raw.h:73
Definition: raw.h:253
Definition: raw.h:247
uint32_t channels
Definition: raw.h:289
Definition: raw.h:62
Definition: raw.h:39
Definition: raw.h:260
Definition: raw.h:228