Fixed volume issue with WAV, and issue with truncated OGGs.

This commit is contained in:
rude
2009-10-26 22:13:02 +01:00
parent 0b6d86e782
commit 0e671c34d5
3 changed files with 6 additions and 9 deletions
+4 -8
View File
@@ -36,16 +36,10 @@ namespace sound
SoundData::SoundData(Decoder * decoder)
: data(0), size(0), sampleRate(Decoder::DEFAULT_SAMPLE_RATE), bits(0), channels(0)
{
int decoded = decoder->decode();
// Decode all data here.
while(!decoder->isFinished())
while(decoded > 0)
{
int decoded = decoder->decode();
// If this returns 0, then we're probably at EOF.
if(decoded <= 0)
break;
// Expand or allocate buffer. Note that realloc may move
// memory to other locations.
data = (char*)realloc(data, size + decoder->getSize());
@@ -55,6 +49,8 @@ namespace sound
// Keep this up to date.
size += decoded;
decoded = decoder->decode();
}
channels = decoder->getChannels();