aboutsummaryrefslogtreecommitdiffstats
path: root/src/inputPlugins/aac_plugin.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-08-26 08:27:10 +0200
committerEric Wong <normalperson@yhbt.net>2008-08-30 18:45:03 -0700
commitd39395f3cdd937fc38d794de8706c9bc4cb96bd2 (patch)
treefdcb94ca397468188c000538395bd1ab570cad58 /src/inputPlugins/aac_plugin.c
parent7b47338ca996f8fda1bd0f8c743555a25409c200 (diff)
downloadmpd-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 '')
-rw-r--r--src/inputPlugins/aac_plugin.c9
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;