12 #ifndef ROC_AUDIO_PCM_FORMAT_H_
13 #define ROC_AUDIO_PCM_FORMAT_H_
87 return !(*
this == other);
#define ROC_ATTR_NODISCARD
Emit warning if function result is not checked.
const char * pcm_format_to_str(const PcmFormat &fmt)
Get string name of PCM format.
PcmTraits pcm_format_traits(const PcmFormat &fmt)
Get traits for PCM format.
PcmEndian
PCM sample endianess.
@ PcmEndian_Big
Big endian.
@ PcmEndian_Little
Little endian.
@ PcmEndian_Native
Endian native to current CPU.
ROC_ATTR_NODISCARD bool pcm_format_parse(const char *str, PcmFormat &fmt)
Parse PCM format from string name.
PcmCode
PCM sample binary code.
@ PcmCode_UInt64
64-bit unsigned integer.
@ PcmCode_UInt24
24-bit unsigned integer (3 bytes).
@ PcmCode_SInt20
20-bit signed integer (2.5 bytes).
@ PcmCode_SInt20_4
20-bit signed integer, in low bits of 4-byte container.
@ PcmCode_SInt18
18-bit signed integer (2.25 bytes).
@ PcmCode_SInt8
8-bit signed integer.
@ PcmCode_Float32
32-bit IEEE-754 float in range [-1.0; +1.0].
@ PcmCode_SInt16
16-bit signed integer.
@ PcmCode_SInt24
24-bit signed integer (3 bytes).
@ PcmCode_SInt20_3
20-bit signed integer, in low bits of 3-byte container.
@ PcmCode_SInt24_4
24-bit signed integer, in low bits of 4-byte container.
@ PcmCode_SInt64
64-bit signed integer.
@ PcmCode_UInt20_3
20-bit unsigned integer, in low bits of 3-byte container.
@ PcmCode_UInt32
32-bit unsigned integer.
@ PcmCode_UInt20
20-bit unsigned integer (2.5 bytes).
@ PcmCode_UInt8
8-bit unsigned integer.
@ PcmCode_UInt20_4
20-bit unsigned integer, in low bits of 4-byte container.
@ PcmCode_SInt32
32-bit signed integer.
@ PcmCode_SInt18_3
18-bit signed integer, in low bits of 3-byte container.
@ PcmCode_Max
Maximum value.
@ PcmCode_SInt18_4
18-bit signed integer, in low bits of 4-byte container.
@ PcmCode_UInt18
18-bit unsigned integer (2.25 bytes).
@ PcmCode_UInt18_4
18-bit unsigned integer, in low bits of 4-byte container.
@ PcmCode_Float64
64-bit IEEE-754 float in range [-1.0; +1.0].
@ PcmCode_UInt24_4
24-bit unsigned integer, in low bits of 4-byte container.
@ PcmCode_UInt16
16-bit unsigned integer.
@ PcmCode_UInt18_3
18-bit unsigned integer, in low bits of 3-byte container.
Commonly used types and functions.
PCM format meta-information.
bool is_signed
True for signed integers and floating point.
size_t bit_width
Number of total bits per sample in packed form.
size_t bit_depth
Number of significant bits per sample.
bool is_integer
True for integers, false for floating point.