Merge pull request #3 from soneek/master

hcs's update for IMA decoder
This commit is contained in:
Chris Moeller 2014-06-01 20:12:32 -07:00
commit a5843ef470

View File

@ -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;