summaryrefslogtreecommitdiff
path: root/apps/metadata.c
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2005-10-31 20:56:29 +0000
committerDave Chapman <dave@dchapman.com>2005-10-31 20:56:29 +0000
commitcea6d0c92f56cbd38ac8b480a9ea187d41bf55dd (patch)
tree359debf3efc31dfe1ba0dd29a028c4f789c16859 /apps/metadata.c
parent407be69b8c9e905a2720bd402e9449b28103f57b (diff)
downloadrockbox-cea6d0c92f56cbd38ac8b480a9ea187d41bf55dd.zip
rockbox-cea6d0c92f56cbd38ac8b480a9ea187d41bf55dd.tar.gz
rockbox-cea6d0c92f56cbd38ac8b480a9ea187d41bf55dd.tar.bz2
rockbox-cea6d0c92f56cbd38ac8b480a9ea187d41bf55dd.tar.xz
Initial check-in of AAC codec. Currently only recognises the .mp4 extension and is not yet capable of realtime operation
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7706 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/metadata.c')
-rw-r--r--apps/metadata.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/apps/metadata.c b/apps/metadata.c
index f3fed96..a4fd688 100644
--- a/apps/metadata.c
+++ b/apps/metadata.c
@@ -76,6 +76,7 @@ static const struct format_list formats[] =
{ AFMT_A52, "ac3" },
{ AFMT_WAVPACK, "wv" },
{ AFMT_ALAC, "m4a" },
+ { AFMT_AAC, "mp4" },
};
static const unsigned short a52_bitrates[] =
@@ -965,7 +966,7 @@ static bool get_wave_metadata(int fd, struct mp3entry* id3)
-static bool get_alac_metadata(int fd, struct mp3entry* id3)
+static bool get_m4a_metadata(int fd, struct mp3entry* id3)
{
unsigned char* buf;
unsigned long totalsamples;
@@ -1171,8 +1172,15 @@ static bool get_alac_metadata(int fd, struct mp3entry* id3)
i+=4;
/* Check the codec type - 'alac' for ALAC, 'mp4a' for AAC */
- if (memcmp(&buf[i],"alac",4)!=0) {
- logf("Not an ALAC file\n");
+ if ((id3->codectype==AFMT_ALAC) &&
+ (memcmp(&buf[i],"alac",4)!=0)) {
+ logf("Not an ALAC file\n");
+ return false;
+ }
+
+ if ((id3->codectype==AFMT_AAC) &&
+ (memcmp(&buf[i],"mp4a",4)!=0)) {
+ logf("Not a MP4 AAC file\n");
return false;
}
@@ -1425,7 +1433,8 @@ bool get_metadata(struct track_info* track, int fd, const char* trackname,
break;
case AFMT_ALAC:
- if (!get_alac_metadata(fd, &(track->id3)))
+ case AFMT_AAC:
+ if (!get_m4a_metadata(fd, &(track->id3)))
{
// return false;
}