Commit 81a47a02 authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

AVI: support more extended tags

parent ab8578b8
...@@ -2573,7 +2573,10 @@ static void AVI_MetaLoad( demux_t *p_demux, ...@@ -2573,7 +2573,10 @@ static void AVI_MetaLoad( demux_t *p_demux,
AVIFOURCC_IARL, AVIFOURCC_ICMS, AVIFOURCC_ICRP, AVIFOURCC_IDIM, AVIFOURCC_IDPI, AVIFOURCC_IARL, AVIFOURCC_ICMS, AVIFOURCC_ICRP, AVIFOURCC_IDIM, AVIFOURCC_IDPI,
AVIFOURCC_IENG, AVIFOURCC_IKEY, AVIFOURCC_ILGT, AVIFOURCC_IMED, AVIFOURCC_IPLT, AVIFOURCC_IENG, AVIFOURCC_IKEY, AVIFOURCC_ILGT, AVIFOURCC_IMED, AVIFOURCC_IPLT,
AVIFOURCC_IPRD, AVIFOURCC_ISBJ, AVIFOURCC_ISFT, AVIFOURCC_ISHP, AVIFOURCC_ISRC, 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++ ) for( int i = 0; p_extra[i] != 0; i++ )
......
...@@ -616,32 +616,45 @@ static const struct ...@@ -616,32 +616,45 @@ static const struct
const char *psz_type; const char *psz_type;
} AVI_strz_type[] = } AVI_strz_type[] =
{ {
{ AVIFOURCC_IARL, "archive location" }, { AVIFOURCC_IARL, "Archive location" },
{ AVIFOURCC_IART, "artist" }, { AVIFOURCC_IART, "Artist" },
{ AVIFOURCC_ICMS, "commisioned" }, { AVIFOURCC_ICMS, "Commisioned" },
{ AVIFOURCC_ICMT, "comments" }, { AVIFOURCC_ICMT, "Comments" },
{ AVIFOURCC_ICOP, "copyright" }, { AVIFOURCC_ICOP, "Copyright" },
{ AVIFOURCC_ICRD, "creation date" }, { AVIFOURCC_ICRD, "Creation date" },
{ AVIFOURCC_ICRP, "cropped" }, { AVIFOURCC_ICRP, "Cropped" },
{ AVIFOURCC_IDIM, "dimensions" }, { AVIFOURCC_IDIM, "Dimensions" },
{ AVIFOURCC_IDPI, "dots per inch" }, { AVIFOURCC_IDPI, "Dots per inch" },
{ AVIFOURCC_IENG, "engineer" }, { AVIFOURCC_IENG, "Engineer" },
{ AVIFOURCC_IGNR, "genre" }, { AVIFOURCC_IGNR, "Genre" },
{ AVIFOURCC_IKEY, "keywords" }, { AVIFOURCC_ISGN, "Secondary Genre" },
{ AVIFOURCC_ILGT, "lightness" }, { AVIFOURCC_IKEY, "Keywords" },
{ AVIFOURCC_IMED, "medium" }, { AVIFOURCC_ILGT, "Lightness" },
{ AVIFOURCC_INAM, "name" }, { AVIFOURCC_IMED, "Medium" },
{ AVIFOURCC_IPLT, "palette setting" }, { AVIFOURCC_INAM, "Name" },
{ AVIFOURCC_IPRD, "product" }, { AVIFOURCC_IPLT, "Palette setting" },
{ AVIFOURCC_ISBJ, "subject" }, { AVIFOURCC_IPRD, "Product" },
{ AVIFOURCC_ISFT, "software" }, { AVIFOURCC_ISBJ, "Subject" },
{ AVIFOURCC_ISHP, "sharpness" }, { AVIFOURCC_ISFT, "Software" },
{ AVIFOURCC_ISRC, "source" }, { AVIFOURCC_ISHP, "Sharpness" },
{ AVIFOURCC_ISRF, "source form" }, { AVIFOURCC_ISRC, "Source" },
{ AVIFOURCC_ITCH, "technician" }, { AVIFOURCC_ISRF, "Source form" },
{ AVIFOURCC_ISMP, "time code" }, { AVIFOURCC_ITCH, "Technician" },
{ AVIFOURCC_IDIT, "digitalization time" }, { AVIFOURCC_ISMP, "Time code" },
{ AVIFOURCC_strn, "stream name" }, { 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, "???" } { 0, "???" }
}; };
static int AVI_ChunkRead_strz( stream_t *s, avi_chunk_t *p_chk ) static int AVI_ChunkRead_strz( stream_t *s, avi_chunk_t *p_chk )
...@@ -720,6 +733,7 @@ static const struct ...@@ -720,6 +733,7 @@ static const struct
{ AVIFOURCC_IDPI, AVI_ChunkRead_strz, AVI_ChunkFree_strz }, { AVIFOURCC_IDPI, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
{ AVIFOURCC_IENG, AVI_ChunkRead_strz, AVI_ChunkFree_strz }, { AVIFOURCC_IENG, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
{ AVIFOURCC_IGNR, 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_IKEY, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
{ AVIFOURCC_ILGT, AVI_ChunkRead_strz, AVI_ChunkFree_strz }, { AVIFOURCC_ILGT, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
{ AVIFOURCC_IMED, AVI_ChunkRead_strz, AVI_ChunkFree_strz }, { AVIFOURCC_IMED, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
...@@ -738,6 +752,20 @@ static const struct ...@@ -738,6 +752,20 @@ static const struct
{ AVIFOURCC_IRTD, AVI_ChunkRead_strz, AVI_ChunkFree_strz }, { AVIFOURCC_IRTD, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
{ AVIFOURCC_IWEB, AVI_ChunkRead_strz, AVI_ChunkFree_strz }, { AVIFOURCC_IWEB, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
{ AVIFOURCC_IPRT, 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 }, { AVIFOURCC_strn, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
{ 0, NULL, NULL } { 0, NULL, NULL }
}; };
......
...@@ -306,6 +306,7 @@ void AVI_ChunkFreeRoot( stream_t *, avi_chunk_t *p_chk ); ...@@ -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_IDPI VLC_FOURCC('I','D','P','I')
#define AVIFOURCC_IENG VLC_FOURCC('I','E','N','G') #define AVIFOURCC_IENG VLC_FOURCC('I','E','N','G')
#define AVIFOURCC_IGNR VLC_FOURCC('I','G','N','R') #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_IKEY VLC_FOURCC('I','K','E','Y')
#define AVIFOURCC_ILGT VLC_FOURCC('I','L','G','T') #define AVIFOURCC_ILGT VLC_FOURCC('I','L','G','T')
#define AVIFOURCC_IMED VLC_FOURCC('I','M','E','D') #define AVIFOURCC_IMED VLC_FOURCC('I','M','E','D')
...@@ -324,6 +325,18 @@ void AVI_ChunkFreeRoot( stream_t *, avi_chunk_t *p_chk ); ...@@ -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_IRTD VLC_FOURCC('I','R','T','D')
#define AVIFOURCC_IWEB VLC_FOURCC('I','W','E','B') #define AVIFOURCC_IWEB VLC_FOURCC('I','W','E','B')
#define AVIFOURCC_IPRT VLC_FOURCC('I','P','R','T') #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') #define AVITWOCC_wb VLC_TWOCC('w','b')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment