Merge pull request #1405 from hcs64/riff-float

Handle 32-bit float PCM RIFF
This commit is contained in:
bnnm 2023-08-18 16:07:48 +02:00 committed by GitHub
commit 24cbb827ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -177,6 +177,14 @@ static int read_fmt(int big_endian, STREAMFILE* sf, off_t offset, riff_fmt_chunk
goto fail;
}
break;
case 0x003: /* floating point PCM */
if (fmt->bps == 32) {
fmt->coding_type = coding_PCMFLOAT;
} else {
goto fail;
}
fmt->interleave = fmt->block_size / fmt->channels;
break;
case 0x0011: /* MS-IMA ADPCM [Layton Brothers: Mystery Room (iOS/Android)] */
if (fmt->bps != 4) goto fail;
@ -704,6 +712,7 @@ VGMSTREAM* init_vgmstream_riff(STREAMFILE* sf) {
case coding_PCM24LE:
case coding_PCM16LE:
case coding_PCM8_U:
case coding_PCMFLOAT:
vgmstream->num_samples = pcm_bytes_to_samples(data_size, fmt.channels, fmt.bps);
break;