diff options
Diffstat (limited to 'apps/codecs/demac/libdemac')
-rw-r--r-- | apps/codecs/demac/libdemac/Makefile | 2 | ||||
-rw-r--r-- | apps/codecs/demac/libdemac/decoder.c | 2 | ||||
-rw-r--r-- | apps/codecs/demac/libdemac/parser.c | 14 | ||||
-rw-r--r-- | apps/codecs/demac/libdemac/parser.h | 7 | ||||
-rw-r--r-- | apps/codecs/demac/libdemac/predictor.c | 2 |
5 files changed, 19 insertions, 8 deletions
diff --git a/apps/codecs/demac/libdemac/Makefile b/apps/codecs/demac/libdemac/Makefile index 7fc784dd5f..6ef55d7fb9 100644 --- a/apps/codecs/demac/libdemac/Makefile +++ b/apps/codecs/demac/libdemac/Makefile | |||
@@ -4,7 +4,7 @@ | |||
4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | 4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | 5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
6 | # \/ \/ \/ \/ \/ | 6 | # \/ \/ \/ \/ \/ |
7 | # $Id:$ | 7 | # $Id$ |
8 | # | 8 | # |
9 | 9 | ||
10 | INCLUDES=-I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ | 10 | INCLUDES=-I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ |
diff --git a/apps/codecs/demac/libdemac/decoder.c b/apps/codecs/demac/libdemac/decoder.c index 22b6e8d325..ba8c393a67 100644 --- a/apps/codecs/demac/libdemac/decoder.c +++ b/apps/codecs/demac/libdemac/decoder.c | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | libdemac - A Monkey's Audio decoder | 3 | libdemac - A Monkey's Audio decoder |
4 | 4 | ||
5 | $Id:$ | 5 | $Id$ |
6 | 6 | ||
7 | Copyright (C) Dave Chapman 2007 | 7 | Copyright (C) Dave Chapman 2007 |
8 | 8 | ||
diff --git a/apps/codecs/demac/libdemac/parser.c b/apps/codecs/demac/libdemac/parser.c index 4e907308b6..7e0fd8f250 100644 --- a/apps/codecs/demac/libdemac/parser.c +++ b/apps/codecs/demac/libdemac/parser.c | |||
@@ -92,6 +92,10 @@ int ape_parseheaderbuf(unsigned char* buf, struct ape_ctx_t* ape_ctx) | |||
92 | ape_ctx->channels = get_uint16(header + 18); | 92 | ape_ctx->channels = get_uint16(header + 18); |
93 | ape_ctx->samplerate = get_uint32(header + 20); | 93 | ape_ctx->samplerate = get_uint32(header + 20); |
94 | 94 | ||
95 | ape_ctx->seektablefilepos = ape_ctx->junklength + | ||
96 | ape_ctx->descriptorlength + | ||
97 | ape_ctx->headerlength; | ||
98 | |||
95 | ape_ctx->firstframe = ape_ctx->junklength + ape_ctx->descriptorlength + | 99 | ape_ctx->firstframe = ape_ctx->junklength + ape_ctx->descriptorlength + |
96 | ape_ctx->headerlength + ape_ctx->seektablelength + | 100 | ape_ctx->headerlength + ape_ctx->seektablelength + |
97 | ape_ctx->wavheaderlength; | 101 | ape_ctx->wavheaderlength; |
@@ -133,15 +137,19 @@ int ape_parseheaderbuf(unsigned char* buf, struct ape_ctx_t* ape_ctx) | |||
133 | else | 137 | else |
134 | ape_ctx->blocksperframe = 9216; | 138 | ape_ctx->blocksperframe = 9216; |
135 | 139 | ||
136 | ape_ctx->firstframe = ape_ctx->junklength + ape_ctx->headerlength + | 140 | ape_ctx->seektablefilepos = ape_ctx->junklength + ape_ctx->headerlength + |
137 | ape_ctx->seektablelength + ape_ctx->wavheaderlength; | 141 | ape_ctx->wavheaderlength; |
142 | |||
143 | ape_ctx->firstframe = ape_ctx->junklength + ape_ctx->headerlength + | ||
144 | ape_ctx->wavheaderlength + ape_ctx->seektablelength; | ||
138 | } | 145 | } |
139 | 146 | ||
140 | ape_ctx->totalsamples = ape_ctx->finalframeblocks; | 147 | ape_ctx->totalsamples = ape_ctx->finalframeblocks; |
141 | if (ape_ctx->totalframes > 1) | 148 | if (ape_ctx->totalframes > 1) |
142 | ape_ctx->totalsamples += ape_ctx->blocksperframe * (ape_ctx->totalframes-1); | 149 | ape_ctx->totalsamples += ape_ctx->blocksperframe * (ape_ctx->totalframes-1); |
143 | 150 | ||
144 | /* TODO: Parse and store seektable */ | 151 | ape_ctx->numseekpoints = MAX(ape_ctx->maxseekpoints, |
152 | ape_ctx->seektablelength / sizeof(int32_t)); | ||
145 | 153 | ||
146 | return 0; | 154 | return 0; |
147 | } | 155 | } |
diff --git a/apps/codecs/demac/libdemac/parser.h b/apps/codecs/demac/libdemac/parser.h index edf4222fd5..0e35425315 100644 --- a/apps/codecs/demac/libdemac/parser.h +++ b/apps/codecs/demac/libdemac/parser.h | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | libdemac - A Monkey's Audio decoder | 3 | libdemac - A Monkey's Audio decoder |
4 | 4 | ||
5 | $Id:$ | 5 | $Id$ |
6 | 6 | ||
7 | Copyright (C) Dave Chapman 2007 | 7 | Copyright (C) Dave Chapman 2007 |
8 | 8 | ||
@@ -119,7 +119,10 @@ struct ape_ctx_t | |||
119 | uint32_t samplerate; | 119 | uint32_t samplerate; |
120 | 120 | ||
121 | /* Seektable */ | 121 | /* Seektable */ |
122 | uint32_t* seektable; | 122 | uint32_t* seektable; /* Seektable buffer */ |
123 | uint32_t maxseekpoints; /* Max seekpoints we can store (size of seektable buffer) */ | ||
124 | uint32_t numseekpoints; /* Number of seekpoints */ | ||
125 | int seektablefilepos; /* Location in .ape file of seektable */ | ||
123 | 126 | ||
124 | /* Decoder state */ | 127 | /* Decoder state */ |
125 | uint32_t CRC; | 128 | uint32_t CRC; |
diff --git a/apps/codecs/demac/libdemac/predictor.c b/apps/codecs/demac/libdemac/predictor.c index ef72fedfbd..9531786fd1 100644 --- a/apps/codecs/demac/libdemac/predictor.c +++ b/apps/codecs/demac/libdemac/predictor.c | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | libdemac - A Monkey's Audio decoder | 3 | libdemac - A Monkey's Audio decoder |
4 | 4 | ||
5 | $Id:$ | 5 | $Id$ |
6 | 6 | ||
7 | Copyright (C) Dave Chapman 2007 | 7 | Copyright (C) Dave Chapman 2007 |
8 | 8 | ||