]> git.alsa-project.org Git - alsa-utils.git/commitdiff
Fixed detection of 24-bit wav files
authorJaroslav Kysela <perex@perex.cz>
Wed, 18 Dec 2002 12:04:59 +0000 (12:04 +0000)
committerJaroslav Kysela <perex@perex.cz>
Wed, 18 Dec 2002 12:04:59 +0000 (12:04 +0000)
aplay/aplay.c

index be3d7e89d88ca02d7f078186d821a22b496a5c47..dd19dbe48cadcca7091f30c3d341326f1f81a0b8 100644 (file)
@@ -654,7 +654,7 @@ static ssize_t test_wavefile(int fd, char *_buffer, size_t size)
                hwparams.format = SND_PCM_FORMAT_S16_LE;
                break;
        case 24:
-               switch (LE_SHORT(f->byte_p_spl)) {
+               switch (LE_SHORT(f->byte_p_spl) / hwparams.channels) {
                case 3:
                        hwparams.format = SND_PCM_FORMAT_S24_3LE;
                        break;
@@ -662,9 +662,10 @@ static ssize_t test_wavefile(int fd, char *_buffer, size_t size)
                        hwparams.format = SND_PCM_FORMAT_S24_LE;
                        break;
                default:
-                       error(" can't play WAVE-files with sample %d bits in %d bytes wide", LE_SHORT(f->bit_p_spl), LE_SHORT(f->byte_p_spl));
-                       break;
+                       error(" can't play WAVE-files with sample %d bits in %d bytes wide (%d channels)", LE_SHORT(f->bit_p_spl), LE_SHORT(f->byte_p_spl), hwparams.channels);
+                       exit(EXIT_FAILURE);
                }
+               break;
        case 32:
                hwparams.format = SND_PCM_FORMAT_S32_LE;
                break;