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.
---

 src/inputPlugins/aac_plugin.c |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/src/inputPlugins/aac_plugin.c b/src/inputPlugins/aac_plugin.c
index 7a91376..a01d4cc 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();
@@ -324,7 +328,8 @@ static int aac_decode(struct decoder * mpd_decoder, char 
*path)
        if (openInputStream(&inStream, path) < 0)
                return -1;
 
-       initAacBuffer(&inStream, &b, NULL);
+       initAacBuffer(&inStream, &b);
+       aac_parse_header(&b, NULL);
 
        decoder = faacDecOpen();
 


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team

Reply via email to