mirror of
https://github.com/love2d/love.git
synced 2026-08-12 08:30:56 +02:00
Some audio fixes (no more mp3 clicking and popping?) (issue #217)
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user