ref: 5ecb2ee2de967a861a3e0bfb2e2a3990fde08d53
parent: 3e1f2d409f2cbd7894e6ca91267b68987ef867c1
author: menno <menno>
date: Mon Jan 5 15:03:29 EST 2004
Fixed some tag writing of cover art
--- a/common/mp4v2/atom_meta.cpp
+++ b/common/mp4v2/atom_meta.cpp
@@ -100,6 +100,7 @@
ExpectChildAtom("gnre", Optional, OnlyOne); /* genre (ID3v1 index + 1) */
ExpectChildAtom("cpil", Optional, OnlyOne); /* compilation */
ExpectChildAtom("tmpo", Optional, OnlyOne); /* BPM */
+ ExpectChildAtom("covr", Optional, OnlyOne); /* cover art */
ExpectChildAtom("----", Optional, Many); /* ---- free form */
}
@@ -185,6 +186,12 @@
MP4TmpoAtom::MP4TmpoAtom()
: MP4Atom("tmpo")
+{
+ ExpectChildAtom("data", Required, OnlyOne);
+}
+
+MP4CovrAtom::MP4CovrAtom()
+ : MP4Atom("covr")
{
ExpectChildAtom("data", Required, OnlyOne);
}
--- a/common/mp4v2/atoms.h
+++ b/common/mp4v2/atoms.h
@@ -575,6 +575,11 @@
MP4TmpoAtom();
};
+class MP4CovrAtom : public MP4Atom {
+public:
+ MP4CovrAtom();
+};
+
class MP4CmtAtom : public MP4Atom {
public:
MP4CmtAtom();
--- a/common/mp4v2/mp4atom.cpp
+++ b/common/mp4v2/mp4atom.cpp
@@ -75,6 +75,8 @@
pAtom = new MP4CprtAtom();
} else if (ATOMID(type) == ATOMID("cpil")) { /* Apple iTunes */
pAtom = new MP4CpilAtom();
+ } else if (ATOMID(type) == ATOMID("covr")) { /* Apple iTunes */
+ pAtom = new MP4CovrAtom();
}
break;
case 'd':
--- a/plugins/in_mp4/in_mp4.c
+++ b/plugins/in_mp4/in_mp4.c
@@ -22,7 +22,7 @@
** Commercial non-GPL licensing of this software is possible.
** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
**
-** $Id: in_mp4.c,v 1.49 2004/01/02 16:38:48 ca5e Exp $
+** $Id: in_mp4.c,v 1.50 2004/01/05 20:03:29 menno Exp $
**/
//#define DEBUG_OUTPUT
@@ -277,6 +277,8 @@
} else {
tag_add_field(tags, pName, val, valueSize);
}
+ } else if (memcmp(pName, "covr", 4) == 0) {
+ tag_add_field(tags, "cover", val, valueSize);
} else if (memcmp(pName, "gnre", 4) == 0) {
char *t=0;
if (MP4GetMetadataGenre(file, &t))
@@ -401,6 +403,10 @@
else if (!stricmp(item, "tool"))
{
if (MP4SetMetadataTool(file, val)) return 1;
+ }
+ else if (!stricmp(item, "cover"))
+ {
+ if (MP4SetMetadataCoverArt(file, val, v_len)) return 1;
}
else
{