PipeWire 1.6.8

Loading...
Searching...
No Matches
raw-types.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_TYPES_H
6#define SPA_AUDIO_RAW_TYPES_H
7
8#include <spa/utils/type.h>
9#include <spa/utils/string.h>
10#include <spa/param/audio/raw.h>
11
12#ifdef __cplusplus
13 extern "C" {
14#endif
15
20
21#ifndef SPA_API_AUDIO_RAW_TYPES
22 #ifdef SPA_API_IMPL
23 #define SPA_API_AUDIO_RAW_TYPES SPA_API_IMPL
24 #else
25 #define SPA_API_AUDIO_RAW_TYPES static inline
26 #endif
27#endif
28
29#define SPA_TYPE_INFO_AudioFormat SPA_TYPE_INFO_ENUM_BASE "AudioFormat"
30#define SPA_TYPE_INFO_AUDIO_FORMAT_BASE SPA_TYPE_INFO_AudioFormat ":"
31
32 static const struct spa_type_info spa_type_audio_format[] = {
33 { SPA_AUDIO_FORMAT_UNKNOWN, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "UNKNOWN", NULL },
34 { SPA_AUDIO_FORMAT_ENCODED, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "ENCODED", NULL },
35 { SPA_AUDIO_FORMAT_S8, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S8", NULL },
36 { SPA_AUDIO_FORMAT_U8, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U8", NULL },
37 { SPA_AUDIO_FORMAT_S16_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16LE", NULL },
38 { SPA_AUDIO_FORMAT_S16_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16BE", NULL },
39 { SPA_AUDIO_FORMAT_U16_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U16LE", NULL },
40 { SPA_AUDIO_FORMAT_U16_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U16BE", NULL },
41 { SPA_AUDIO_FORMAT_S24_32_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32LE", NULL },
42 { SPA_AUDIO_FORMAT_S24_32_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32BE", NULL },
43 { SPA_AUDIO_FORMAT_U24_32_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24_32LE", NULL },
44 { SPA_AUDIO_FORMAT_U24_32_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24_32BE", NULL },
45 { SPA_AUDIO_FORMAT_S32_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S32LE", NULL },
46 { SPA_AUDIO_FORMAT_S32_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S32BE", NULL },
47 { SPA_AUDIO_FORMAT_U32_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U32LE", NULL },
48 { SPA_AUDIO_FORMAT_U32_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U32BE", NULL },
49 { SPA_AUDIO_FORMAT_S24_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24LE", NULL },
50 { SPA_AUDIO_FORMAT_S24_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24BE", NULL },
51 { SPA_AUDIO_FORMAT_U24_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24LE", NULL },
52 { SPA_AUDIO_FORMAT_U24_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24BE", NULL },
53 { SPA_AUDIO_FORMAT_S20_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S20LE", NULL },
54 { SPA_AUDIO_FORMAT_S20_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S20BE", NULL },
55 { SPA_AUDIO_FORMAT_U20_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U20LE", NULL },
56 { SPA_AUDIO_FORMAT_U20_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U20BE", NULL },
57 { SPA_AUDIO_FORMAT_S18_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S18LE", NULL },
58 { SPA_AUDIO_FORMAT_S18_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S18BE", NULL },
59 { SPA_AUDIO_FORMAT_U18_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U18LE", NULL },
60 { SPA_AUDIO_FORMAT_U18_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U18BE", NULL },
61 { SPA_AUDIO_FORMAT_F32_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F32LE", NULL },
62 { SPA_AUDIO_FORMAT_F32_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F32BE", NULL },
63 { SPA_AUDIO_FORMAT_F64_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64LE", NULL },
64 { SPA_AUDIO_FORMAT_F64_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64BE", NULL },
65
66 { SPA_AUDIO_FORMAT_ULAW, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "ULAW", NULL },
67 { SPA_AUDIO_FORMAT_ALAW, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "ALAW", NULL },
68
69 { SPA_AUDIO_FORMAT_U8P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U8P", NULL },
70 { SPA_AUDIO_FORMAT_S16P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16P", NULL },
71 { SPA_AUDIO_FORMAT_S24_32P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32P", NULL },
72 { SPA_AUDIO_FORMAT_S32P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S32P", NULL },
73 { SPA_AUDIO_FORMAT_S24P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24P", NULL },
74 { SPA_AUDIO_FORMAT_F32P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F32P", NULL },
75 { SPA_AUDIO_FORMAT_F64P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64P", NULL },
76 { SPA_AUDIO_FORMAT_S8P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S8P", NULL },
77
78#if __BYTE_ORDER == __BIG_ENDIAN
79 { SPA_AUDIO_FORMAT_S16_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16OE", NULL },
80 { SPA_AUDIO_FORMAT_S16, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16", NULL },
81 { SPA_AUDIO_FORMAT_U16_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U16OE", NULL },
82 { SPA_AUDIO_FORMAT_U16, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U16", NULL },
83 { SPA_AUDIO_FORMAT_S24_32_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32OE", NULL },
84 { SPA_AUDIO_FORMAT_S24_32, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32", NULL },
85 { SPA_AUDIO_FORMAT_U24_32_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24_32OE", NULL },
86 { SPA_AUDIO_FORMAT_U24_32, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24_32", NULL },
87 { SPA_AUDIO_FORMAT_S32_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S32OE", NULL },
88 { SPA_AUDIO_FORMAT_S32, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S32", NULL },
89 { SPA_AUDIO_FORMAT_U32_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U32OE", NULL },
90 { SPA_AUDIO_FORMAT_U32, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U32", NULL },
91 { SPA_AUDIO_FORMAT_S24_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24OE", NULL },
92 { SPA_AUDIO_FORMAT_S24, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24", NULL },
93 { SPA_AUDIO_FORMAT_U24_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24OE", NULL },
94 { SPA_AUDIO_FORMAT_U24, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24", NULL },
95 { SPA_AUDIO_FORMAT_S20_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S20OE", NULL },
96 { SPA_AUDIO_FORMAT_S20, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S20", NULL },
97 { SPA_AUDIO_FORMAT_U20_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U20OE", NULL },
98 { SPA_AUDIO_FORMAT_U20, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U20", NULL },
99 { SPA_AUDIO_FORMAT_S18_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S18OE", NULL },
100 { SPA_AUDIO_FORMAT_S18, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S18", NULL },
101 { SPA_AUDIO_FORMAT_U18_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U18OE", NULL },
102 { SPA_AUDIO_FORMAT_U18, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U18", NULL },
103 { SPA_AUDIO_FORMAT_F32_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F32OE", NULL },
104 { SPA_AUDIO_FORMAT_F32, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F32", NULL },
105 { SPA_AUDIO_FORMAT_F64_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64OE", NULL },
106 { SPA_AUDIO_FORMAT_F64, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64", NULL },
107#elif __BYTE_ORDER == __LITTLE_ENDIAN
108 { SPA_AUDIO_FORMAT_S16, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16", NULL },
109 { SPA_AUDIO_FORMAT_S16_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16OE", NULL },
110 { SPA_AUDIO_FORMAT_U16, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U16", NULL },
111 { SPA_AUDIO_FORMAT_U16_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U16OE", NULL },
112 { SPA_AUDIO_FORMAT_S24_32, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32", NULL },
113 { SPA_AUDIO_FORMAT_S24_32_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32OE", NULL },
114 { SPA_AUDIO_FORMAT_U24_32, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24_32", NULL },
115 { SPA_AUDIO_FORMAT_U24_32_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24_32OE", NULL },
116 { SPA_AUDIO_FORMAT_S32, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S32", NULL },
117 { SPA_AUDIO_FORMAT_S32_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S32OE", NULL },
118 { SPA_AUDIO_FORMAT_U32, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U32", NULL },
119 { SPA_AUDIO_FORMAT_U32_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U32OE", NULL },
120 { SPA_AUDIO_FORMAT_S24, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24", NULL },
121 { SPA_AUDIO_FORMAT_S24_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24OE", NULL },
122 { SPA_AUDIO_FORMAT_U24, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24", NULL },
123 { SPA_AUDIO_FORMAT_U24_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24OE", NULL },
124 { SPA_AUDIO_FORMAT_S20, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S20", NULL },
125 { SPA_AUDIO_FORMAT_S20_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S20OE", NULL },
126 { SPA_AUDIO_FORMAT_U20, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U20", NULL },
127 { SPA_AUDIO_FORMAT_U20_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U20OE", NULL },
128 { SPA_AUDIO_FORMAT_S18, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S18", NULL },
129 { SPA_AUDIO_FORMAT_S18_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S18OE", NULL },
130 { SPA_AUDIO_FORMAT_U18, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U18", NULL },
131 { SPA_AUDIO_FORMAT_U18_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U18OE", NULL },
132 { SPA_AUDIO_FORMAT_F32, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F32", NULL },
133 { SPA_AUDIO_FORMAT_F32_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F32OE", NULL },
134 { SPA_AUDIO_FORMAT_F64, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64", NULL },
135 { SPA_AUDIO_FORMAT_F64_OE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64OE", NULL },
136#endif
137 { 0, 0, NULL, NULL },
138};
139
140 SPA_API_AUDIO_RAW_TYPES uint32_t spa_type_audio_format_from_short_name(const char *name)
141{
142 return spa_type_from_short_name(name, spa_type_audio_format, SPA_AUDIO_FORMAT_UNKNOWN);
143}
144 SPA_API_AUDIO_RAW_TYPES const char * spa_type_audio_format_to_short_name(uint32_t type)
145{
146 return spa_type_to_short_name(type, spa_type_audio_format, "UNKNOWN");
147}
148
149#define SPA_TYPE_INFO_AudioFlags SPA_TYPE_INFO_FLAGS_BASE "AudioFlags"
150#define SPA_TYPE_INFO_AUDIO_FLAGS_BASE SPA_TYPE_INFO_AudioFlags ":"
151
152 static const struct spa_type_info spa_type_audio_flags[] = {
153 { SPA_AUDIO_FLAG_NONE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FLAGS_BASE "none", NULL },
154 { SPA_AUDIO_FLAG_UNPOSITIONED, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FLAGS_BASE "unpositioned", NULL },
155 { 0, 0, NULL, NULL },
156};
157
158#define SPA_TYPE_INFO_AudioChannel SPA_TYPE_INFO_ENUM_BASE "AudioChannel"
159#define SPA_TYPE_INFO_AUDIO_CHANNEL_BASE SPA_TYPE_INFO_AudioChannel ":"
160
161 static const struct spa_type_info spa_type_audio_channel[] = {
162 { SPA_AUDIO_CHANNEL_UNKNOWN, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "UNK", NULL },
163 { SPA_AUDIO_CHANNEL_NA, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "NA", NULL },
164 { SPA_AUDIO_CHANNEL_MONO, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "MONO", NULL },
165 { SPA_AUDIO_CHANNEL_FL, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FL", NULL },
166 { SPA_AUDIO_CHANNEL_FR, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FR", NULL },
167 { SPA_AUDIO_CHANNEL_FC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FC", NULL },
168 { SPA_AUDIO_CHANNEL_LFE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "LFE", NULL },
169 { SPA_AUDIO_CHANNEL_SL, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "SL", NULL },
170 { SPA_AUDIO_CHANNEL_SR, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "SR", NULL },
171 { SPA_AUDIO_CHANNEL_FLC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FLC", NULL },
172 { SPA_AUDIO_CHANNEL_FRC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FRC", NULL },
173 { SPA_AUDIO_CHANNEL_RC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RC", NULL },
174 { SPA_AUDIO_CHANNEL_RL, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RL", NULL },
175 { SPA_AUDIO_CHANNEL_RR, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RR", NULL },
176 { SPA_AUDIO_CHANNEL_TC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TC", NULL },
177 { SPA_AUDIO_CHANNEL_TFL, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFL", NULL },
178 { SPA_AUDIO_CHANNEL_TFC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFC", NULL },
179 { SPA_AUDIO_CHANNEL_TFR, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFR", NULL },
180 { SPA_AUDIO_CHANNEL_TRL, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TRL", NULL },
181 { SPA_AUDIO_CHANNEL_TRC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TRC", NULL },
182 { SPA_AUDIO_CHANNEL_TRR, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TRR", NULL },
183 { SPA_AUDIO_CHANNEL_RLC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RLC", NULL },
184 { SPA_AUDIO_CHANNEL_RRC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RRC", NULL },
185 { SPA_AUDIO_CHANNEL_FLW, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FLW", NULL },
186 { SPA_AUDIO_CHANNEL_FRW, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FRW", NULL },
187 { SPA_AUDIO_CHANNEL_LFE2, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "LFE2", NULL },
188 { SPA_AUDIO_CHANNEL_FLH, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FLH", NULL },
189 { SPA_AUDIO_CHANNEL_FCH, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FCH", NULL },
190 { SPA_AUDIO_CHANNEL_FRH, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FRH", NULL },
191 { SPA_AUDIO_CHANNEL_TFLC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFLC", NULL },
192 { SPA_AUDIO_CHANNEL_TFRC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFRC", NULL },
193 { SPA_AUDIO_CHANNEL_TSL, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TSL", NULL },
194 { SPA_AUDIO_CHANNEL_TSR, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TSR", NULL },
195 { SPA_AUDIO_CHANNEL_LLFE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "LLFE", NULL },
196 { SPA_AUDIO_CHANNEL_RLFE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RLFE", NULL },
197 { SPA_AUDIO_CHANNEL_BC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "BC", NULL },
198 { SPA_AUDIO_CHANNEL_BLC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "BLC", NULL },
199 { SPA_AUDIO_CHANNEL_BRC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "BRC", NULL },
200
201 { SPA_AUDIO_CHANNEL_AUX0, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX0", NULL },
202 { SPA_AUDIO_CHANNEL_AUX1, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX1", NULL },
203 { SPA_AUDIO_CHANNEL_AUX2, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX2", NULL },
204 { SPA_AUDIO_CHANNEL_AUX3, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX3", NULL },
205 { SPA_AUDIO_CHANNEL_AUX4, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX4", NULL },
206 { SPA_AUDIO_CHANNEL_AUX5, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX5", NULL },
207 { SPA_AUDIO_CHANNEL_AUX6, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX6", NULL },
208 { SPA_AUDIO_CHANNEL_AUX7, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX7", NULL },
209 { SPA_AUDIO_CHANNEL_AUX8, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX8", NULL },
210 { SPA_AUDIO_CHANNEL_AUX9, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX9", NULL },
211 { SPA_AUDIO_CHANNEL_AUX10, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX10", NULL },
212 { SPA_AUDIO_CHANNEL_AUX11, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX11", NULL },
213 { SPA_AUDIO_CHANNEL_AUX12, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX12", NULL },
214 { SPA_AUDIO_CHANNEL_AUX13, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX13", NULL },
215 { SPA_AUDIO_CHANNEL_AUX14, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX14", NULL },
216 { SPA_AUDIO_CHANNEL_AUX15, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX15", NULL },
217 { SPA_AUDIO_CHANNEL_AUX16, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX16", NULL },
218 { SPA_AUDIO_CHANNEL_AUX17, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX17", NULL },
219 { SPA_AUDIO_CHANNEL_AUX18, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX18", NULL },
220 { SPA_AUDIO_CHANNEL_AUX19, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX19", NULL },
221 { SPA_AUDIO_CHANNEL_AUX20, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX20", NULL },
222 { SPA_AUDIO_CHANNEL_AUX21, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX21", NULL },
223 { SPA_AUDIO_CHANNEL_AUX22, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX22", NULL },
224 { SPA_AUDIO_CHANNEL_AUX23, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX23", NULL },
225 { SPA_AUDIO_CHANNEL_AUX24, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX24", NULL },
226 { SPA_AUDIO_CHANNEL_AUX25, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX25", NULL },
227 { SPA_AUDIO_CHANNEL_AUX26, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX26", NULL },
228 { SPA_AUDIO_CHANNEL_AUX27, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX27", NULL },
229 { SPA_AUDIO_CHANNEL_AUX28, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX28", NULL },
230 { SPA_AUDIO_CHANNEL_AUX29, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX29", NULL },
231 { SPA_AUDIO_CHANNEL_AUX30, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX30", NULL },
232 { SPA_AUDIO_CHANNEL_AUX31, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX31", NULL },
233 { SPA_AUDIO_CHANNEL_AUX32, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX32", NULL },
234 { SPA_AUDIO_CHANNEL_AUX33, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX33", NULL },
235 { SPA_AUDIO_CHANNEL_AUX34, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX34", NULL },
236 { SPA_AUDIO_CHANNEL_AUX35, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX35", NULL },
237 { SPA_AUDIO_CHANNEL_AUX36, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX36", NULL },
238 { SPA_AUDIO_CHANNEL_AUX37, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX37", NULL },
239 { SPA_AUDIO_CHANNEL_AUX38, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX38", NULL },
240 { SPA_AUDIO_CHANNEL_AUX39, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX39", NULL },
241 { SPA_AUDIO_CHANNEL_AUX40, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX40", NULL },
242 { SPA_AUDIO_CHANNEL_AUX41, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX41", NULL },
243 { SPA_AUDIO_CHANNEL_AUX42, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX42", NULL },
244 { SPA_AUDIO_CHANNEL_AUX43, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX43", NULL },
245 { SPA_AUDIO_CHANNEL_AUX44, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX44", NULL },
246 { SPA_AUDIO_CHANNEL_AUX45, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX45", NULL },
247 { SPA_AUDIO_CHANNEL_AUX46, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX46", NULL },
248 { SPA_AUDIO_CHANNEL_AUX47, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX47", NULL },
249 { SPA_AUDIO_CHANNEL_AUX48, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX48", NULL },
250 { SPA_AUDIO_CHANNEL_AUX49, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX49", NULL },
251 { SPA_AUDIO_CHANNEL_AUX50, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX50", NULL },
252 { SPA_AUDIO_CHANNEL_AUX51, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX51", NULL },
253 { SPA_AUDIO_CHANNEL_AUX52, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX52", NULL },
254 { SPA_AUDIO_CHANNEL_AUX53, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX53", NULL },
255 { SPA_AUDIO_CHANNEL_AUX54, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX54", NULL },
256 { SPA_AUDIO_CHANNEL_AUX55, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX55", NULL },
257 { SPA_AUDIO_CHANNEL_AUX56, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX56", NULL },
258 { SPA_AUDIO_CHANNEL_AUX57, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX57", NULL },
259 { SPA_AUDIO_CHANNEL_AUX58, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX58", NULL },
260 { SPA_AUDIO_CHANNEL_AUX59, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX59", NULL },
261 { SPA_AUDIO_CHANNEL_AUX60, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX60", NULL },
262 { SPA_AUDIO_CHANNEL_AUX61, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX61", NULL },
263 { SPA_AUDIO_CHANNEL_AUX62, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX62", NULL },
264 { SPA_AUDIO_CHANNEL_AUX63, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "AUX63", NULL },
265 { 0, 0, NULL, NULL },
266};
267
268 SPA_API_AUDIO_RAW_TYPES uint32_t spa_type_audio_channel_from_short_name(const char *name)
269{
270 uint32_t res;
271 if (spa_strstartswith(name, "AUX")) {
272 if (spa_atou32(name+3, &res, 10) && res < 0x1000)
273 res = SPA_AUDIO_CHANNEL_AUX0 + res;
274 else
275 res = SPA_AUDIO_CHANNEL_UNKNOWN;
276 } else {
277 res = spa_type_from_short_name(name, spa_type_audio_channel, SPA_AUDIO_CHANNEL_UNKNOWN);
278 }
279 return res;
280}
281 SPA_API_AUDIO_RAW_TYPES const char * spa_type_audio_channel_to_short_name(uint32_t type)
282{
283 return spa_type_to_short_name(type, spa_type_audio_channel, "UNK");
284}
285 SPA_API_AUDIO_RAW_TYPES const char * spa_type_audio_channel_make_short_name(uint32_t type,
286 char *buf, size_t size, const char *unknown)
287{
288 if (SPA_AUDIO_CHANNEL_IS_AUX(type)) {
289 snprintf(buf, size, "AUX%u", type - SPA_AUDIO_CHANNEL_AUX0);
290 } else {
291 const char *str = spa_type_to_short_name(type, spa_type_audio_channel, NULL);
292 if (str == NULL)
293 return unknown;
294 snprintf(buf, size, "%.7s", str);
295 }
296 return buf;
297}
298
299#define SPA_TYPE_INFO_AudioVolumeRampScale SPA_TYPE_INFO_ENUM_BASE "AudioVolumeRampScale"
300#define SPA_TYPE_INFO_AUDIO_VOLUME_RAMP_SCALE_BASE SPA_TYPE_INFO_AudioVolumeRampScale ":"
301
302 static const struct spa_type_info spa_type_audio_volume_ramp_scale[] = {
303 { SPA_AUDIO_VOLUME_RAMP_INVALID, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_VOLUME_RAMP_SCALE_BASE "INVALID", NULL },
304 { SPA_AUDIO_VOLUME_RAMP_LINEAR, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_VOLUME_RAMP_SCALE_BASE "LINEAR", NULL },
305 { SPA_AUDIO_VOLUME_RAMP_CUBIC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_VOLUME_RAMP_SCALE_BASE "CUBIC", NULL },
306 { 0, 0, NULL, NULL },
307};
308
311
312
313#ifdef __cplusplus
314} /* extern "C" */
315#endif
316
317#endif /* SPA_AUDIO_RAW_TYPES_H */
raw.h
spa/param/audio/raw.h
res
uint32_t int int res
Definition core.h:433
spa_type_audio_format_from_short_name
SPA_API_AUDIO_RAW_TYPES uint32_t spa_type_audio_format_from_short_name(const char *name)
Definition raw-types.h:149
spa_type_audio_format
static const struct spa_type_info spa_type_audio_format[]
Definition raw-types.h:41
SPA_TYPE_INFO_AUDIO_FORMAT_BASE
#define SPA_TYPE_INFO_AUDIO_FORMAT_BASE
Definition raw-types.h:39
SPA_API_AUDIO_RAW_TYPES
#define SPA_API_AUDIO_RAW_TYPES
Definition raw-types.h:32
spa_type_audio_channel_make_short_name
SPA_API_AUDIO_RAW_TYPES const char * spa_type_audio_channel_make_short_name(uint32_t type, char *buf, size_t size, const char *unknown)
Definition raw-types.h:298
SPA_AUDIO_FLAG_UNPOSITIONED
#define SPA_AUDIO_FLAG_UNPOSITIONED
Definition raw.h:288
spa_type_audio_volume_ramp_scale
static const struct spa_type_info spa_type_audio_volume_ramp_scale[]
Definition raw-types.h:317
spa_type_audio_flags
static const struct spa_type_info spa_type_audio_flags[]
Definition raw-types.h:163
SPA_TYPE_INFO_AUDIO_CHANNEL_BASE
#define SPA_TYPE_INFO_AUDIO_CHANNEL_BASE
Definition raw-types.h:172
spa_type_audio_channel
static const struct spa_type_info spa_type_audio_channel[]
Definition raw-types.h:174
SPA_TYPE_INFO_AUDIO_FLAGS_BASE
#define SPA_TYPE_INFO_AUDIO_FLAGS_BASE
Definition raw-types.h:161
SPA_TYPE_INFO_AUDIO_VOLUME_RAMP_SCALE_BASE
#define SPA_TYPE_INFO_AUDIO_VOLUME_RAMP_SCALE_BASE
Definition raw-types.h:315
spa_type_audio_channel_from_short_name
SPA_API_AUDIO_RAW_TYPES uint32_t spa_type_audio_channel_from_short_name(const char *name)
Definition raw-types.h:281
SPA_AUDIO_FLAG_NONE
#define SPA_AUDIO_FLAG_NONE
Extra audio flags.
Definition raw.h:286
spa_type_audio_channel_to_short_name
SPA_API_AUDIO_RAW_TYPES const char * spa_type_audio_channel_to_short_name(uint32_t type)
Definition raw-types.h:294
spa_type_audio_format_to_short_name
SPA_API_AUDIO_RAW_TYPES const char * spa_type_audio_format_to_short_name(uint32_t type)
Definition raw-types.h:153
SPA_AUDIO_CHANNEL_IS_AUX
#define SPA_AUDIO_CHANNEL_IS_AUX(ch)
Definition raw.h:276
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_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_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_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_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_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_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_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_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_strstartswith
SPA_API_STRING bool spa_strstartswith(const char *s, const char *prefix)
Definition string.h:73
spa_atou32
SPA_API_STRING bool spa_atou32(const char *str, uint32_t *val, int base)
Convert str to an uint32_t with the given base and store the result in val.
Definition string.h:139
spa_type_from_short_name
SPA_API_TYPE uint32_t spa_type_from_short_name(const char *name, const struct spa_type_info *info, uint32_t unknown)
Definition type.h:176
spa_type_to_short_name
SPA_API_TYPE const char * spa_type_to_short_name(uint32_t type, const struct spa_type_info *info, const char *unknown)
Definition type.h:197
SPA_TYPE_Int
@ SPA_TYPE_Int
Definition type.h:45
type.h
spa/utils/type.h
string.h
spa/utils/string.h
spa_type_info
Definition type.h:156
spa_type_info::type
uint32_t type
Definition type.h:157