Commit 5d39e77b authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

AVI: parse dmlh chunk

parent e8f45e69
...@@ -613,6 +613,21 @@ static int AVI_ChunkRead_vprp( stream_t *s, avi_chunk_t *p_chk ) ...@@ -613,6 +613,21 @@ static int AVI_ChunkRead_vprp( stream_t *s, avi_chunk_t *p_chk )
AVI_READCHUNK_EXIT( VLC_SUCCESS ); 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 static const struct
{ {
vlc_fourcc_t i_fourcc; vlc_fourcc_t i_fourcc;
...@@ -724,6 +739,7 @@ static const struct ...@@ -724,6 +739,7 @@ static const struct
{ AVIFOURCC_indx, AVI_ChunkRead_indx, AVI_ChunkFree_indx }, { AVIFOURCC_indx, AVI_ChunkRead_indx, AVI_ChunkFree_indx },
{ AVIFOURCC_vprp, AVI_ChunkRead_vprp, AVI_ChunkFree_nothing }, { AVIFOURCC_vprp, AVI_ChunkRead_vprp, AVI_ChunkFree_nothing },
{ AVIFOURCC_JUNK, AVI_ChunkRead_nothing, 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_IARL, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
{ AVIFOURCC_IART, AVI_ChunkRead_strz, AVI_ChunkFree_strz }, { AVIFOURCC_IART, AVI_ChunkRead_strz, AVI_ChunkFree_strz },
......
...@@ -171,6 +171,12 @@ typedef struct avi_chunk_vprp_s ...@@ -171,6 +171,12 @@ typedef struct avi_chunk_vprp_s
} avi_chunk_vprp_t; } 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_INDEXES 0x00
#define AVI_INDEX_OF_CHUNKS 0x01 #define AVI_INDEX_OF_CHUNKS 0x01
...@@ -281,6 +287,7 @@ void AVI_ChunkFreeRoot( stream_t *, avi_chunk_t *p_chk ); ...@@ -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_strn VLC_FOURCC('s','t','r','n')
#define AVIFOURCC_indx VLC_FOURCC('i','n','d','x') #define AVIFOURCC_indx VLC_FOURCC('i','n','d','x')
#define AVIFOURCC_vprp VLC_FOURCC('v','p','r','p') #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_rec VLC_FOURCC('r','e','c',' ')
#define AVIFOURCC_auds VLC_FOURCC('a','u','d','s') #define AVIFOURCC_auds VLC_FOURCC('a','u','d','s')
......
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