mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-03 09:01:54 -05:00
pulse-server: add some more supported channel_map values
This commit is contained in:
parent
157d6de607
commit
5a94bfc6cd
1 changed files with 69 additions and 5 deletions
|
|
@ -381,11 +381,75 @@ static inline void channel_map_parse(const char *str, struct channel_map *map)
|
||||||
const char *p = str;
|
const char *p = str;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
while (*p && map->channels < SPA_AUDIO_MAX_CHANNELS) {
|
if (strcmp(p, "stereo") == 0) {
|
||||||
if ((len = strcspn(p, ",")) == 0)
|
*map = (struct channel_map) {
|
||||||
break;
|
.channels = 2,
|
||||||
map->map[map->channels++] = channel_paname2id(p, len);
|
.map[0] = SPA_AUDIO_CHANNEL_FL,
|
||||||
p += len + strspn(p+len, ",");
|
.map[1] = SPA_AUDIO_CHANNEL_FR,
|
||||||
|
};
|
||||||
|
} else if (strcmp(p, "surround-21") == 0) {
|
||||||
|
*map = (struct channel_map) {
|
||||||
|
.channels = 3,
|
||||||
|
.map[0] = SPA_AUDIO_CHANNEL_FL,
|
||||||
|
.map[1] = SPA_AUDIO_CHANNEL_FR,
|
||||||
|
.map[2] = SPA_AUDIO_CHANNEL_LFE,
|
||||||
|
};
|
||||||
|
} else if (strcmp(p, "surround-40") == 0) {
|
||||||
|
*map = (struct channel_map) {
|
||||||
|
.channels = 4,
|
||||||
|
.map[0] = SPA_AUDIO_CHANNEL_FL,
|
||||||
|
.map[1] = SPA_AUDIO_CHANNEL_FR,
|
||||||
|
.map[2] = SPA_AUDIO_CHANNEL_RL,
|
||||||
|
.map[3] = SPA_AUDIO_CHANNEL_RR,
|
||||||
|
};
|
||||||
|
} else if (strcmp(p, "surround-41") == 0) {
|
||||||
|
*map = (struct channel_map) {
|
||||||
|
.channels = 5,
|
||||||
|
.map[0] = SPA_AUDIO_CHANNEL_FL,
|
||||||
|
.map[1] = SPA_AUDIO_CHANNEL_FR,
|
||||||
|
.map[2] = SPA_AUDIO_CHANNEL_RL,
|
||||||
|
.map[3] = SPA_AUDIO_CHANNEL_RR,
|
||||||
|
.map[4] = SPA_AUDIO_CHANNEL_LFE,
|
||||||
|
};
|
||||||
|
} else if (strcmp(p, "surround-50") == 0) {
|
||||||
|
*map = (struct channel_map) {
|
||||||
|
.channels = 5,
|
||||||
|
.map[0] = SPA_AUDIO_CHANNEL_FL,
|
||||||
|
.map[1] = SPA_AUDIO_CHANNEL_FR,
|
||||||
|
.map[2] = SPA_AUDIO_CHANNEL_RL,
|
||||||
|
.map[3] = SPA_AUDIO_CHANNEL_RR,
|
||||||
|
.map[4] = SPA_AUDIO_CHANNEL_FC,
|
||||||
|
};
|
||||||
|
} else if (strcmp(p, "surround-51") == 0) {
|
||||||
|
*map = (struct channel_map) {
|
||||||
|
.channels = 6,
|
||||||
|
.map[0] = SPA_AUDIO_CHANNEL_FL,
|
||||||
|
.map[1] = SPA_AUDIO_CHANNEL_FR,
|
||||||
|
.map[2] = SPA_AUDIO_CHANNEL_RL,
|
||||||
|
.map[3] = SPA_AUDIO_CHANNEL_RR,
|
||||||
|
.map[4] = SPA_AUDIO_CHANNEL_FC,
|
||||||
|
.map[5] = SPA_AUDIO_CHANNEL_LFE,
|
||||||
|
};
|
||||||
|
} else if (strcmp(p, "surround-71") == 0) {
|
||||||
|
*map = (struct channel_map) {
|
||||||
|
.channels = 8,
|
||||||
|
.map[0] = SPA_AUDIO_CHANNEL_FL,
|
||||||
|
.map[1] = SPA_AUDIO_CHANNEL_FR,
|
||||||
|
.map[2] = SPA_AUDIO_CHANNEL_RL,
|
||||||
|
.map[3] = SPA_AUDIO_CHANNEL_RR,
|
||||||
|
.map[4] = SPA_AUDIO_CHANNEL_FC,
|
||||||
|
.map[5] = SPA_AUDIO_CHANNEL_LFE,
|
||||||
|
.map[6] = SPA_AUDIO_CHANNEL_SL,
|
||||||
|
.map[7] = SPA_AUDIO_CHANNEL_SR,
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
map->channels = 0;
|
||||||
|
while (*p && map->channels < SPA_AUDIO_MAX_CHANNELS) {
|
||||||
|
if ((len = strcspn(p, ",")) == 0)
|
||||||
|
break;
|
||||||
|
map->map[map->channels++] = channel_paname2id(p, len);
|
||||||
|
p += len + strspn(p+len, ",");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue