alsa: allow override of channel map

This commit is contained in:
Wim Taymans 2020-12-28 14:24:59 +01:00
parent 036c10717d
commit 4b076549f7
4 changed files with 45 additions and 9 deletions

View file

@ -804,6 +804,16 @@ impl_init(const struct spa_handle_factory *factory,
this->default_rate = atoi(info->items[i].value);
} else if (!strcmp(info->items[i].key, SPA_KEY_AUDIO_FORMAT)) {
this->default_format = spa_alsa_format_from_name(info->items[i].value, 128);
} else if (!strcmp(info->items[i].key, SPA_KEY_AUDIO_POSITION)) {
size_t len;
const char *p = info->items[i].value;
while (*p && this->default_pos.channels < SPA_AUDIO_MAX_CHANNELS) {
if ((len = strcspn(p, ",")) == 0)
break;
this->default_pos.pos[this->default_pos.channels++] =
spa_alsa_channel_from_name(p, len);
p += len + strspn(p+len, ",");
}
}
}
return 0;