PipeWire 1.0.5
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#ifdef __cplusplus
9extern "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
28
29 /* interleaved formats */
65 /* planar formats */
76 /* other formats start here */
79 /* Aliases */
81 /* DSP formats */
85
86 /* native endian */
87#if __BYTE_ORDER == __BIG_ENDIAN
116#elif __BYTE_ORDER == __LITTLE_ENDIAN
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
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__ })
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
303#endif /* SPA_AUDIO_RAW_H */
spa_audio_channel
Definition raw.h:159
spa_audio_format
Definition raw.h:31
#define SPA_AUDIO_MAX_CHANNELS
Definition raw.h:29
spa_audio_volume_ramp_scale
Definition raw.h:272
@ SPA_AUDIO_CHANNEL_AUX5
Definition raw.h:207
@ SPA_AUDIO_CHANNEL_BC
bottom center
Definition raw.h:197
@ SPA_AUDIO_CHANNEL_FC
front center
Definition raw.h:167
@ SPA_AUDIO_CHANNEL_AUX62
Definition raw.h:264
@ SPA_AUDIO_CHANNEL_FLW
front left wide
Definition raw.h:185
@ SPA_AUDIO_CHANNEL_AUX17
Definition raw.h:219
@ SPA_AUDIO_CHANNEL_AUX31
Definition raw.h:233
@ SPA_AUDIO_CHANNEL_START_Custom
Definition raw.h:269
@ SPA_AUDIO_CHANNEL_FLC
front left center
Definition raw.h:171
@ SPA_AUDIO_CHANNEL_AUX42
Definition raw.h:244
@ SPA_AUDIO_CHANNEL_TFLC
top front left center
Definition raw.h:191
@ SPA_AUDIO_CHANNEL_TFRC
top front right center
Definition raw.h:192
@ SPA_AUDIO_CHANNEL_AUX0
Definition raw.h:202
@ SPA_AUDIO_CHANNEL_AUX25
Definition raw.h:227
@ SPA_AUDIO_CHANNEL_AUX27
Definition raw.h:229
@ SPA_AUDIO_CHANNEL_AUX60
Definition raw.h:262
@ SPA_AUDIO_CHANNEL_BRC
bottom right center
Definition raw.h:199
@ SPA_AUDIO_CHANNEL_AUX50
Definition raw.h:252
@ SPA_AUDIO_CHANNEL_AUX63
Definition raw.h:265
@ SPA_AUDIO_CHANNEL_AUX53
Definition raw.h:255
@ SPA_AUDIO_CHANNEL_AUX34
Definition raw.h:236
@ SPA_AUDIO_CHANNEL_AUX3
Definition raw.h:205
@ SPA_AUDIO_CHANNEL_FR
front right
Definition raw.h:166
@ SPA_AUDIO_CHANNEL_AUX43
Definition raw.h:245
@ SPA_AUDIO_CHANNEL_AUX46
Definition raw.h:248
@ SPA_AUDIO_CHANNEL_AUX57
Definition raw.h:259
@ SPA_AUDIO_CHANNEL_RLFE
right LFE
Definition raw.h:196
@ SPA_AUDIO_CHANNEL_AUX56
Definition raw.h:258
@ SPA_AUDIO_CHANNEL_AUX52
Definition raw.h:254
@ SPA_AUDIO_CHANNEL_AUX10
Definition raw.h:212
@ SPA_AUDIO_CHANNEL_AUX33
Definition raw.h:235
@ SPA_AUDIO_CHANNEL_AUX12
Definition raw.h:214
@ SPA_AUDIO_CHANNEL_BLC
bottom left center
Definition raw.h:198
@ SPA_AUDIO_CHANNEL_AUX6
Definition raw.h:208
@ SPA_AUDIO_CHANNEL_AUX23
Definition raw.h:225
@ SPA_AUDIO_CHANNEL_TRC
top rear center
Definition raw.h:181
@ SPA_AUDIO_CHANNEL_AUX48
Definition raw.h:250
@ SPA_AUDIO_CHANNEL_AUX13
Definition raw.h:215
@ SPA_AUDIO_CHANNEL_START_Aux
aux channels
Definition raw.h:201
@ SPA_AUDIO_CHANNEL_TFC
top front center
Definition raw.h:178
@ SPA_AUDIO_CHANNEL_TFR
top front right
Definition raw.h:179
@ SPA_AUDIO_CHANNEL_AUX61
Definition raw.h:263
@ SPA_AUDIO_CHANNEL_AUX28
Definition raw.h:230
@ SPA_AUDIO_CHANNEL_AUX30
Definition raw.h:232
@ SPA_AUDIO_CHANNEL_RLC
rear left center
Definition raw.h:183
@ SPA_AUDIO_CHANNEL_LFE2
LFE 2.
Definition raw.h:187
@ SPA_AUDIO_CHANNEL_AUX35
Definition raw.h:237
@ SPA_AUDIO_CHANNEL_AUX2
Definition raw.h:204
@ SPA_AUDIO_CHANNEL_RR
rear right
Definition raw.h:175
@ SPA_AUDIO_CHANNEL_TRL
top rear left
Definition raw.h:180
@ SPA_AUDIO_CHANNEL_AUX7
Definition raw.h:209
@ SPA_AUDIO_CHANNEL_AUX44
Definition raw.h:246
@ SPA_AUDIO_CHANNEL_LLFE
left LFE
Definition raw.h:195
@ SPA_AUDIO_CHANNEL_AUX41
Definition raw.h:243
@ SPA_AUDIO_CHANNEL_AUX8
Definition raw.h:210
@ SPA_AUDIO_CHANNEL_AUX39
Definition raw.h:241
@ SPA_AUDIO_CHANNEL_AUX54
Definition raw.h:256
@ SPA_AUDIO_CHANNEL_AUX19
Definition raw.h:221
@ SPA_AUDIO_CHANNEL_AUX59
Definition raw.h:261
@ SPA_AUDIO_CHANNEL_TRR
top rear right
Definition raw.h:182
@ SPA_AUDIO_CHANNEL_UNKNOWN
unspecified
Definition raw.h:160
@ SPA_AUDIO_CHANNEL_RL
rear left
Definition raw.h:174
@ SPA_AUDIO_CHANNEL_AUX37
Definition raw.h:239
@ SPA_AUDIO_CHANNEL_AUX21
Definition raw.h:223
@ SPA_AUDIO_CHANNEL_AUX38
Definition raw.h:240
@ SPA_AUDIO_CHANNEL_AUX58
Definition raw.h:260
@ SPA_AUDIO_CHANNEL_AUX4
Definition raw.h:206
@ SPA_AUDIO_CHANNEL_NA
N/A, silent.
Definition raw.h:161
@ SPA_AUDIO_CHANNEL_TSL
top side left
Definition raw.h:193
@ SPA_AUDIO_CHANNEL_LFE
LFE.
Definition raw.h:168
@ SPA_AUDIO_CHANNEL_SR
side right
Definition raw.h:170
@ SPA_AUDIO_CHANNEL_FCH
front center high
Definition raw.h:189
@ SPA_AUDIO_CHANNEL_AUX45
Definition raw.h:247
@ SPA_AUDIO_CHANNEL_LAST_Aux
aux channels
Definition raw.h:267
@ SPA_AUDIO_CHANNEL_TSR
top side right
Definition raw.h:194
@ SPA_AUDIO_CHANNEL_TFL
top front left
Definition raw.h:177
@ SPA_AUDIO_CHANNEL_AUX9
Definition raw.h:211
@ SPA_AUDIO_CHANNEL_AUX55
Definition raw.h:257
@ SPA_AUDIO_CHANNEL_AUX51
Definition raw.h:253
@ SPA_AUDIO_CHANNEL_TC
top center
Definition raw.h:176
@ SPA_AUDIO_CHANNEL_AUX16
Definition raw.h:218
@ SPA_AUDIO_CHANNEL_FRC
front right center
Definition raw.h:172
@ SPA_AUDIO_CHANNEL_RC
rear center
Definition raw.h:173
@ SPA_AUDIO_CHANNEL_AUX36
Definition raw.h:238
@ SPA_AUDIO_CHANNEL_AUX26
Definition raw.h:228
@ SPA_AUDIO_CHANNEL_AUX40
Definition raw.h:242
@ SPA_AUDIO_CHANNEL_FL
front left
Definition raw.h:165
@ SPA_AUDIO_CHANNEL_MONO
mono stream
Definition raw.h:163
@ SPA_AUDIO_CHANNEL_AUX49
Definition raw.h:251
@ SPA_AUDIO_CHANNEL_AUX18
Definition raw.h:220
@ SPA_AUDIO_CHANNEL_AUX1
Definition raw.h:203
@ SPA_AUDIO_CHANNEL_AUX47
Definition raw.h:249
@ SPA_AUDIO_CHANNEL_AUX11
Definition raw.h:213
@ SPA_AUDIO_CHANNEL_FLH
front left high
Definition raw.h:188
@ SPA_AUDIO_CHANNEL_AUX14
Definition raw.h:216
@ SPA_AUDIO_CHANNEL_AUX32
Definition raw.h:234
@ SPA_AUDIO_CHANNEL_FRW
front right wide
Definition raw.h:186
@ SPA_AUDIO_CHANNEL_AUX29
Definition raw.h:231
@ SPA_AUDIO_CHANNEL_RRC
rear right center
Definition raw.h:184
@ SPA_AUDIO_CHANNEL_SL
side left
Definition raw.h:169
@ SPA_AUDIO_CHANNEL_AUX15
Definition raw.h:217
@ SPA_AUDIO_CHANNEL_AUX24
Definition raw.h:226
@ SPA_AUDIO_CHANNEL_AUX20
Definition raw.h:222
@ SPA_AUDIO_CHANNEL_AUX22
Definition raw.h:224
@ SPA_AUDIO_CHANNEL_FRH
front right high
Definition raw.h:190
@ SPA_AUDIO_FORMAT_S32
Definition raw.h:98
@ SPA_AUDIO_FORMAT_F64_LE
Definition raw.h:65
@ SPA_AUDIO_FORMAT_U16_OE
Definition raw.h:109
@ SPA_AUDIO_FORMAT_F32_OE
Definition raw.h:120
@ SPA_AUDIO_FORMAT_U16_BE
Definition raw.h:42
@ SPA_AUDIO_FORMAT_S16P
Definition raw.h:74
@ SPA_AUDIO_FORMAT_U20_OE
Definition raw.h:117
@ SPA_AUDIO_FORMAT_U24_32_BE
Definition raw.h:46
@ SPA_AUDIO_FORMAT_U24_32
Definition raw.h:97
@ SPA_AUDIO_FORMAT_U24_OE
Definition raw.h:115
@ SPA_AUDIO_FORMAT_U18_LE
Definition raw.h:61
@ SPA_AUDIO_FORMAT_S18_LE
Definition raw.h:59
@ SPA_AUDIO_FORMAT_U32_BE
Definition raw.h:50
@ SPA_AUDIO_FORMAT_ULAW
Definition raw.h:68
@ SPA_AUDIO_FORMAT_U32_LE
Definition raw.h:49
@ SPA_AUDIO_FORMAT_S20
Definition raw.h:102
@ SPA_AUDIO_FORMAT_S32_BE
Definition raw.h:48
@ SPA_AUDIO_FORMAT_DSP_F64
Definition raw.h:90
@ SPA_AUDIO_FORMAT_F32P
Definition raw.h:78
@ SPA_AUDIO_FORMAT_S24_32_LE
Definition raw.h:43
@ SPA_AUDIO_FORMAT_S16_LE
Definition raw.h:39
@ SPA_AUDIO_FORMAT_S18_OE
Definition raw.h:118
@ SPA_AUDIO_FORMAT_F32_BE
Definition raw.h:64
@ SPA_AUDIO_FORMAT_F32_LE
Definition raw.h:63
@ SPA_AUDIO_FORMAT_U18_OE
Definition raw.h:119
@ SPA_AUDIO_FORMAT_START_Planar
Definition raw.h:72
@ SPA_AUDIO_FORMAT_START_Interleaved
Definition raw.h:36
@ SPA_AUDIO_FORMAT_U32
Definition raw.h:99
@ SPA_AUDIO_FORMAT_S16_OE
Definition raw.h:108
@ SPA_AUDIO_FORMAT_S32_OE
Definition raw.h:112
@ SPA_AUDIO_FORMAT_U24_BE
Definition raw.h:54
@ SPA_AUDIO_FORMAT_U24_LE
Definition raw.h:53
@ SPA_AUDIO_FORMAT_U18_BE
Definition raw.h:62
@ SPA_AUDIO_FORMAT_S20_BE
Definition raw.h:56
@ SPA_AUDIO_FORMAT_U24_32_LE
Definition raw.h:45
@ SPA_AUDIO_FORMAT_U20_LE
Definition raw.h:57
@ SPA_AUDIO_FORMAT_S24P
Definition raw.h:77
@ SPA_AUDIO_FORMAT_S32_LE
Definition raw.h:47
@ SPA_AUDIO_FORMAT_DSP_F32
Definition raw.h:89
@ SPA_AUDIO_FORMAT_S24_32P
Definition raw.h:75
@ SPA_AUDIO_FORMAT_S20_OE
Definition raw.h:116
@ SPA_AUDIO_FORMAT_S8P
Definition raw.h:80
@ SPA_AUDIO_FORMAT_U24
Definition raw.h:101
@ SPA_AUDIO_FORMAT_START_Other
Definition raw.h:83
@ SPA_AUDIO_FORMAT_UNKNOWN
Definition raw.h:32
@ SPA_AUDIO_FORMAT_F64_BE
Definition raw.h:66
@ SPA_AUDIO_FORMAT_F64P
Definition raw.h:79
@ SPA_AUDIO_FORMAT_U20
Definition raw.h:103
@ SPA_AUDIO_FORMAT_S8
Definition raw.h:37
@ SPA_AUDIO_FORMAT_U32_OE
Definition raw.h:113
@ SPA_AUDIO_FORMAT_U8
Definition raw.h:38
@ SPA_AUDIO_FORMAT_U16_LE
Definition raw.h:41
@ SPA_AUDIO_FORMAT_S24_LE
Definition raw.h:51
@ SPA_AUDIO_FORMAT_DSP_S32
Definition raw.h:88
@ SPA_AUDIO_FORMAT_U18
Definition raw.h:105
@ SPA_AUDIO_FORMAT_U20_BE
Definition raw.h:58
@ SPA_AUDIO_FORMAT_S24
Definition raw.h:100
@ SPA_AUDIO_FORMAT_ENCODED
Definition raw.h:33
@ SPA_AUDIO_FORMAT_S16_BE
Definition raw.h:40
@ SPA_AUDIO_FORMAT_S24_BE
Definition raw.h:52
@ SPA_AUDIO_FORMAT_U8P
Definition raw.h:73
@ SPA_AUDIO_FORMAT_ALAW
Definition raw.h:69
@ SPA_AUDIO_FORMAT_S32P
Definition raw.h:76
@ SPA_AUDIO_FORMAT_S24_32_OE
Definition raw.h:110
@ SPA_AUDIO_FORMAT_U24_32_OE
Definition raw.h:111
@ SPA_AUDIO_FORMAT_S24_32_BE
Definition raw.h:44
@ SPA_AUDIO_FORMAT_S16
Definition raw.h:94
@ SPA_AUDIO_FORMAT_S24_32
Definition raw.h:96
@ SPA_AUDIO_FORMAT_F64
Definition raw.h:107
@ SPA_AUDIO_FORMAT_F32
Definition raw.h:106
@ SPA_AUDIO_FORMAT_S20_LE
Definition raw.h:55
@ SPA_AUDIO_FORMAT_S18
Definition raw.h:104
@ SPA_AUDIO_FORMAT_F64_OE
Definition raw.h:121
@ SPA_AUDIO_FORMAT_S18_BE
Definition raw.h:60
@ SPA_AUDIO_FORMAT_S24_OE
Definition raw.h:114
@ SPA_AUDIO_FORMAT_U16
Definition raw.h:95
@ SPA_AUDIO_VOLUME_RAMP_CUBIC
Definition raw.h:275
@ SPA_AUDIO_VOLUME_RAMP_LINEAR
Definition raw.h:274
@ SPA_AUDIO_VOLUME_RAMP_INVALID
Definition raw.h:273
Audio information description.
Definition raw.h:284
enum spa_audio_format format
Definition raw.h:285
uint32_t channels
Definition raw.h:288
uint32_t flags
Definition raw.h:286
uint32_t position[SPA_AUDIO_MAX_CHANNELS]
Definition raw.h:289
uint32_t rate
Definition raw.h:287