25 #include <sys/types.h>
26 #include <sys/param.h>
29 #include <pulse/cdecl.h>
30 #include <pulse/version.h>
112 #if !defined(WORDS_BIGENDIAN)
114 #if defined(__BYTE_ORDER)
115 #if __BYTE_ORDER == __BIG_ENDIAN
116 #define WORDS_BIGENDIAN
121 #if defined(__sparc__) && defined(_BIG_ENDIAN)
122 #define WORDS_BIGENDIAN
128 #define PA_CHANNELS_MAX 32U
131 #define PA_RATE_MAX (48000U*8U)
185 #ifdef WORDS_BIGENDIAN
187 #define PA_SAMPLE_S16NE PA_SAMPLE_S16BE
189 #define PA_SAMPLE_FLOAT32NE PA_SAMPLE_FLOAT32BE
191 #define PA_SAMPLE_S32NE PA_SAMPLE_S32BE
193 #define PA_SAMPLE_S24NE PA_SAMPLE_S24BE
195 #define PA_SAMPLE_S24_32NE PA_SAMPLE_S24_32BE
198 #define PA_SAMPLE_S16RE PA_SAMPLE_S16LE
200 #define PA_SAMPLE_FLOAT32RE PA_SAMPLE_FLOAT32LE
202 #define PA_SAMPLE_S32RE PA_SAMPLE_S32LE
204 #define PA_SAMPLE_S24RE PA_SAMPLE_S24LE
206 #define PA_SAMPLE_S24_32RE PA_SAMPLE_S24_32LE
209 #define PA_SAMPLE_S16NE PA_SAMPLE_S16LE
211 #define PA_SAMPLE_FLOAT32NE PA_SAMPLE_FLOAT32LE
213 #define PA_SAMPLE_S32NE PA_SAMPLE_S32LE
215 #define PA_SAMPLE_S24NE PA_SAMPLE_S24LE
217 #define PA_SAMPLE_S24_32NE PA_SAMPLE_S24_32LE
220 #define PA_SAMPLE_S16RE PA_SAMPLE_S16BE
222 #define PA_SAMPLE_FLOAT32RE PA_SAMPLE_FLOAT32BE
224 #define PA_SAMPLE_S32RE PA_SAMPLE_S32BE
226 #define PA_SAMPLE_S24RE PA_SAMPLE_S24BE
228 #define PA_SAMPLE_S24_32RE PA_SAMPLE_S24_32BE
232 #define PA_SAMPLE_FLOAT32 PA_SAMPLE_FLOAT32NE
236 #define PA_SAMPLE_U8 PA_SAMPLE_U8
237 #define PA_SAMPLE_ALAW PA_SAMPLE_ALAW
238 #define PA_SAMPLE_ULAW PA_SAMPLE_ULAW
239 #define PA_SAMPLE_S16LE PA_SAMPLE_S16LE
240 #define PA_SAMPLE_S16BE PA_SAMPLE_S16BE
241 #define PA_SAMPLE_FLOAT32LE PA_SAMPLE_FLOAT32LE
242 #define PA_SAMPLE_FLOAT32BE PA_SAMPLE_FLOAT32BE
243 #define PA_SAMPLE_S32LE PA_SAMPLE_S32LE
244 #define PA_SAMPLE_S32BE PA_SAMPLE_S32BE
245 #define PA_SAMPLE_S24LE PA_SAMPLE_S24LE
246 #define PA_SAMPLE_S24BE PA_SAMPLE_S24BE
247 #define PA_SAMPLE_S24_32LE PA_SAMPLE_S24_32LE
248 #define PA_SAMPLE_S24_32BE PA_SAMPLE_S24_32BE
323 #define PA_SAMPLE_SPEC_SNPRINT_MAX 32
333 #define PA_BYTES_SNPRINT_MAX 11
348 #ifdef WORDS_BIGENDIAN
349 #define pa_sample_format_is_ne(f) pa_sample_format_is_be(f)
350 #define pa_sample_format_is_re(f) pa_sample_format_is_le(f)
355 #define pa_sample_format_is_ne(f) pa_sample_format_is_le(f)
359 #define pa_sample_format_is_re(f) pa_sample_format_is_be(f)
#define PA_GCC_PURE
This function's return value depends only the arguments list and global state.
Definition: gccmacro.h:71
size_t pa_frame_size(const pa_sample_spec *spec) PA_GCC_PURE
Return the size of a frame with the specific sample type.
int pa_sample_spec_valid(const pa_sample_spec *spec) PA_GCC_PURE
Return non-zero when the sample type specification is valid.
pa_sample_format_t pa_parse_sample_format(const char *format) PA_GCC_PURE
Parse a sample format text.
pa_sample_format
Sample format.
Definition: sample.h:134
@ PA_SAMPLE_ALAW
8 Bit a-Law
Definition: sample.h:138
@ PA_SAMPLE_FLOAT32BE
32 Bit IEEE floating point, big endian, range -1.0 to 1.0
Definition: sample.h:153
@ PA_SAMPLE_S32LE
Signed 32 Bit PCM, little endian (PC)
Definition: sample.h:156
@ PA_SAMPLE_U8
Unsigned 8 Bit PCM.
Definition: sample.h:135
@ PA_SAMPLE_S16LE
Signed 16 Bit PCM, little endian (PC)
Definition: sample.h:144
@ PA_SAMPLE_S24_32LE
Signed 24 Bit PCM in LSB of 32 Bit words, little endian (PC).
Definition: sample.h:168
@ PA_SAMPLE_S16BE
Signed 16 Bit PCM, big endian.
Definition: sample.h:147
@ PA_SAMPLE_ULAW
8 Bit mu-Law
Definition: sample.h:141
@ PA_SAMPLE_MAX
Upper limit of valid sample types.
Definition: sample.h:178
@ PA_SAMPLE_S24LE
Signed 24 Bit PCM packed, little endian (PC).
Definition: sample.h:162
@ PA_SAMPLE_S24BE
Signed 24 Bit PCM packed, big endian.
Definition: sample.h:165
@ PA_SAMPLE_S24_32BE
Signed 24 Bit PCM in LSB of 32 Bit words, big endian.
Definition: sample.h:171
@ PA_SAMPLE_FLOAT32LE
32 Bit IEEE floating point, little endian (PC), range -1.0 to 1.0
Definition: sample.h:150
@ PA_SAMPLE_S32BE
Signed 32 Bit PCM, big endian.
Definition: sample.h:159
@ PA_SAMPLE_INVALID
An invalid value.
Definition: sample.h:181
char * pa_sample_spec_snprint(char *s, size_t l, const pa_sample_spec *spec)
Pretty print a sample type specification to a string.
size_t pa_sample_size_of_format(pa_sample_format_t f) PA_GCC_PURE
Similar to pa_sample_size() but take a sample format instead of a full sample spec.
char * pa_bytes_snprint(char *s, size_t l, unsigned v)
Pretty print a byte size value (i.e. "2.5 MiB").
int pa_sample_format_valid(unsigned format) PA_GCC_PURE
Return non-zero if the given integer is a valid sample format.
pa_sample_spec * pa_sample_spec_init(pa_sample_spec *spec)
Initialize the specified sample spec and return a pointer to it.
size_t pa_bytes_per_second(const pa_sample_spec *spec) PA_GCC_PURE
Return the amount of bytes that constitute playback of one second of audio, with the specified sample...
const char * pa_sample_format_to_string(pa_sample_format_t f) PA_GCC_PURE
Return a descriptive string for the specified sample format.
int pa_channels_valid(uint8_t channels) PA_GCC_PURE
Return non-zero if the channel count is within the supported range.
int pa_sample_format_is_le(pa_sample_format_t f) PA_GCC_PURE
Returns 1 when the specified format is little endian, 0 when big endian.
uint64_t pa_usec_t
Type for usec specifications (unsigned).
Definition: sample.h:264
enum pa_sample_format pa_sample_format_t
Sample format.
int pa_sample_format_is_be(pa_sample_format_t f) PA_GCC_PURE
Returns 1 when the specified format is big endian, 0 when little endian.
size_t pa_usec_to_bytes(pa_usec_t t, const pa_sample_spec *spec) PA_GCC_PURE
Calculates the size of a buffer required, for playback duration of the time specified,...
size_t pa_sample_size(const pa_sample_spec *spec) PA_GCC_PURE
Return the size of a sample with the specific sample type.
pa_usec_t pa_bytes_to_usec(uint64_t length, const pa_sample_spec *spec) PA_GCC_PURE
Calculate the time it would take to play a buffer of the specified size with the specified sample typ...
int pa_sample_spec_equal(const pa_sample_spec *a, const pa_sample_spec *b) PA_GCC_PURE
Return non-zero when the two sample type specifications match.
struct pa_sample_spec pa_sample_spec
A sample format and attribute specification.
int pa_sample_rate_valid(uint32_t rate) PA_GCC_PURE
Return non-zero if the rate is within the supported range.
A sample format and attribute specification.
Definition: sample.h:252
uint32_t rate
The sample rate.
Definition: sample.h:256
uint8_t channels
Audio channels.
Definition: sample.h:259
pa_sample_format_t format
The sample format.
Definition: sample.h:253