diff options
| author | Magnus Holmgren <magnushol@gmail.com> | 2007-07-26 11:59:48 +0000 |
|---|---|---|
| committer | Magnus Holmgren <magnushol@gmail.com> | 2007-07-26 11:59:48 +0000 |
| commit | b1d07b465c054d8f56a0f85a21fbf52a59420162 (patch) | |
| tree | f08ee58dafe5e2e3e9144647af81a69c1be9f38e | |
| parent | 5d3bbe6d3896e02cd72dcd12896036abb622f8a3 (diff) | |
| download | rockbox-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.c | 23 |
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; |