summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Holmgren <magnushol@gmail.com>2007-07-26 11:59:48 +0000
committerMagnus Holmgren <magnushol@gmail.com>2007-07-26 11:59:48 +0000
commitb1d07b465c054d8f56a0f85a21fbf52a59420162 (patch)
treef08ee58dafe5e2e3e9144647af81a69c1be9f38e
parent5d3bbe6d3896e02cd72dcd12896036abb622f8a3 (diff)
downloadrockbox-b1d07b465c054d8f56a0f85a21fbf52a59420162.zip
rockbox-b1d07b465c054d8f56a0f85a21fbf52a59420162.tar.gz
rockbox-b1d07b465c054d8f56a0f85a21fbf52a59420162.tar.bz2
rockbox-b1d07b465c054d8f56a0f85a21fbf52a59420162.tar.xz
MP4: Add support for comment and year tags.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13998 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/metadata/mp4.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/apps/metadata/mp4.c b/apps/metadata/mp4.c
index 13f323f5..591d020 100644
--- a/apps/metadata/mp4.c
+++ b/apps/metadata/mp4.c
@@ -29,6 +29,7 @@
#include "logf.h"
#include "debug.h"
#include "replaygain.h"
+#include "atoi.h"
#define MP4_ID(a, b, c, d) (((a) << 24) | ((b) << 16) | ((c) << 8) | (d))
@@ -40,6 +41,8 @@
#define MP4_cgen MP4_ID(0xa9, 'g', 'e', 'n')
#define MP4_cnam MP4_ID(0xa9, 'n', 'a', 'm')
#define MP4_cwrt MP4_ID(0xa9, 'w', 'r', 't')
+#define MP4_ccmt MP4_ID(0xa9, 'c', 'm', 't')
+#define MP4_cday MP4_ID(0xa9, 'd', 'a', 'y')
#define MP4_esds MP4_ID('e', 's', 'd', 's')
#define MP4_ftyp MP4_ID('f', 't', 'y', 'p')
#define MP4_gnre MP4_ID('g', 'n', 'r', 'e')
@@ -385,6 +388,26 @@ static bool read_mp4_tags(int fd, struct mp3entry* id3,
cwrt = false;
break;
+ case MP4_ccmt:
+ read_mp4_tag_string(fd, size, &buffer, &buffer_left,
+ &id3->comment);
+ break;
+
+ case MP4_cday:
+ read_mp4_tag_string(fd, size, &buffer, &buffer_left,
+ &id3->year_string);
+
+ /* Try to parse it as a year, for the benefit of the database.
+ */
+ id3->year = atoi(id3->year_string);
+
+ if (id3->year < 1900)
+ {
+ id3->year = 0;
+ }
+
+ break;
+
case MP4_gnre:
{
unsigned short genre;