Fixed detection of 24-bit wav files

This commit is contained in:
Jaroslav Kysela 2002-12-18 12:04:59 +00:00
parent 674e3161e0
commit f2aad9f2a6

View file

@ -654,7 +654,7 @@ static ssize_t test_wavefile(int fd, char *_buffer, size_t size)
hwparams.format = SND_PCM_FORMAT_S16_LE; hwparams.format = SND_PCM_FORMAT_S16_LE;
break; break;
case 24: case 24:
switch (LE_SHORT(f->byte_p_spl)) { switch (LE_SHORT(f->byte_p_spl) / hwparams.channels) {
case 3: case 3:
hwparams.format = SND_PCM_FORMAT_S24_3LE; hwparams.format = SND_PCM_FORMAT_S24_3LE;
break; break;
@ -662,9 +662,10 @@ static ssize_t test_wavefile(int fd, char *_buffer, size_t size)
hwparams.format = SND_PCM_FORMAT_S24_LE; hwparams.format = SND_PCM_FORMAT_S24_LE;
break; break;
default: 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)); 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);
break; exit(EXIT_FAILURE);
} }
break;
case 32: case 32:
hwparams.format = SND_PCM_FORMAT_S32_LE; hwparams.format = SND_PCM_FORMAT_S32_LE;
break; break;