PulseAudio: sample.h File Reference (original) (raw)
Constants and routines for sample type handling. More...
Go to the source code of this file.
Macros | |
---|---|
#define | PA_CHANNELS_MAX 32U |
Maximum number of allowed channels. More... | |
#define | PA_RATE_MAX (48000U*8U) |
Maximum allowed sample rate. More... | |
#define | PA_SAMPLE_S16NE PA_SAMPLE_S16LE |
Signed 16 Bit PCM, native endian. More... | |
#define | PA_SAMPLE_FLOAT32NE PA_SAMPLE_FLOAT32LE |
32 Bit IEEE floating point, native endian More... | |
#define | PA_SAMPLE_S32NE PA_SAMPLE_S32LE |
Signed 32 Bit PCM, native endian. More... | |
#define | PA_SAMPLE_S24NE PA_SAMPLE_S24LE |
Signed 24 Bit PCM packed, native endian. More... | |
#define | PA_SAMPLE_S24_32NE PA_SAMPLE_S24_32LE |
Signed 24 Bit PCM in LSB of 32 Bit words, native endian. More... | |
#define | PA_SAMPLE_S16RE PA_SAMPLE_S16BE |
Signed 16 Bit PCM, reverse endian. More... | |
#define | PA_SAMPLE_FLOAT32RE PA_SAMPLE_FLOAT32BE |
32 Bit IEEE floating point, reverse endian More... | |
#define | PA_SAMPLE_S32RE PA_SAMPLE_S32BE |
Signed 32 Bit PCM, reverse endian. More... | |
#define | PA_SAMPLE_S24RE PA_SAMPLE_S24BE |
Signed 24 Bit PCM, packed reverse endian. More... | |
#define | PA_SAMPLE_S24_32RE PA_SAMPLE_S24_32BE |
Signed 24 Bit PCM, in LSB of 32 Bit words, reverse endian. More... | |
#define | PA_SAMPLE_FLOAT32 PA_SAMPLE_FLOAT32NE |
A Shortcut for PA_SAMPLE_FLOAT32NE. More... | |
#define | PA_SAMPLE_SPEC_SNPRINT_MAX 32 |
Maximum required string length for pa_sample_spec_snprint(). More... | |
#define | PA_BYTES_SNPRINT_MAX 11 |
Maximum required string length for [pa_bytes_snprint()](sample%5F8h.html#a4992ec70d79de601c6f8f6cc5cab8e59 "Pretty print a byte size value (i.e. "2.5 MiB")."). More... | |
#define | pa_sample_format_is_ne(f) pa_sample_format_is_le(f) |
Returns 1 when the specified format is native endian, 0 when not. More... | |
#define | pa_sample_format_is_re(f) pa_sample_format_is_be(f) |
Returns 1 when the specified format is reverse endian, 0 when native. More... | |
Typedefs | |
---|---|
typedef enum pa_sample_format | pa_sample_format_t |
Sample format. More... | |
typedef struct pa_sample_spec | pa_sample_spec |
A sample format and attribute specification. More... | |
typedef uint64_t | pa_usec_t |
Type for usec specifications (unsigned). More... | |
Enumerations | |
---|---|
enum | pa_sample_format { PA_SAMPLE_U8, PA_SAMPLE_ALAW, PA_SAMPLE_ULAW, PA_SAMPLE_S16LE, PA_SAMPLE_S16BE, PA_SAMPLE_FLOAT32LE, PA_SAMPLE_FLOAT32BE, PA_SAMPLE_S32LE, PA_SAMPLE_S32BE, PA_SAMPLE_S24LE, PA_SAMPLE_S24BE, PA_SAMPLE_S24_32LE, PA_SAMPLE_S24_32BE, PA_SAMPLE_MAX, PA_SAMPLE_INVALID = -1 } |
Sample format. More... | |
Functions | |
---|---|
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 spec. More... | |
size_t | pa_frame_size (const pa_sample_spec *spec) PA_GCC_PURE |
Return the size of a frame with the specific sample type. More... | |
size_t | pa_sample_size (const pa_sample_spec *spec) PA_GCC_PURE |
Return the size of a sample with the specific sample type. More... | |
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. More... | |
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 type. More... | |
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, with the specified sample type. More... | |
pa_sample_spec * | pa_sample_spec_init (pa_sample_spec *spec) |
Initialize the specified sample spec and return a pointer to it. More... | |
int | pa_sample_format_valid (unsigned format) PA_GCC_PURE |
Return non-zero if the given integer is a valid sample format. More... | |
int | pa_sample_rate_valid (uint32_t rate) PA_GCC_PURE |
Return non-zero if the rate is within the supported range. More... | |
int | pa_channels_valid (uint8_t channels) PA_GCC_PURE |
Return non-zero if the channel count is within the supported range. More... | |
int | pa_sample_spec_valid (const pa_sample_spec *spec) PA_GCC_PURE |
Return non-zero when the sample type specification is valid. More... | |
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. More... | |
const char * | pa_sample_format_to_string (pa_sample_format_t f) PA_GCC_PURE |
Return a descriptive string for the specified sample format. More... | |
pa_sample_format_t | pa_parse_sample_format (const char *format) PA_GCC_PURE |
Parse a sample format text. More... | |
char * | pa_sample_spec_snprint (char *s, size_t l, const pa_sample_spec *spec) |
Pretty print a sample type specification to a string. More... | |
char * | pa_bytes_snprint (char *s, size_t l, unsigned v) |
Pretty print a byte size value (i.e. "2.5 MiB"). More... | |
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. More... | |
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. More... | |
Constants and routines for sample type handling.
See also Sample Format Specifications
◆ PA_BYTES_SNPRINT_MAX
#define PA_BYTES_SNPRINT_MAX 11
Maximum required string length for [pa_bytes_snprint()](sample%5F8h.html#a4992ec70d79de601c6f8f6cc5cab8e59 "Pretty print a byte size value (i.e. "2.5 MiB").").
Please note that this value can change with any release without warning and without being considered API or ABI breakage. You should not use this definition anywhere where it might become part of an ABI.
Since
0.9.16
◆ PA_CHANNELS_MAX
#define PA_CHANNELS_MAX 32U
Maximum number of allowed channels.
◆ PA_RATE_MAX
#define PA_RATE_MAX (48000U*8U)
Maximum allowed sample rate.
◆ PA_SAMPLE_FLOAT32
A Shortcut for PA_SAMPLE_FLOAT32NE.
◆ PA_SAMPLE_FLOAT32NE
32 Bit IEEE floating point, native endian
◆ PA_SAMPLE_FLOAT32RE
32 Bit IEEE floating point, reverse endian
◆ pa_sample_format_is_ne
Returns 1 when the specified format is native endian, 0 when not.
Returns -1 when endianness does not apply to the specified format, or endianess is unknown.
Since
0.9.16
◆ pa_sample_format_is_re
Returns 1 when the specified format is reverse endian, 0 when native.
Returns -1 when endianness does not apply to the specified format, or endianess is unknown.
Since
0.9.16
◆ PA_SAMPLE_S16NE
Signed 16 Bit PCM, native endian.
◆ PA_SAMPLE_S16RE
Signed 16 Bit PCM, reverse endian.
◆ PA_SAMPLE_S24_32NE
Signed 24 Bit PCM in LSB of 32 Bit words, native endian.
Since
0.9.15
◆ PA_SAMPLE_S24_32RE
Signed 24 Bit PCM, in LSB of 32 Bit words, reverse endian.
Since
0.9.15
◆ PA_SAMPLE_S24NE
Signed 24 Bit PCM packed, native endian.
Since
0.9.15
◆ PA_SAMPLE_S24RE
Signed 24 Bit PCM, packed reverse endian.
Since
0.9.15
◆ PA_SAMPLE_S32NE
Signed 32 Bit PCM, native endian.
◆ PA_SAMPLE_S32RE
Signed 32 Bit PCM, reverse endian.
◆ PA_SAMPLE_SPEC_SNPRINT_MAX
#define PA_SAMPLE_SPEC_SNPRINT_MAX 32
Maximum required string length for pa_sample_spec_snprint().
Please note that this value can change with any release without warning and without being considered API or ABI breakage. You should not use this definition anywhere where it might become part of an ABI.
◆ pa_sample_format_t
◆ pa_sample_spec
A sample format and attribute specification.
◆ pa_usec_t
Type for usec specifications (unsigned).
Always 64 bit.
◆ pa_sample_format
Sample format.
Enumerator | |
---|---|
PA_SAMPLE_U8 | Unsigned 8 Bit PCM. |
PA_SAMPLE_ALAW | 8 Bit a-Law |
PA_SAMPLE_ULAW | 8 Bit mu-Law |
PA_SAMPLE_S16LE | Signed 16 Bit PCM, little endian (PC) |
PA_SAMPLE_S16BE | Signed 16 Bit PCM, big endian. |
PA_SAMPLE_FLOAT32LE | 32 Bit IEEE floating point, little endian (PC), range -1.0 to 1.0 |
PA_SAMPLE_FLOAT32BE | 32 Bit IEEE floating point, big endian, range -1.0 to 1.0 |
PA_SAMPLE_S32LE | Signed 32 Bit PCM, little endian (PC) |
PA_SAMPLE_S32BE | Signed 32 Bit PCM, big endian. |
PA_SAMPLE_S24LE | Signed 24 Bit PCM packed, little endian (PC). Since0.9.15 |
PA_SAMPLE_S24BE | Signed 24 Bit PCM packed, big endian. Since0.9.15 |
PA_SAMPLE_S24_32LE | Signed 24 Bit PCM in LSB of 32 Bit words, little endian (PC). Since0.9.15 |
PA_SAMPLE_S24_32BE | Signed 24 Bit PCM in LSB of 32 Bit words, big endian. Since0.9.15 |
PA_SAMPLE_MAX | Upper limit of valid sample types. |
PA_SAMPLE_INVALID | An invalid value. |
◆ pa_bytes_per_second()
Return the amount of bytes that constitute playback of one second of audio, with the specified sample spec.
◆ pa_bytes_snprint()
char* pa_bytes_snprint | ( | char * | s, |
---|---|---|---|
size_t | l, | ||
unsigned | v | ||
) |
Pretty print a byte size value (i.e. "2.5 MiB").
Returns s.
◆ pa_bytes_to_usec()
Calculate the time it would take to play a buffer of the specified size with the specified sample type.
The return value will always be rounded down for non-integral return values.
◆ pa_channels_valid()
int pa_channels_valid | ( | uint8_t | channels | ) |
---|
Return non-zero if the channel count is within the supported range.
Since
5.0
◆ pa_frame_size()
Return the size of a frame with the specific sample type.
◆ pa_parse_sample_format()
◆ pa_sample_format_is_be()
Returns 1 when the specified format is big endian, 0 when little endian.
Returns -1 when endianness does not apply to the specified format, or endianess is unknown.
Since
0.9.16
◆ pa_sample_format_is_le()
Returns 1 when the specified format is little endian, 0 when big endian.
Returns -1 when endianness does not apply to the specified format, or endianess is unknown.
Since
0.9.16
◆ pa_sample_format_to_string()
Return a descriptive string for the specified sample format.
Since
0.8
◆ pa_sample_format_valid()
int pa_sample_format_valid | ( | unsigned | format | ) |
---|
Return non-zero if the given integer is a valid sample format.
Since
5.0
◆ pa_sample_rate_valid()
int pa_sample_rate_valid | ( | uint32_t | rate | ) |
---|
Return non-zero if the rate is within the supported range.
Since
5.0
◆ pa_sample_size()
Return the size of a sample with the specific sample type.
◆ pa_sample_size_of_format()
Similar to pa_sample_size() but take a sample format instead of a full sample spec.
Since
0.9.15
◆ pa_sample_spec_equal()
Return non-zero when the two sample type specifications match.
◆ pa_sample_spec_init()
Initialize the specified sample spec and return a pointer to it.
The sample spec will have a defined state but pa_sample_spec_valid() will fail for it.
Since
0.9.13
◆ pa_sample_spec_snprint()
char* pa_sample_spec_snprint | ( | char * | s, |
---|---|---|---|
size_t | l, | ||
const pa_sample_spec * | spec | ||
) |
Pretty print a sample type specification to a string.
Returns s.
◆ pa_sample_spec_valid()
Return non-zero when the sample type specification is valid.
◆ pa_usec_to_bytes()
Calculates the size of a buffer required, for playback duration of the time specified, with the specified sample type.
The return value will always be rounded down for non-integral return values.
Since
0.9