#endif
#include <vlc_common.h>
-#include <vlc_demux.h>
+#include <vlc_demux.h> /* stream_*, *_ES */
#include <vlc_codecs.h> /* VLC_BITMAPINFOHEADER */
#include "libavi.h"
#ifndef NDEBUG
-#define AVI_DEBUG 1
+# define AVI_DEBUG 1
#endif
#define __EVEN( x ) (((x) + 1) & ~1)
const uint8_t *p_peek;
bool b_seekable;
- if( p_container->common.i_chunk_size > 0 && p_container->common.i_chunk_size < 8 )
+ if( p_container->common.i_chunk_size > 0 && p_container->common.i_chunk_size < 4 )
{
/* empty box */
msg_Warn( (vlc_object_t*)s, "empty list chunk" );
p_chk->strf.vids.p_bih->biBitCount );
#endif
break;
+ case AVIFOURCC_iavs:
+ case AVIFOURCC_ivas:
+ p_chk->strf.common.i_cat = UNKNOWN_ES;
+ break;
+ case( AVIFOURCC_txts ):
+ p_chk->strf.common.i_cat = SPU_ES;
+ break;
default:
msg_Warn( (vlc_object_t*)s, "unknown stream type: %4.4s",
(char*)&p_strh->strh.i_type );
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;
{ 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 },
return NULL;
}
-