[vlc-commits] AVI: support more extended tags

Jean-Baptiste Kempf git at videolan.org
Mon May 21 14:02:10 CEST 2012


vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Mon May 21 13:51:04 2012 +0200| [81a47a0267683dcb8ea354cdfbe6f367e7a09b1f] | committer: Jean-Baptiste Kempf

AVI: support more extended tags

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

 modules/demux/avi/avi.c    |    5 ++-
 modules/demux/avi/libavi.c |   80 ++++++++++++++++++++++++++++++--------------
 modules/demux/avi/libavi.h |   13 +++++++
 3 files changed, 71 insertions(+), 27 deletions(-)

diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index 91791a0..990aa3a 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -2573,7 +2573,10 @@ static void AVI_MetaLoad( demux_t *p_demux,
         AVIFOURCC_IARL, AVIFOURCC_ICMS, AVIFOURCC_ICRP, AVIFOURCC_IDIM, AVIFOURCC_IDPI,
         AVIFOURCC_IENG, AVIFOURCC_IKEY, AVIFOURCC_ILGT, AVIFOURCC_IMED, AVIFOURCC_IPLT,
         AVIFOURCC_IPRD, AVIFOURCC_ISBJ, AVIFOURCC_ISFT, AVIFOURCC_ISHP, AVIFOURCC_ISRC,
-        AVIFOURCC_ISRF, AVIFOURCC_ITCH, AVIFOURCC_ISMP, AVIFOURCC_IDIT, 0
+        AVIFOURCC_ISRF, AVIFOURCC_ITCH, AVIFOURCC_ISMP, AVIFOURCC_IDIT, AVIFOURCC_ISGN,
+        AVIFOURCC_IWRI, AVIFOURCC_IPRO, AVIFOURCC_ICNM, AVIFOURCC_IPDS, AVIFOURCC_IEDT,
+        AVIFOURCC_ICDS, AVIFOURCC_IMUS, AVIFOURCC_ISTD, AVIFOURCC_IDST, AVIFOURCC_ICNT,
+        AVIFOURCC_ISTR, AVIFOURCC_IFRM, 0,
     };
 
     for( int i = 0; p_extra[i] != 0; i++ )
diff --git a/modules/demux/avi/libavi.c b/modules/demux/avi/libavi.c
index b86a1dd..297bfdf 100644
--- a/modules/demux/avi/libavi.c
+++ b/modules/demux/avi/libavi.c
@@ -616,32 +616,45 @@ static const struct
     const char *psz_type;
 } AVI_strz_type[] =
 {
-    { AVIFOURCC_IARL, "archive location" },
-    { AVIFOURCC_IART, "artist" },
-    { AVIFOURCC_ICMS, "commisioned" },
-    { AVIFOURCC_ICMT, "comments" },
-    { AVIFOURCC_ICOP, "copyright" },
-    { AVIFOURCC_ICRD, "creation date" },
-    { AVIFOURCC_ICRP, "cropped" },
-    { AVIFOURCC_IDIM, "dimensions" },
-    { AVIFOURCC_IDPI, "dots per inch" },
-    { AVIFOURCC_IENG, "engineer" },
-    { AVIFOURCC_IGNR, "genre" },
-    { AVIFOURCC_IKEY, "keywords" },
-    { AVIFOURCC_ILGT, "lightness" },
-    { AVIFOURCC_IMED, "medium" },
-    { AVIFOURCC_INAM, "name" },
-    { AVIFOURCC_IPLT, "palette setting" },
-    { AVIFOURCC_IPRD, "product" },
-    { AVIFOURCC_ISBJ, "subject" },
-    { AVIFOURCC_ISFT, "software" },
-    { AVIFOURCC_ISHP, "sharpness" },
-    { AVIFOURCC_ISRC, "source" },
-    { AVIFOURCC_ISRF, "source form" },
-    { AVIFOURCC_ITCH, "technician" },
-    { AVIFOURCC_ISMP, "time code" },
-    { AVIFOURCC_IDIT, "digitalization time" },
-    { AVIFOURCC_strn, "stream name" },
+    { AVIFOURCC_IARL, "Archive location" },
+    { AVIFOURCC_IART, "Artist" },
+    { AVIFOURCC_ICMS, "Commisioned" },
+    { AVIFOURCC_ICMT, "Comments" },
+    { AVIFOURCC_ICOP, "Copyright" },
+    { AVIFOURCC_ICRD, "Creation date" },
+    { AVIFOURCC_ICRP, "Cropped" },
+    { AVIFOURCC_IDIM, "Dimensions" },
+    { AVIFOURCC_IDPI, "Dots per inch" },
+    { AVIFOURCC_IENG, "Engineer" },
+    { AVIFOURCC_IGNR, "Genre" },
+    { AVIFOURCC_ISGN, "Secondary Genre" },
+    { AVIFOURCC_IKEY, "Keywords" },
+    { AVIFOURCC_ILGT, "Lightness" },
+    { AVIFOURCC_IMED, "Medium" },
+    { AVIFOURCC_INAM, "Name" },
+    { AVIFOURCC_IPLT, "Palette setting" },
+    { AVIFOURCC_IPRD, "Product" },
+    { AVIFOURCC_ISBJ, "Subject" },
+    { AVIFOURCC_ISFT, "Software" },
+    { AVIFOURCC_ISHP, "Sharpness" },
+    { AVIFOURCC_ISRC, "Source" },
+    { AVIFOURCC_ISRF, "Source form" },
+    { AVIFOURCC_ITCH, "Technician" },
+    { AVIFOURCC_ISMP, "Time code" },
+    { AVIFOURCC_IDIT, "Digitalization time" },
+    { AVIFOURCC_IWRI, "Writer" },
+    { AVIFOURCC_IPRO, "Producer" },
+    { AVIFOURCC_ICNM, "Cinematographer" },
+    { AVIFOURCC_IPDS, "Production designer" },
+    { AVIFOURCC_IEDT, "Editor" },
+    { AVIFOURCC_ICDS, "Costume designer" },
+    { AVIFOURCC_IMUS, "Music" },
+    { AVIFOURCC_ISTD, "Production studio" },
+    { AVIFOURCC_IDST, "Distributor" },
+    { AVIFOURCC_ICNT, "Country" },
+    { AVIFOURCC_ISTR, "Starring" },
+    { AVIFOURCC_IFRM, "Total number of parts" },
+    { AVIFOURCC_strn, "Stream name" },
     { 0,              "???" }
 };
 static int AVI_ChunkRead_strz( stream_t *s, avi_chunk_t *p_chk )
