diff options
author | Max Kellermann <max@duempel.org> | 2008-08-26 08:27:10 +0200 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2008-08-30 18:45:03 -0700 |
commit | d39395f3cdd937fc38d794de8706c9bc4cb96bd2 (patch) | |
tree | fdcb94ca397468188c000538395bd1ab570cad58 /src | |
parent | 7b47338ca996f8fda1bd0f8c743555a25409c200 (diff) | |
download | mpd-d39395f3cdd937fc38d794de8706c9bc4cb96bd2.tar.gz mpd-d39395f3cdd937fc38d794de8706c9bc4cb96bd2.tar.xz mpd-d39395f3cdd937fc38d794de8706c9bc4cb96bd2.zip |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/inputPlugins/aac_plugin.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/inputPlugins/aac_plugin.c b/src/inputPlugins/aac_plugin.c index 15a7da0ef..b6e7e3fe4 100644 --- a/src/inputPlugins/aac_plugin.c +++ b/src/inputPlugins/aac_plugin.c @@ -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; |