diff options
-rw-r--r-- | src/pcm/pcm_route.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/pcm/pcm_route.c b/src/pcm/pcm_route.c index a5c5b048..a3d1695e 100644 --- a/src/pcm/pcm_route.c +++ b/src/pcm/pcm_route.c @@ -720,11 +720,13 @@ static snd_pcm_chmap_t *snd_pcm_route_get_chmap(snd_pcm_t *pcm) return NULL; } map->channels = nsrcs; + for (src = 0; src < nsrcs; src++) + map->pos[src] = SND_CHMAP_NA; for (dst = 0; dst < route->params.ndsts; dst++) { snd_pcm_route_ttable_dst_t *d = &route->params.dsts[dst]; for (src = 0; src < d->nsrcs; src++) { int c = d->srcs[src].channel; - if (c < nsrcs && !map->pos[c]) + if (c < nsrcs && map->pos[c] == SND_CHMAP_NA) map->pos[c] = slave_map->pos[dst]; } } |