Commit b67a8e4d authored by Max Kellermann's avatar Max Kellermann

aac: shift the input buffer before the full check

When the buffer was full, but everything was already consumed, fillAacBuffer() would not attempt to flush and refill it.
parent 432da18e
...@@ -53,13 +53,14 @@ static void fillAacBuffer(AacBuffer * b) ...@@ -53,13 +53,14 @@ static void fillAacBuffer(AacBuffer * b)
{ {
size_t rest, bread; size_t rest, bread;
if (b->bytesIntoBuffer >= sizeof(b->buffer)) if (b->bytesConsumed > 0)
aac_buffer_shift(b, b->bytesConsumed);
rest = sizeof(b->buffer) - b->bytesIntoBuffer;
if (rest == 0)
/* buffer already full */ /* buffer already full */
return; return;
aac_buffer_shift(b, b->bytesConsumed);
rest = sizeof(b->buffer) - b->bytesIntoBuffer;
bread = decoder_read(b->decoder, b->inStream, bread = decoder_read(b->decoder, b->inStream,
(void *)(b->buffer + b->bytesIntoBuffer), (void *)(b->buffer + b->bytesIntoBuffer),
rest); rest);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment