mirror of
https://github.com/vgmstream/vgmstream.git
synced 2025-02-17 19:19:16 +01:00
commit
a5843ef470
@ -526,17 +526,15 @@ void decode_ima(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing,
|
||||
sample_byte = read_8bit(stream->offset + i / 2, stream->streamfile);
|
||||
sample_nibble = (sample_byte >> (i & 1 ? 4 : 0)) & 0xf;
|
||||
|
||||
sample_decoded = hist1;
|
||||
delta = step >> 3;
|
||||
if (sample_nibble & 1) delta += step >> 2;
|
||||
if (sample_nibble & 2) delta += step >> 1;
|
||||
if (sample_nibble & 4) delta += step;
|
||||
sample_decoded = hist1 << 3;
|
||||
|
||||
delta = step * (sample_nibble & 7) * 2 + step;
|
||||
if (sample_nibble & 8)
|
||||
sample_decoded -= delta;
|
||||
else
|
||||
sample_decoded += delta;
|
||||
|
||||
hist1=clamp16(sample_decoded);
|
||||
hist1 = clamp16(sample_decoded >> 3);
|
||||
|
||||
step_index += IMA_IndexTable[sample_nibble & 0x7];
|
||||
if (step_index < 0) step_index = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user