diff --git a/src/modules/module-protocol-pulse/format.c b/src/modules/module-protocol-pulse/format.c index 2efe45527..0e9998ff7 100644 --- a/src/modules/module-protocol-pulse/format.c +++ b/src/modules/module-protocol-pulse/format.c @@ -13,8 +13,8 @@ static const struct format audio_formats[] = { [SAMPLE_U8] = { SAMPLE_U8, SPA_AUDIO_FORMAT_U8, "u8", 1 }, - [SAMPLE_ALAW] = { SAMPLE_ALAW, SPA_AUDIO_FORMAT_ALAW, "aLaw", 1 }, - [SAMPLE_ULAW] = { SAMPLE_ULAW, SPA_AUDIO_FORMAT_ULAW, "uLaw", 1 }, + [SAMPLE_ALAW] = { SAMPLE_ALAW, SPA_AUDIO_FORMAT_ALAW, "alaw", 1 }, + [SAMPLE_ULAW] = { SAMPLE_ULAW, SPA_AUDIO_FORMAT_ULAW, "ulaw", 1 }, [SAMPLE_S16LE] = { SAMPLE_S16LE, SPA_AUDIO_FORMAT_S16_LE, "s16le", 2 }, [SAMPLE_S16BE] = { SAMPLE_S16BE, SPA_AUDIO_FORMAT_S16_BE, "s16be", 2 }, [SAMPLE_FLOAT32LE] = { SAMPLE_FLOAT32LE, SPA_AUDIO_FORMAT_F32_LE, "float32le", 4 }, @@ -26,19 +26,30 @@ static const struct format audio_formats[] = { [SAMPLE_S24_32LE] = { SAMPLE_S24_32LE, SPA_AUDIO_FORMAT_S24_32_LE, "s24-32le", 4 }, [SAMPLE_S24_32BE] = { SAMPLE_S24_32BE, SPA_AUDIO_FORMAT_S24_32_BE, "s24-32be", 4 }, -#if __BYTE_ORDER == __BIG_ENDIAN - { SAMPLE_S16BE, SPA_AUDIO_FORMAT_S16_BE, "s16ne", 2 }, - { SAMPLE_FLOAT32BE, SPA_AUDIO_FORMAT_F32_BE, "float32ne", 4 }, - { SAMPLE_S32BE, SPA_AUDIO_FORMAT_S32_BE, "s32ne", 4 }, - { SAMPLE_S24BE, SPA_AUDIO_FORMAT_S24_BE, "s24ne", 3 }, - { SAMPLE_S24_32BE, SPA_AUDIO_FORMAT_S24_32_BE, "s24-32ne", 4 }, -#elif __BYTE_ORDER == __LITTLE_ENDIAN - { SAMPLE_S16LE, SPA_AUDIO_FORMAT_S16_LE, "s16ne", 2 }, - { SAMPLE_FLOAT32LE, SPA_AUDIO_FORMAT_F32_LE, "float32ne", 4 }, - { SAMPLE_S32LE, SPA_AUDIO_FORMAT_S32_LE, "s32ne", 4 }, - { SAMPLE_S24LE, SPA_AUDIO_FORMAT_S24_LE, "s24ne", 3 }, - { SAMPLE_S24_32LE, SPA_AUDIO_FORMAT_S24_32_LE, "s24-32ne", 4 }, -#endif + { SAMPLE_U8, SPA_AUDIO_FORMAT_U8, "8", 1 }, + { SAMPLE_ULAW, SPA_AUDIO_FORMAT_ULAW, "mulaw", 1 }, + + { SAMPLE_S16NE, SPA_AUDIO_FORMAT_S16, "s16ne", 2 }, + { SAMPLE_S16NE, SPA_AUDIO_FORMAT_S16, "s16", 2 }, + { SAMPLE_S16NE, SPA_AUDIO_FORMAT_S16, "16", 2 }, + { SAMPLE_FLOAT32NE, SPA_AUDIO_FORMAT_F32, "float32ne", 4 }, + { SAMPLE_FLOAT32NE, SPA_AUDIO_FORMAT_F32, "float32", 4 }, + { SAMPLE_FLOAT32NE, SPA_AUDIO_FORMAT_F32, "float", 4 }, + { SAMPLE_S32NE, SPA_AUDIO_FORMAT_S32, "s32ne", 4 }, + { SAMPLE_S32NE, SPA_AUDIO_FORMAT_S32, "s32", 4 }, + { SAMPLE_S32NE, SPA_AUDIO_FORMAT_S32, "32", 4 }, + { SAMPLE_S24NE, SPA_AUDIO_FORMAT_S24, "s24ne", 3 }, + { SAMPLE_S24NE, SPA_AUDIO_FORMAT_S24, "s24", 3 }, + { SAMPLE_S24NE, SPA_AUDIO_FORMAT_S24, "24", 3 }, + { SAMPLE_S24_32NE, SPA_AUDIO_FORMAT_S24_32, "s24-32ne", 4 }, + { SAMPLE_S24_32NE, SPA_AUDIO_FORMAT_S24_32, "s24-32", 4 }, + + { SAMPLE_S16RE, SPA_AUDIO_FORMAT_S16_OE, "s16re", 2 }, + { SAMPLE_FLOAT32RE, SPA_AUDIO_FORMAT_F32_OE, "float32re", 4 }, + { SAMPLE_S32RE, SPA_AUDIO_FORMAT_S32_OE, "s32re", 4 }, + { SAMPLE_S24RE, SPA_AUDIO_FORMAT_S24_OE, "s24re", 3 }, + { SAMPLE_S24_32RE, SPA_AUDIO_FORMAT_S24_32_OE, "s24-32re", 4 }, + /* planar formats, we just report them as interleaved */ { SAMPLE_U8, SPA_AUDIO_FORMAT_U8P, "u8ne", 1 }, { SAMPLE_S16NE, SPA_AUDIO_FORMAT_S16P, "s16ne", 2 }, @@ -141,7 +152,8 @@ uint32_t format_paname2id(const char *name, size_t size) { SPA_FOR_EACH_ELEMENT_VAR(audio_formats, f) { if (f->name != NULL && - strncmp(name, f->name, size) == 0) + strncasecmp(name, f->name, size) == 0 && + strlen(f->name) == size) return f->id; } return SPA_AUDIO_FORMAT_UNKNOWN; diff --git a/src/modules/module-protocol-pulse/format.h b/src/modules/module-protocol-pulse/format.h index 6818ec179..c71ca3f49 100644 --- a/src/modules/module-protocol-pulse/format.h +++ b/src/modules/module-protocol-pulse/format.h @@ -38,12 +38,22 @@ enum sample_format { #define SAMPLE_S32NE SAMPLE_S32BE #define SAMPLE_S24NE SAMPLE_S24BE #define SAMPLE_S24_32NE SAMPLE_S24_32BE +#define SAMPLE_S16RE SAMPLE_S16LE +#define SAMPLE_FLOAT32RE SAMPLE_FLOAT32LE +#define SAMPLE_S32RE SAMPLE_S32LE +#define SAMPLE_S24RE SAMPLE_S24LE +#define SAMPLE_S24_32RE SAMPLE_S24_32LE #elif __BYTE_ORDER == __LITTLE_ENDIAN #define SAMPLE_S16NE SAMPLE_S16LE #define SAMPLE_FLOAT32NE SAMPLE_FLOAT32LE #define SAMPLE_S32NE SAMPLE_S32LE #define SAMPLE_S24NE SAMPLE_S24LE #define SAMPLE_S24_32NE SAMPLE_S24_32LE +#define SAMPLE_S16RE SAMPLE_S16BE +#define SAMPLE_FLOAT32RE SAMPLE_FLOAT32BE +#define SAMPLE_S32RE SAMPLE_S32BE +#define SAMPLE_S24RE SAMPLE_S24BE +#define SAMPLE_S24_32RE SAMPLE_S24_32BE #endif struct format {