Some audio fixes (no more mp3 clicking and popping?) (issue #217)

This commit is contained in:
Bart van Strien
2011-06-08 23:37:01 +02:00
parent 43a6357b54
commit a372dcaec8
3 changed files with 8 additions and 7 deletions
+4 -4
View File
@@ -169,8 +169,8 @@ namespace openal
offsetSamples += (curOffsetSamples - newOffsetSamples);
offsetSeconds += (curOffsetSecs - newOffsetSecs);
if(streamAtomic(buffer, decoder) > 0)
alSourceQueueBuffers(source, 1, &buffer);
streamAtomic(buffer, decoder);
alSourceQueueBuffers(source, 1, &buffer);
}
}
}
@@ -349,7 +349,7 @@ namespace openal
{
int decoded = streamAtomic(buffers[i], decoder);
++usedBuffers;
if(decoded < decoder->getSize())
if(decoder->isFinished())
break;
}
@@ -466,7 +466,7 @@ namespace openal
if(decoded > 0 && fmt != 0)
alBufferData(buffer, fmt, d->getBuffer(), decoded, d->getSampleRate());
if(decoded < d->getSize() && isLooping()) {
if(decoder->isFinished() && isLooping()) {
offsetSamples = 0;
offsetSeconds = 0;
d->rewind();
@@ -129,6 +129,7 @@ namespace lullaby
continue;
case MPG123_NEED_MORE:
{
size += numbytes;
int v = feed(8192);
switch(v)
+3 -3
View File
@@ -193,14 +193,14 @@ namespace lullaby
else if(result <= OV_EREAD)
return -1;
else if(result == 0)
{
eof = true;
break;
}
else if(result > 0)
size += result;
}
if(oggFile.dataSize - oggFile.dataRead == 0)
eof = true;
return size;
}