aac: use inputStreamAtEOF()
When checking for EOF, we should not check whether the read request has been fully satisified. The InputStream API does not guarantee that readFromInputStream() always fills the whole buffer, if EOF is not reached. Since there is the function inputStreamAtEOF() dedicated for this purpose, we should use it for EOF checking after readFromInputStream()==0.
This commit is contained in:
parent
35858dfe3a
commit
a3cc928c71
@ -62,7 +62,7 @@ static void fillAacBuffer(AacBuffer * b)
|
||||
b->
|
||||
bytesIntoBuffer),
|
||||
1, rest);
|
||||
if (bread != rest)
|
||||
if (bread == 0 && inputStreamAtEOF(b->inStream))
|
||||
b->atEof = 1;
|
||||
b->bytesIntoBuffer += bread;
|
||||
}
|
||||
@ -150,7 +150,7 @@ static void initAacBuffer(InputStream * inStream, AacBuffer * b, float *length)
|
||||
b->bytesConsumed = 0;
|
||||
b->fileOffset = 0;
|
||||
|
||||
if (bread != FAAD_MIN_STREAMSIZE * AAC_MAX_CHANNELS)
|
||||
if (bread == 0 && inputStreamAtEOF(inStream))
|
||||
b->atEof = 1;
|
||||
|
||||
tagsize = 0;
|
||||
@ -173,10 +173,9 @@ static void initAacBuffer(InputStream * inStream, AacBuffer * b, float *length)
|
||||
bread = readFromInputStream(b->inStream, b->buffer, 1,
|
||||
FAAD_MIN_STREAMSIZE *
|
||||
AAC_MAX_CHANNELS);
|
||||
if (bread != FAAD_MIN_STREAMSIZE * AAC_MAX_CHANNELS)
|
||||
if (bread == 0 && inputStreamAtEOF(inStream))
|
||||
b->atEof = 1;
|
||||
else
|
||||
b->atEof = 0;
|
||||
|
||||
b->bytesIntoBuffer = bread;
|
||||
b->bytesConsumed = 0;
|
||||
b->fileOffset = tagsize;
|
||||
|
Loading…
Reference in New Issue
Block a user