PulseAudio: sample.h Source File (original) (raw)

1 #ifndef foosamplehfoo

2 #define foosamplehfoo

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24 #include <inttypes.h>

25 #include <sys/types.h>

26 #include <sys/param.h>

27

29 #include <pulse/cdecl.h>

30 #include <pulse/version.h>

31

110 PA_C_DECL_BEGIN

111

112 #if !defined(WORDS_BIGENDIAN)

113

114 #if defined(__BYTE_ORDER)

115 #if __BYTE_ORDER == __BIG_ENDIAN

116 #define WORDS_BIGENDIAN

117 #endif

118 #endif

119

120

121 #if defined(__sparc__) && defined(_BIG_ENDIAN)

122 #define WORDS_BIGENDIAN

123 #endif

124

125 #endif

126

128 #define PA_CHANNELS_MAX 32U

129

131 #define PA_RATE_MAX (48000U*8U)

132

174

175

176

177

184

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

196

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

207 #else

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

218

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

229 #endif

230

232 #define PA_SAMPLE_FLOAT32 PA_SAMPLE_FLOAT32NE

233

235

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

262

265

269

272

275

279

284

290

295

298

301

305

308

311

314

317

323 #define PA_SAMPLE_SPEC_SNPRINT_MAX 32

324

327

333 #define PA_BYTES_SNPRINT_MAX 11

334

337

342

347

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)

351 #else

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)

360 #endif

361

362 PA_C_DECL_END

363

364 #endif

#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