]> git.sesse.net Git - vlc/commitdiff
AVI: parse dmlh chunk
authorJean-Baptiste Kempf <jb@videolan.org>
Thu, 24 May 2012 12:29:59 +0000 (14:29 +0200)
committerJean-Baptiste Kempf <jb@videolan.org>
Thu, 24 May 2012 12:30:45 +0000 (14:30 +0200)
modules/demux/avi/libavi.c
modules/demux/avi/libavi.h

index 748b78f1b49b02493d302b852a96f49c68a357eb..e0af44311d901951c0f3cd2b9bbf0f63d0a9658c 100644 (file)
@@ -613,6 +613,21 @@ static int AVI_ChunkRead_vprp( stream_t *s, avi_chunk_t *p_chk )
     AVI_READCHUNK_EXIT( VLC_SUCCESS );
 }
 
+static int AVI_ChunkRead_dmlh( stream_t *s, avi_chunk_t *p_chk )
+{
+    avi_chunk_dmlh_t *p_dmlh = (avi_chunk_dmlh_t*)p_chk;
+
+    AVI_READCHUNK_ENTER;
+
+    AVI_READ4BYTES( p_dmlh->dwTotalFrames );
+
+#ifdef AVI_DEBUG
+    msg_Dbg( (vlc_object_t*)s, "dmlh: dwTotalFrames %d",
+             p_dmlh->dwTotalFrames );
+#endif
+    AVI_READCHUNK_EXIT( VLC_SUCCESS );
+}
+
 static const struct
 {
     vlc_fourcc_t i_fourcc;
@@ -724,6 +739,7 @@ static const struct
     { AVIFOURCC_indx, AVI_ChunkRead_indx, AVI_ChunkFree_indx },
     { AVIFOURCC_vprp, AVI_ChunkRead_vprp, AVI_ChunkFree_nothing },
     { AVIFOURCC_JUNK, AVI_ChunkRead_nothing, AVI_ChunkFree_nothing },
+    { AVIFOURCC_dmlh, AVI_ChunkRead_dmlh, AVI_ChunkFree_nothing },
 
     { AVIFOURCC_IARL, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
     { AVIFOURCC_IART, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
index 1dde7dd7f44129b0571eb7d8199e7fccea2a9a4e..c2d720d483f24ec2476175066b0c1e43ba340424 100644 (file)
@@ -171,6 +171,12 @@ typedef struct avi_chunk_vprp_s
 
 } avi_chunk_vprp_t;
 
+typedef struct avi_chunk_dmlh_s
+{
+    AVI_CHUNK_COMMON
+    uint32_t dwTotalFrames;
+} avi_chunk_dmlh_t;
+
 
 #define AVI_INDEX_OF_INDEXES    0x00
 #define AVI_INDEX_OF_CHUNKS     0x01
@@ -281,6 +287,7 @@ void    AVI_ChunkFreeRoot( stream_t *, avi_chunk_t  *p_chk );
 #define AVIFOURCC_strn         VLC_FOURCC('s','t','r','n')
 #define AVIFOURCC_indx         VLC_FOURCC('i','n','d','x')
 #define AVIFOURCC_vprp         VLC_FOURCC('v','p','r','p')
+#define AVIFOURCC_dmlh         VLC_FOURCC('d','m','l','h')
 
 #define AVIFOURCC_rec          VLC_FOURCC('r','e','c',' ')
 #define AVIFOURCC_auds         VLC_FOURCC('a','u','d','s')