PipeWire  0.3.34
audio/raw.h
Go to the documentation of this file.
1 /* Simple Plugin API
2  *
3  * Copyright © 2018 Wim Taymans
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 
25 #ifndef SPA_AUDIO_RAW_H
26 #define SPA_AUDIO_RAW_H
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 #include <stdint.h>
33 
34 #ifndef __FreeBSD__
35 #include <endian.h>
36 #endif
37 
43 #define SPA_AUDIO_MAX_CHANNELS 64u
44 
48 
49  /* interleaved formats */
81 
84 
85  /* planar formats */
95 
96  /* other formats start here */
98 
99  /* Aliases */
100 
101  /* DSP formats */
105 
106  /* native endian */
107 #if __BYTE_ORDER == __BIG_ENDIAN
136 #elif __BYTE_ORDER == __LITTLE_ENDIAN
165 #endif
166 };
167 
168 #define SPA_AUDIO_FORMAT_IS_INTERLEAVED(fmt) ((fmt) > SPA_AUDIO_FORMAT_START_Interleaved && (fmt) < SPA_AUDIO_FORMAT_START_Planar)
169 #define SPA_AUDIO_FORMAT_IS_PLANAR(fmt) ((fmt) > SPA_AUDIO_FORMAT_START_Planar && (fmt) < SPA_AUDIO_FORMAT_START_Other)
170 
278 
282 };
283 
285 #define SPA_AUDIO_FLAG_NONE (0) /*< no valid flag */
286 #define SPA_AUDIO_FLAG_UNPOSITIONED (1 << 0) /*< the position array explicitly
287  * contains unpositioned channels. */
288 
290  enum spa_audio_format format; /*< format, one of enum spa_audio_format */
291  uint32_t flags; /*< extra flags */
292  uint32_t rate; /*< sample rate */
293  uint32_t channels; /*< number of channels */
294  uint32_t position[SPA_AUDIO_MAX_CHANNELS]; /*< channel position from enum spa_audio_channel */
295 };
296 
297 #define SPA_AUDIO_INFO_RAW_INIT(...) (struct spa_audio_info_raw) { __VA_ARGS__ }
298 
299 #define SPA_KEY_AUDIO_FORMAT "audio.format"
301 #define SPA_KEY_AUDIO_CHANNEL "audio.channel"
303 #define SPA_KEY_AUDIO_CHANNELS "audio.channels"
304 #define SPA_KEY_AUDIO_RATE "audio.rate"
305 #define SPA_KEY_AUDIO_POSITION "audio.position"
308 struct spa_audio_info_dsp {
309  enum spa_audio_format format; /*< format, one of the DSP formats in enum spa_audio_format_dsp */
310 };
312 #define SPA_AUDIO_INFO_DSP_INIT(...) (struct spa_audio_info_dsp) { __VA_ARGS__ }
313 
318 #ifdef __cplusplus
319 } /* extern "C" */
320 #endif
321 
322 #endif /* SPA_AUDIO_RAW_H */
Definition: audio/raw.h:92
front left wide
Definition: audio/raw.h:197
top front right
Definition: audio/raw.h:191
Definition: audio/raw.h:67
Definition: audio/raw.h:271
front left high
Definition: audio/raw.h:200
top rear left
Definition: audio/raw.h:192
Definition: audio/raw.h:249
Definition: audio/raw.h:227
Definition: audio/raw.h:129
Definition: audio/raw.h:261
Definition: audio/raw.h:118
Definition: audio/raw.h:128
Definition: audio/raw.h:75
Definition: audio/raw.h:214
bottom center
Definition: audio/raw.h:209
Definition: audio/raw.h:274
Definition: audio/raw.h:102
top front center
Definition: audio/raw.h:190
top front left
Definition: audio/raw.h:189
Definition: audio/raw.h:74
Definition: audio/raw.h:251
top center
Definition: audio/raw.h:188
Definition: audio/raw.h:117
Definition: audio/raw.h:94
Audio information description.
Definition: audio/raw.h:289
Definition: audio/raw.h:135
Definition: audio/raw.h:243
spa_audio_format
Definition: audio/raw.h:45
Definition: audio/raw.h:90
Definition: audio/raw.h:132
uint32_t rate
Definition: audio/raw.h:292
Definition: audio/raw.h:238
Definition: audio/raw.h:54
Definition: audio/raw.h:252
top front right center
Definition: audio/raw.h:204
Definition: audio/raw.h:219
Definition: audio/raw.h:218
enum spa_audio_format format
Definition: audio/raw.h:290
front center high
Definition: audio/raw.h:201
front right wide
Definition: audio/raw.h:198
Definition: audio/raw.h:267
Definition: audio/raw.h:83
Definition: audio/raw.h:262
Definition: audio/raw.h:133
Definition: audio/raw.h:62
Definition: audio/raw.h:250
Definition: audio/raw.h:63
Definition: audio/raw.h:103
Definition: audio/raw.h:97
Definition: audio/raw.h:226
rear right
Definition: audio/raw.h:187
mono stream
Definition: audio/raw.h:175
Definition: audio/raw.h:68
Definition: audio/raw.h:231
LFE.
Definition: audio/raw.h:180
Definition: audio/raw.h:80
N/A, silent.
Definition: audio/raw.h:173
left LFE
Definition: audio/raw.h:207
Definition: audio/raw.h:52
Definition: audio/raw.h:58
Definition: audio/raw.h:130
Definition: audio/raw.h:241
Definition: audio/raw.h:232
Definition: audio/raw.h:234
Definition: audio/raw.h:245
Definition: audio/raw.h:254
#define SPA_AUDIO_MAX_CHANNELS
Definition: audio/raw.h:43
Definition: audio/raw.h:82
Definition: audio/raw.h:224
Definition: audio/raw.h:269
Definition: audio/raw.h:47
Definition: audio/raw.h:258
Definition: audio/raw.h:77
Definition: audio/raw.h:275
aux channels
Definition: audio/raw.h:279
Definition: audio/raw.h:109
spa_audio_channel
Definition: audio/raw.h:171
uint32_t flags
Definition: audio/raw.h:291
Definition: audio/raw.h:124
Definition: audio/raw.h:255
Definition: audio/raw.h:60
Definition: audio/raw.h:50
Definition: audio/raw.h:215
Definition: audio/raw.h:127
Definition: audio/raw.h:111
Definition: audio/raw.h:114
Definition: audio/raw.h:270
Definition: audio/raw.h:66
top side left
Definition: audio/raw.h:205
Definition: audio/raw.h:61
rear right center
Definition: audio/raw.h:196
Definition: audio/raw.h:70
Definition: audio/raw.h:230
Definition: audio/raw.h:78
front left center
Definition: audio/raw.h:183
Definition: audio/raw.h:93
bottom left center
Definition: audio/raw.h:210
Definition: audio/raw.h:108
Definition: audio/raw.h:56
Definition: audio/raw.h:268
Definition: audio/raw.h:242
Definition: audio/raw.h:220
Definition: audio/raw.h:256
Definition: audio/raw.h:216
Definition: audio/raw.h:55
Definition: audio/raw.h:246
Definition: audio/raw.h:110
Definition: audio/raw.h:119
uint32_t position[SPA_AUDIO_MAX_CHANNELS]
Definition: audio/raw.h:294
Definition: audio/raw.h:71
Definition: audio/raw.h:46
rear left center
Definition: audio/raw.h:195
Definition: audio/raw.h:91
Definition: audio/raw.h:79
Definition: audio/raw.h:121
Definition: audio/raw.h:86
Definition: audio/raw.h:104
Definition: audio/raw.h:222
LFE 2.
Definition: audio/raw.h:199
rear center
Definition: audio/raw.h:185
Definition: audio/raw.h:264
top rear center
Definition: audio/raw.h:193
front left
Definition: audio/raw.h:177
Definition: audio/raw.h:233
Definition: audio/raw.h:120
Definition: audio/raw.h:266
bottom right center
Definition: audio/raw.h:211
Definition: audio/raw.h:125
Definition: audio/raw.h:281
Definition: audio/raw.h:57
Definition: audio/raw.h:51
Definition: audio/raw.h:248
top side right
Definition: audio/raw.h:206
Definition: audio/raw.h:134
side right
Definition: audio/raw.h:182
Definition: audio/raw.h:277
Definition: audio/raw.h:126
Definition: audio/raw.h:221
unspecified
Definition: audio/raw.h:172
Definition: audio/raw.h:113
front right high
Definition: audio/raw.h:202
front right center
Definition: audio/raw.h:184
aux channels
Definition: audio/raw.h:213
Definition: audio/raw.h:64
rear left
Definition: audio/raw.h:186
Definition: audio/raw.h:276
Definition: audio/raw.h:273
Definition: audio/raw.h:59
Definition: audio/raw.h:229
Definition: audio/raw.h:225
Definition: audio/raw.h:228
Definition: audio/raw.h:223
Definition: audio/raw.h:263
Definition: audio/raw.h:236
Definition: audio/raw.h:65
Definition: audio/raw.h:260
Definition: audio/raw.h:131
Definition: audio/raw.h:235
Definition: audio/raw.h:217
Definition: audio/raw.h:122
Definition: audio/raw.h:73
Definition: audio/raw.h:69
Definition: audio/raw.h:247
top front left center
Definition: audio/raw.h:203
front center
Definition: audio/raw.h:179
Definition: audio/raw.h:257
front right
Definition: audio/raw.h:178
Definition: audio/raw.h:89
Definition: audio/raw.h:123
Definition: audio/raw.h:237
Definition: audio/raw.h:253
top rear right
Definition: audio/raw.h:194
Definition: audio/raw.h:72
Definition: audio/raw.h:116
Definition: audio/raw.h:112
Definition: audio/raw.h:239
Definition: audio/raw.h:115
right LFE
Definition: audio/raw.h:208
side left
Definition: audio/raw.h:181
Definition: audio/raw.h:88
Definition: audio/raw.h:244
Definition: audio/raw.h:87
Definition: audio/raw.h:265
Definition: audio/raw.h:259
uint32_t channels
Definition: audio/raw.h:293
Definition: audio/raw.h:76
Definition: audio/raw.h:53
Definition: audio/raw.h:272
Definition: audio/raw.h:240