diff options
author | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-02-12 08:27:49 +0000 |
---|---|---|
committer | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-02-12 08:27:49 +0000 |
commit | ccb2795a1c4fe12a18d665ca2d3fba87a01ccd29 (patch) | |
tree | d8bca853b134f9a25a32ee5678c46341475f3445 /libmpdemux | |
parent | 0e60037ce8dcf66517b2e86813733cd5938ef2b0 (diff) | |
download | mpv-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')
-rw-r--r-- | libmpdemux/demux_avi.c | 15 |
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; |