[alsa-devel] [PATCH] pcm: route: Don't handle no matching chmap as a serious error
David Henningsson
david.henningsson at canonical.com
Tue Mar 18 23:13:02 CET 2014
On 03/18/2014 05:34 PM, Takashi Iwai wrote:
> At Tue, 18 Mar 2014 17:19:29 +0100,
> David Henningsson wrote:
>>
>> On 03/18/2014 03:27 PM, Takashi Iwai wrote:
>>> When find_matching_chmap() returns an error for the non-matching
>>> chmap, the caller, snd_pcm_route_open(), also returns an error
>>> although it shouldn't be handled as the fatal error. This results in
>>> the probe error with PulseAudio and it gives no real output in the
>>> end.
>>
>> Hmm, could you give a more specific example? In case the driver does not
>> support channel maps at all, that case is handled in the beginning of
>> the function.
>
> Well, the problem is that PulseAudio doesn't work at all with the
> current alsa-lib git prior to the commit in some cases. That is, the
> commit brought some incompatibility.
Hmm, then the error should be somewhere in determine_chmap instead.
tt_chmap should be NULL (i e, find_matching_chmap is never called) for
using the standard number syntax instead of the new chmap syntax.
What about the patch attached instead (untested) ?
>> So this only happens if the driver supports channel maps, but only
>> non-compatible with the requested map. In which case I believe it's
>> correct that the probing should fail...?
>
> Could you check whether PA 5.0 works as is with alsa-lib git (before
> the last fix)? It could be seen on some desktop machines.
Let me know if the attached patch works for you. In case it does not I
will do this testing later.
>
>
> Takashi
>
>>
>>>
>>> Signed-off-by: Takashi Iwai <tiwai at suse.de>
>>> ---
>>> src/pcm/pcm_route.c | 4 +---
>>> 1 file changed, 1 insertion(+), 3 deletions(-)
>>>
>>> diff --git a/src/pcm/pcm_route.c b/src/pcm/pcm_route.c
>>> index ab17fa78be2c..ac11bdc8adfd 100644
>>> --- a/src/pcm/pcm_route.c
>>> +++ b/src/pcm/pcm_route.c
>>> @@ -940,10 +940,8 @@ static int find_matching_chmap(snd_pcm_t *spcm, snd_pcm_chmap_t *tt_chmap,
>>>
>>> snd_pcm_free_chmaps(chmaps);
>>>
>>> - if (*found_chmap == NULL) {
>>> + if (*found_chmap == NULL)
>>> SNDERR("Found no matching channel map");
>>> - return -EINVAL;
>>> - }
>>> return 0;
>>> }
>>>
>>>
>>
>>
>>
>> --
>> David Henningsson, Canonical Ltd.
>> https://launchpad.net/~diwic
>>
>
--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-route-Return-NULL-in-case-of-zero-found-channels-in-.patch
Type: text/x-patch
Size: 850 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20140318/b27bbb33/attachment.bin>
More information about the Alsa-devel
mailing list