[vlc-commits] MP4: support more Metadata tags

Jean-Baptiste Kempf git at videolan.org
Wed Jun 13 00:56:20 CEST 2012


vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Wed Jun 13 02:30:27 2012 +0200| [f659b74409bb3d27d10cdda59cc8a386018da29a] | committer: Jean-Baptiste Kempf

MP4: support more Metadata tags

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f659b74409bb3d27d10cdda59cc8a386018da29a
---

 modules/demux/mp4/libmp4.c |   14 ++++++++++++++
 modules/demux/mp4/libmp4.h |   16 +++++++++++++++-
 modules/demux/mp4/mp4.c    |   20 +++++++++++++++++++-
 3 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c
index 6ddd8d8..5a89935 100644
--- a/modules/demux/mp4/libmp4.c
+++ b/modules/demux/mp4/libmp4.c
@@ -3244,6 +3244,20 @@ static const struct
     { ATOM_0xa9PRD, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
     { ATOM_0xa9grp, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
     { ATOM_0xa9lyr, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9gen, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9st3, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9ard, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9arg, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9cak, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9con, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9des, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9lnt, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9phg, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9pub, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9sne, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9sol, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9thx, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
+    { ATOM_0xa9xpd, MP4_ReadBox_0xa9xxx,      MP4_FreeBox_0xa9xxx },
 
     { ATOM_chpl,    MP4_ReadBox_chpl,         MP4_FreeBox_chpl },
 
diff --git a/modules/demux/mp4/libmp4.h b/modules/demux/mp4/libmp4.h
index fed1b74..9485c94 100644
--- a/modules/demux/mp4/libmp4.h
+++ b/modules/demux/mp4/libmp4.h
@@ -239,7 +239,21 @@
 #define ATOM_0xa9mod VLC_FOURCC( 0xa9, 'm', 'o', 'd' )
 #define ATOM_0xa9PRD VLC_FOURCC( 0xa9, 'P', 'R', 'D' )
 #define ATOM_0xa9grp VLC_FOURCC( 0xa9, 'g', 'r', 'p' )
-#define ATOM_0xa9lyr VLC_FOURCC( 0xa9, 'g', 'r', 'p' )
+#define ATOM_0xa9lyr VLC_FOURCC( 0xa9, 'l', 'y', 'r' )
+#define ATOM_0xa9gen VLC_FOURCC( 0xa9, 'g', 'e', 'n' )
+#define ATOM_0xa9st3 VLC_FOURCC( 0xa9, 's', 't', '3' )
+#define ATOM_0xa9ard VLC_FOURCC( 0xa9, 'a', 'r', 'd' )
+#define ATOM_0xa9arg VLC_FOURCC( 0xa9, 'a', 'r', 'g' )
+#define ATOM_0xa9cak VLC_FOURCC( 0xa9, 'c', 'a', 'k' )
+#define ATOM_0xa9con VLC_FOURCC( 0xa9, 'c', 'o', 'n' )
+#define ATOM_0xa9des VLC_FOURCC( 0xa9, 'd', 'e', 's' )
+#define ATOM_0xa9lnt VLC_FOURCC( 0xa9, 'l', 'n', 't' )
+#define ATOM_0xa9phg VLC_FOURCC( 0xa9, 'p', 'h', 'g' )
+#define ATOM_0xa9pub VLC_FOURCC( 0xa9, 'p', 'u', 'b' )
+#define ATOM_0xa9sne VLC_FOURCC( 0xa9, 's', 'n', 'e' )
+#define ATOM_0xa9sol VLC_FOURCC( 0xa9, 's', 'o', 'l' )
+#define ATOM_0xa9thx VLC_FOURCC( 0xa9, 't', 'h', 'x' )
+#define ATOM_0xa9xpd VLC_FOURCC( 0xa9, 'x', 'p', 'd' )
 #define ATOM_chpl VLC_FOURCC( 'c', 'h', 'p', 'l' )
 #define ATOM_WLOC VLC_FOURCC( 'W', 'L', 'O', 'C' )
 
diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c
index b0cb662..2620683 100644
--- a/modules/demux/mp4/mp4.c
+++ b/modules/demux/mp4/mp4.c
@@ -861,6 +861,10 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
                     SET( vlc_meta_SetEncodedBy );
                     break;
 
+                case ATOM_0xa9pub:
+                    SET( vlc_meta_SetPublisher );
+                    break;
+
                 default:
                     break;
                 }
@@ -883,10 +887,24 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
                     { ATOM_0xa9wrn, N_("Warning") },
                     { ATOM_0xa9swr, N_("Software") },
                     { ATOM_0xa9lyr, N_("Lyrics") },
-                    { ATOM_0xa9mak, N_("Make") },
+                    { ATOM_0xa9mak, N_("Record Company") },
                     { ATOM_0xa9mod, N_("Model") },
                     { ATOM_0xa9PRD, N_("Product") },
                     { ATOM_0xa9grp, N_("Grouping") },
+                    { ATOM_0xa9gen, N_("Genre") },
+                    { ATOM_0xa9st3, N_("Sub-Title") },
+                    { ATOM_0xa9arg, N_("Arranger") },
+                    { ATOM_0xa9ard, N_("Art Director") },
+                    { ATOM_0xa9cak, N_("Copyright Acknowledgement") },
+                    { ATOM_0xa9con, N_("Conductor") },
+                    { ATOM_0xa9des, N_("Song Description") },
+                    { ATOM_0xa9lnt, N_("Liner Notes") },
+                    { ATOM_0xa9phg, N_("Phonogram Rights") },
+                    { ATOM_0xa9pub, N_("Publisher") },
+                    { ATOM_0xa9sne, N_("Sound Engineer") },
+                    { ATOM_0xa9sol, N_("Soloist") },
+                    { ATOM_0xa9thx, N_("Thanks") },
+                    { ATOM_0xa9xpd, N_("Executive Producer") },
                     { 0, "" },
                 };
                 for( unsigned i = 0; xa9typetoextrameta[i].xa9_type; i++ )



More information about the vlc-commits mailing list