ref: cf4fcaf9b455557ed99725b662cd81d3160da268
parent: a432dd721ceda6bf59e4a51d338cb8920d245219
author: menno <menno>
date: Mon Jan 19 18:56:30 EST 2009
Updated tag reading code with newest iTunes types
--- a/common/mp4ff/mp4atom.c
+++ b/common/mp4ff/mp4atom.c
@@ -25,7 +25,7 @@
** Commercial non-GPL licensing of this software is possible.
** For more info contact Nero AG through Mpeg4AAClicense@nero.com.
**
-** $Id: mp4atom.c,v 1.28 2008/12/23 01:24:49 menno Exp $
+** $Id: mp4atom.c,v 1.29 2009/01/19 23:56:30 menno Exp $
**/
#include <stdlib.h>
@@ -108,6 +108,16 @@
return ATOM_TRACK;
else if (mp4ff_atom_compare(a,b,c,d, 't','m','p','o'))
return ATOM_TEMPO;
+ else if (mp4ff_atom_compare(a,b,c,d, 't','v','n','n'))
+ return ATOM_NETWORK;
+ else if (mp4ff_atom_compare(a,b,c,d, 't','v','s','h'))
+ return ATOM_SHOW;
+ else if (mp4ff_atom_compare(a,b,c,d, 't','v','e','n'))
+ return ATOM_EPISODENAME;
+ else if (mp4ff_atom_compare(a,b,c,d, 't','v','s','n'))
+ return ATOM_SEASON;
+ else if (mp4ff_atom_compare(a,b,c,d, 't','v','e','s'))
+ return ATOM_EPISODE;
} else if (a == 's') {
if (mp4ff_atom_compare(a,b,c,d, 's','t','b','l'))
return ATOM_STBL;
@@ -131,6 +141,18 @@
return ATOM_SINF;
else if (mp4ff_atom_compare(a,b,c,d, 's','c','h','i'))
return ATOM_SCHI;
+ else if (mp4ff_atom_compare(a,b,c,d, 's','o','n','m'))
+ return ATOM_SORTTITLE;
+ else if (mp4ff_atom_compare(a,b,c,d, 's','o','a','l'))
+ return ATOM_SORTALBUM;
+ else if (mp4ff_atom_compare(a,b,c,d, 's','o','a','r'))
+ return ATOM_SORTARTIST;
+ else if (mp4ff_atom_compare(a,b,c,d, 's','o','a','a'))
+ return ATOM_SORTALBUMARTIST;
+ else if (mp4ff_atom_compare(a,b,c,d, 's','o','c','o'))
+ return ATOM_SORTWRITER;
+ else if (mp4ff_atom_compare(a,b,c,d, 's','o','s','n'))
+ return ATOM_SORTSHOW;
} else if (a == COPYRIGHT_SYMBOL) {
if (mp4ff_atom_compare(a,b,c,d, COPYRIGHT_SYMBOL,'n','a','m'))
return ATOM_TITLE;
@@ -148,6 +170,10 @@
return ATOM_COMMENT;
else if (mp4ff_atom_compare(a,b,c,d, COPYRIGHT_SYMBOL,'g','e','n'))
return ATOM_GENRE1;
+ else if (mp4ff_atom_compare(a,b,c,d, COPYRIGHT_SYMBOL,'g','r','p'))
+ return ATOM_CONTENTGROUP;
+ else if (mp4ff_atom_compare(a,b,c,d, COPYRIGHT_SYMBOL,'l','y','r'))
+ return ATOM_LYRICS;
}
if (mp4ff_atom_compare(a,b,c,d, 'e','d','t','s'))
@@ -192,9 +218,12 @@
return ATOM_USER;
else if (mp4ff_atom_compare(a,b,c,d, 'k','e','y',' '))
return ATOM_KEY;
- /* added by AJS */
else if (mp4ff_atom_compare(a,b,c,d, 'a','A','R','T'))
return ATOM_ALBUM_ARTIST;
+ else if (mp4ff_atom_compare(a,b,c,d, 'd','e','s','c'))
+ return ATOM_DESCRIPTION;
+ else if (mp4ff_atom_compare(a,b,c,d, 'p','c','s','t'))
+ return ATOM_PODCAST;
else
return ATOM_UNKNOWN;
}
--- a/common/mp4ff/mp4ffint.h
+++ b/common/mp4ff/mp4ffint.h
@@ -25,7 +25,7 @@
** Commercial non-GPL licensing of this software is possible.
** For more info contact Nero AG through Mpeg4AAClicense@nero.com.
**
-** $Id: mp4ffint.h,v 1.24 2008/12/23 01:24:49 menno Exp $
+** $Id: mp4ffint.h,v 1.25 2009/01/19 23:56:30 menno Exp $
**/
#ifndef MP4FF_INTERNAL_H
@@ -122,8 +122,22 @@
#define ATOM_USER 155
#define ATOM_KEY 156
-/* added by AJS */
#define ATOM_ALBUM_ARTIST 157
+#define ATOM_CONTENTGROUP 158
+#define ATOM_LYRICS 159
+#define ATOM_DESCRIPTION 160
+#define ATOM_NETWORK 161
+#define ATOM_SHOW 162
+#define ATOM_EPISODENAME 163
+#define ATOM_SORTTITLE 164
+#define ATOM_SORTALBUM 165
+#define ATOM_SORTARTIST 166
+#define ATOM_SORTALBUMARTIST 167
+#define ATOM_SORTWRITER 168
+#define ATOM_SORTSHOW 169
+#define ATOM_SEASON 170
+#define ATOM_EPISODE 171
+#define ATOM_PODCAST 172
#define ATOM_UNKNOWN 255
#define ATOM_FREE ATOM_UNKNOWN
--- a/common/mp4ff/mp4meta.c
+++ b/common/mp4ff/mp4meta.c
@@ -25,7 +25,7 @@
** Commercial non-GPL licensing of this software is possible.
** For more info contact Nero AG through Mpeg4AAClicense@nero.com.
**
-** $Id: mp4meta.c,v 1.20 2008/12/23 01:24:49 menno Exp $
+** $Id: mp4meta.c,v 1.21 2009/01/19 23:56:30 menno Exp $
**/
#ifdef USE_TAGGING
@@ -169,8 +169,12 @@
"unknown", "title", "artist", "writer", "album",
"date", "tool", "comment", "genre", "track",
"disc", "compilation", "genre", "tempo", "cover",
- /* added by AJS */
- "album_artist"
+ "album_artist", "contentgroup", "lyrics", "description",
+ "network", "show", "episodename",
+ "sorttitle", "sortalbum", "sortartist", "sortalbumartist",
+ "sortwriter", "sortshow",
+ "season", "episode", "podcast"
+
};
uint8_t tag_idx = 0;
@@ -190,8 +194,22 @@
case ATOM_GENRE2: tag_idx = 12; break;
case ATOM_TEMPO: tag_idx = 13; break;
case ATOM_COVER: tag_idx = 14; break;
- /* added by AJS */
case ATOM_ALBUM_ARTIST: tag_idx = 15; break;
+ case ATOM_CONTENTGROUP: tag_idx = 16; break;
+ case ATOM_LYRICS: tag_idx = 17; break;
+ case ATOM_DESCRIPTION: tag_idx = 18; break;
+ case ATOM_NETWORK: tag_idx = 19; break;
+ case ATOM_SHOW: tag_idx = 20; break;
+ case ATOM_EPISODENAME: tag_idx = 21; break;
+ case ATOM_SORTTITLE: tag_idx = 22; break;
+ case ATOM_SORTALBUM: tag_idx = 23; break;
+ case ATOM_SORTARTIST: tag_idx = 24; break;
+ case ATOM_SORTALBUMARTIST: tag_idx = 25; break;
+ case ATOM_SORTWRITER: tag_idx = 26; break;
+ case ATOM_SORTSHOW: tag_idx = 27; break;
+ case ATOM_SEASON: tag_idx = 28; break;
+ case ATOM_EPISODE: tag_idx = 29; break;
+ case ATOM_PODCAST: tag_idx = 30; break;
default: tag_idx = 0; break;
}