From 3dd71bd5abeae01d55a06a97ec6f4a69f12e05b1 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 14 May 2007 11:03:37 +0000 Subject: also downgrade channel map when downgrading channel number git-svn-id: file:///home/lennart/svn/public/libsydney/trunk@15 9ba3c220-e4d3-45a2-8aa3-73fcc9aff6ce --- oss.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'oss.c') diff --git a/oss.c b/oss.c index 8c46884..50063bd 100644 --- a/oss.c +++ b/oss.c @@ -340,8 +340,17 @@ int driver_open(sa_stream_t *s) { printf("Chosen: %u channels, %uHz, format=%u\n", oss->real_pcm_attrs.nchannels, oss->real_pcm_attrs.rate, oss->real_pcm_attrs.format); - if (s->adjust_nchannels != 0) + if (s->adjust_nchannels != 0) { + sa_channel_t *cm; + + if (!(cm = sa_newdup(sa_channel_t, oss->real_pcm_attrs.channel_map, oss->real_pcm_attrs.nchannels))) + return SA_ERROR_OOM; + + sa_free(s->pcm_attrs.channel_map); + s->pcm_attrs.channel_map = cm; + s->pcm_attrs.nchannels = oss->real_pcm_attrs.nchannels; + } if (s->adjust_rate != 0) s->pcm_attrs.rate = oss->real_pcm_attrs.rate; if (s->adjust_pcm_format != 0) -- cgit