summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_avi.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-12 08:27:49 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-12 08:27:49 +0000
commitccb2795a1c4fe12a18d665ca2d3fba87a01ccd29 (patch)
treed8bca853b134f9a25a32ee5678c46341475f3445 /libmpdemux/demux_avi.c
parent0e60037ce8dcf66517b2e86813733cd5938ef2b0 (diff)
downloadmpv-ccb2795a1c4fe12a18d665ca2d3fba87a01ccd29.tar.bz2
mpv-ccb2795a1c4fe12a18d665ca2d3fba87a01ccd29.tar.xz
ehh. forgot to commit this one...
- workaround for files with bad index (first chunk absolute, other relative offsets) -> fixes many 'no video stream found' bugreports git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4666 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_avi.c')
-rw-r--r--libmpdemux/demux_avi.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/libmpdemux/demux_avi.c b/libmpdemux/demux_avi.c
index e812d0bcd7..9c2d6e88f4 100644
--- a/libmpdemux/demux_avi.c
+++ b/libmpdemux/demux_avi.c
@@ -417,13 +417,24 @@ demuxer_t* demux_open_avi(demuxer_t* demuxer){
priv->idx_pos=0;
priv->idx_pos_a=0;
priv->idx_pos_v=0;
- if(priv->idx_size>0){
+ if(priv->idx_size>1){
// decide index format:
+#if 1
+ if(((AVIINDEXENTRY *)priv->idx)[0].dwChunkOffset<demuxer->movi_start ||
+ ((AVIINDEXENTRY *)priv->idx)[1].dwChunkOffset<demuxer->movi_start)
+ priv->idx_offset=demuxer->movi_start-4;
+ else
+ priv->idx_offset=0;
+#else
if(((AVIINDEXENTRY *)priv->idx)[0].dwChunkOffset<demuxer->movi_start)
priv->idx_offset=demuxer->movi_start-4;
else
priv->idx_offset=0;
- mp_msg(MSGT_DEMUX,MSGL_V,"AVI index offset: %d\n",priv->idx_offset);
+#endif
+ mp_msg(MSGT_DEMUX,MSGL_V,"AVI index offset: 0x%X (movi=0x%X idx0=0x%X idx1=0x%X)\n",
+ (int)priv->idx_offset,(int)demuxer->movi_start,
+ (int)((AVIINDEXENTRY *)priv->idx)[0].dwChunkOffset,
+ (int)((AVIINDEXENTRY *)priv->idx)[1].dwChunkOffset);
}
// demuxer->endpos=avi_header.movi_end;