[vlc-commits] AVI: parse dmlh chunk

Jean-Baptiste Kempf git at videolan.org
Thu May 24 14:30:52 CEST 2012


vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Thu May 24 14:29:59 2012 +0200| [5d39e77b6b0af8dbf2df4ba3a336fb469a9488a9] | committer: Jean-Baptiste Kempf

AVI: parse dmlh chunk

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

 modules/demux/avi/libavi.c |   16 ++++++++++++++++
 modules/demux/avi/libavi.h |    7 +++++++
 2 files changed, 23 insertions(+)

diff --git a/modules/demux/avi/libavi.c b/modules/demux/avi/libavi.c
index 748b78f..e0af443 100644
--- a/modules/demux/avi/libavi.c
+++ b/modules/demux/avi/libavi.c
@@ -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 },
diff --git a/modules/demux/avi/libavi.h b/modules/demux/avi/libavi.h
index 1dde7dd..c2d720d 100644
--- a/modules/demux/avi/libavi.h
+++ b/modules/demux/avi/libavi.h
@@ -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')



More information about the vlc-commits mailing list