aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-08-26 08:27:11 +0200
committerEric Wong <normalperson@yhbt.net>2008-08-30 18:45:15 -0700
commit4c8ae1ffa7e9c0b4fdd2247ea1cc851691386f14 (patch)
tree2743b69cf4c3e88d79ee91057bb30e1dffb61129
parentca5eaffc16b9ace0ea7af519ef949bf014f42120 (diff)
downloadmpd-4c8ae1ffa7e9c0b4fdd2247ea1cc851691386f14.tar.gz
mpd-4c8ae1ffa7e9c0b4fdd2247ea1cc851691386f14.tar.xz
mpd-4c8ae1ffa7e9c0b4fdd2247ea1cc851691386f14.zip
aac: splitted aac_parse_header() from initAacBuffer()
initAacBuffer() should really only initialize the buffer; currently, it also reads data from the input stream and parses the header. All of the AAC buffer code should probably be moved to a separate library anyway.
-rw-r--r--src/inputPlugins/aac_plugin.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/inputPlugins/aac_plugin.c b/src/inputPlugins/aac_plugin.c
index faddb78c6..26e55aa57 100644
--- a/src/inputPlugins/aac_plugin.c
+++ b/src/inputPlugins/aac_plugin.c
@@ -176,22 +176,25 @@ static void adtsParse(AacBuffer * b, float *length)
*length = (float)frames / framesPerSec;
}
-static void initAacBuffer(InputStream * inStream, AacBuffer * b, float *length)
+static void initAacBuffer(InputStream * inStream, AacBuffer * b)
{
- size_t fileread;
- size_t tagsize;
-
- if (length)
- *length = -1;
-
memset(b, 0, sizeof(AacBuffer));
b->inStream = inStream;
- fileread = inStream->size;
-
b->buffer = xmalloc(FAAD_MIN_STREAMSIZE * AAC_MAX_CHANNELS);
memset(b->buffer, 0, FAAD_MIN_STREAMSIZE * AAC_MAX_CHANNELS);
+}
+
+static void aac_parse_header(AacBuffer * b, float *length)
+{
+ size_t fileread;
+ size_t tagsize;
+
+ if (length)
+ *length = -1;
+
+ fileread = b->inStream->size;
fillAacBuffer(b);
@@ -256,7 +259,8 @@ static float getAacFloatTotalTime(char *file)
if (openInputStream(&inStream, file) < 0)
return -1;
- initAacBuffer(&inStream, &b, &length);
+ initAacBuffer(&inStream, &b);
+ aac_parse_header(&b, &length);
if (length < 0) {
decoder = faacDecOpen();
@@ -322,7 +326,8 @@ static int aac_decode(char *path)
if (openInputStream(&inStream, path) < 0)
return -1;
- initAacBuffer(&inStream, &b, NULL);
+ initAacBuffer(&inStream, &b);
+ aac_parse_header(&b, NULL);
decoder = faacDecOpen();