[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