mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
sample: introduce pa_sample_format_is_{le,be,ne,re}()
This commit is contained in:
parent
3533599579
commit
346a708c2c
3 changed files with 55 additions and 0 deletions
|
|
@ -182,6 +182,8 @@ pa_proplist_to_string_sep;
|
|||
pa_proplist_unset;
|
||||
pa_proplist_unset_many;
|
||||
pa_proplist_update;
|
||||
pa_sample_format_is_be;
|
||||
pa_sample_format_is_le;
|
||||
pa_sample_format_to_string;
|
||||
pa_sample_size;
|
||||
pa_sample_size_of_format;
|
||||
|
|
|
|||
|
|
@ -241,3 +241,36 @@ pa_sample_format_t pa_parse_sample_format(const char *format) {
|
|||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pa_sample_format_is_le(pa_sample_format_t f) {
|
||||
pa_assert(f >= PA_SAMPLE_U8);
|
||||
pa_assert(f < PA_SAMPLE_MAX);
|
||||
|
||||
switch (f) {
|
||||
case PA_SAMPLE_S16LE:
|
||||
case PA_SAMPLE_S24LE:
|
||||
case PA_SAMPLE_S32LE:
|
||||
case PA_SAMPLE_S24_32LE:
|
||||
case PA_SAMPLE_FLOAT32LE:
|
||||
return 1;
|
||||
|
||||
case PA_SAMPLE_S16BE:
|
||||
case PA_SAMPLE_S24BE:
|
||||
case PA_SAMPLE_S32BE:
|
||||
case PA_SAMPLE_S24_32BE:
|
||||
case PA_SAMPLE_FLOAT32BE:
|
||||
return 0;
|
||||
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
int pa_sample_format_is_be(pa_sample_format_t f) {
|
||||
int r;
|
||||
|
||||
if ((r = pa_sample_format_is_le(f)) < 0)
|
||||
return r;
|
||||
|
||||
return !r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -305,6 +305,26 @@ char* pa_sample_spec_snprint(char *s, size_t l, const pa_sample_spec *spec);
|
|||
/** Pretty print a byte size value. (i.e. "2.5 MiB") */
|
||||
char* pa_bytes_snprint(char *s, size_t l, unsigned v);
|
||||
|
||||
/** Return 1 when the specified format is little endian, return -1
|
||||
* when endianess does not apply to this format. \since 0.9.16 */
|
||||
int pa_sample_format_is_le(pa_sample_format_t f) PA_GCC_PURE;
|
||||
|
||||
/** Return 1 when the specified format is big endian, return -1 when
|
||||
* endianess does not apply to this format. \since 0.9.16 */
|
||||
int pa_sample_format_is_be(pa_sample_format_t f) PA_GCC_PURE;
|
||||
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
#define pa_sample_format_is_ne(f) pa_sample_format_is_be(f)
|
||||
#define pa_sample_format_is_re(f) pa_sample_format_is_le(f)
|
||||
#else
|
||||
/** Return 1 when the specified format is native endian, return -1
|
||||
* when endianess does not apply to this format. \since 0.9.16 */
|
||||
#define pa_sample_format_is_ne(f) pa_sample_format_is_le(f)
|
||||
/** Return 1 when the specified format is reverse endian, return -1
|
||||
* when endianess does not apply to this format. \since 0.9.16 */
|
||||
#define pa_sample_format_is_re(f) pa_sample_format_is_be(f)
|
||||
#endif
|
||||
|
||||
PA_C_DECL_END
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue