]> git.alsa-project.org Git - alsa-lib.git/commitdiff
pcm: route: Fix use_getput flag computation for 3 byte formats
authorMaciej S. Szmigiero <mail@maciej.szmigiero.name>
Mon, 20 Nov 2017 12:12:32 +0000 (13:12 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 20 Nov 2017 13:31:10 +0000 (14:31 +0100)
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 <mail@maciej.szmigiero.name>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
src/pcm/pcm_route.c

index 999a2eed3a25fec31071b85685e0750aec14795e..1f485a8e79f905e52745b3f77014f19e2d6200ca 100644 (file)
@@ -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);