@@ -720,6 +733,7 @@ static const struct
     { AVIFOURCC_IDPI, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
     { AVIFOURCC_IENG, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
     { AVIFOURCC_IGNR, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+    { AVIFOURCC_ISGN, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
     { AVIFOURCC_IKEY, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
     { AVIFOURCC_ILGT, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
     { AVIFOURCC_IMED, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
@@ -738,6 +752,20 @@ static const struct
     { AVIFOURCC_IRTD, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
     { AVIFOURCC_IWEB, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
     { AVIFOURCC_IPRT, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+    { AVIFOURCC_IWRI, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+    { AVIFOURCC_IPRO, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+    { AVIFOURCC_ICNM, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+    { AVIFOURCC_IPDS, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+    { AVIFOURCC_IEDT, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+    { AVIFOURCC_ICDS, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+    { AVIFOURCC_IMUS, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+    { AVIFOURCC_ISTD, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+    { AVIFOURCC_IDST, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+    { AVIFOURCC_ICNT, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+    { AVIFOURCC_ISTR, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+    { AVIFOURCC_IFRM, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
+
+
     { AVIFOURCC_strn, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
     { 0,           NULL,               NULL }
 };
diff --git a/modules/demux/avi/libavi.h b/modules/demux/avi/libavi.h
index 38fe2c8..e659daa 100644
--- a/modules/demux/avi/libavi.h
+++ b/modules/demux/avi/libavi.h
@@ -306,6 +306,7 @@ void    AVI_ChunkFreeRoot( stream_t *, avi_chunk_t  *p_chk );
 #define AVIFOURCC_IDPI         VLC_FOURCC('I','D','P','I')
 #define AVIFOURCC_IENG         VLC_FOURCC('I','E','N','G')
 #define AVIFOURCC_IGNR         VLC_FOURCC('I','G','N','R')
+#define AVIFOURCC_ISGN         VLC_FOURCC('I','S','G','N')
 #define AVIFOURCC_IKEY         VLC_FOURCC('I','K','E','Y')
 #define AVIFOURCC_ILGT         VLC_FOURCC('I','L','G','T')
 #define AVIFOURCC_IMED         VLC_FOURCC('I','M','E','D')
@@ -324,6 +325,18 @@ void    AVI_ChunkFreeRoot( stream_t *, avi_chunk_t  *p_chk );
 #define AVIFOURCC_IRTD         VLC_FOURCC('I','R','T','D')
 #define AVIFOURCC_IWEB         VLC_FOURCC('I','W','E','B')
 #define AVIFOURCC_IPRT         VLC_FOURCC('I','P','R','T')
+#define AVIFOURCC_IWRI         VLC_FOURCC('I','W','R','I')
+#define AVIFOURCC_IPRO         VLC_FOURCC('I','P','R','O')
+#define AVIFOURCC_ICNM         VLC_FOURCC('I','C','N','M')
+#define AVIFOURCC_IPDS         VLC_FOURCC('I','P','D','S')
+#define AVIFOURCC_IEDT         VLC_FOURCC('I','E','D','T')
+#define AVIFOURCC_ICDS         VLC_FOURCC('I','C','D','S')
+#define AVIFOURCC_IMUS         VLC_FOURCC('I','M','U','S')
+#define AVIFOURCC_ISTD         VLC_FOURCC('I','S','T','D')
+#define AVIFOURCC_IDST         VLC_FOURCC('I','D','S','T')
+#define AVIFOURCC_ICNT         VLC_FOURCC('I','C','N','T')
+#define AVIFOURCC_ISTR         VLC_FOURCC('I','S','T','R')
+#define AVIFOURCC_IFRM         VLC_FOURCC('I','F','R','M')
 
 
 #define AVITWOCC_wb            VLC_TWOCC('w','b')



More information about the vlc-commits mailing list