From: Maciej S. Szmigiero Date: Mon, 20 Nov 2017 12:12:32 +0000 (+0100) Subject: pcm: route: Fix use_getput flag computation for 3 byte formats X-Git-Tag: v1.1.6~38 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=6f52b3d643fc68bf1b6a2839696385f0b2b3f327;p=alsa-lib.git pcm: route: Fix use_getput flag computation for 3 byte formats Commit de63b942acf520 ("pcm: route: Use get/put labels for all 3 byte formats") wanted to make the route plugin use get / put labels not only for 24-bit physical width formats but also for 18 and 20-bit ones. There was, however, a typo in that commit so a check for these widths didn't really work. Let's fix it now. Signed-off-by: Maciej S. Szmigiero Signed-off-by: Takashi Iwai --- diff --git a/src/pcm/pcm_route.c b/src/pcm/pcm_route.c index 999a2eed..1f485a8e 100644 --- a/src/pcm/pcm_route.c +++ b/src/pcm/pcm_route.c @@ -567,8 +567,8 @@ static int snd_pcm_route_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params) return err; /* 3 bytes formats? */ route->params.use_getput = - (snd_pcm_format_physical_width(src_format) + 7) / 3 == 3 || - (snd_pcm_format_physical_width(dst_format) + 7) / 3 == 3; + (snd_pcm_format_physical_width(src_format) + 7) / 8 == 3 || + (snd_pcm_format_physical_width(dst_format) + 7) / 8 == 3; route->params.get_idx = snd_pcm_linear_get_index(src_format, SND_PCM_FORMAT_S32); route->params.put_idx = snd_pcm_linear_put_index(SND_PCM_FORMAT_S32, dst_format); route->params.conv_idx = snd_pcm_linear_convert_index(src_format, dst_format);