summaryrefslogtreecommitdiffstats
path: root/demux_avi.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-08-08 15:20:40 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-08-08 15:20:40 +0000
commitc5dbf8a807fff7639be97e9de2a45f7b3b8ba30e (patch)
tree50975e3dd260abdf3df3b2b2fd58da12691a6746 /demux_avi.c
parent2e588cdaded43e8c6055d71e4ba7dd3344b0df5b (diff)
downloadmpv-c5dbf8a807fff7639be97e9de2a45f7b3b8ba30e.tar.bz2
mpv-c5dbf8a807fff7639be97e9de2a45f7b3b8ba30e.tar.xz
changed chunkid/size check
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1465 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'demux_avi.c')
-rw-r--r--demux_avi.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/demux_avi.c b/demux_avi.c
index 70cbb5a961..36adfeec82 100644
--- a/demux_avi.c
+++ b/demux_avi.c
@@ -194,15 +194,17 @@ do{
if(stream_eof(demux->stream)) return 0; // EOF!
if(id!=idx->ckid){
- printf("ChunkID mismatch! raw=%.4s idx=%.4s \n",(char *)&id,(char *)&idx->ckid);
- continue;
+ if(verbose) printf("ChunkID mismatch! raw=%.4s idx=%.4s \n",(char *)&id,(char *)&idx->ckid);
+ id=idx->ckid;
+// continue;
}
len=stream_read_dword_le(demux->stream);
// if((len&(~1))!=(idx->dwChunkLength&(~1))){
// if((len)!=(idx->dwChunkLength)){
if((len!=idx->dwChunkLength)&&((len+1)!=idx->dwChunkLength)){
- printf("ChunkSize mismatch! raw=%d idx=%ld \n",len,idx->dwChunkLength);
- continue;
+ if(verbose) printf("ChunkSize mismatch! raw=%d idx=%ld \n",len,idx->dwChunkLength);
+ len=idx->dwChunkLength;
+// continue;
}
if(idx->dwFlags&AVIIF_KEYFRAME) flags=1;
} else {
@@ -282,15 +284,17 @@ do{
if(stream_eof(demux->stream)) return 0;
if(id!=idx->ckid){
- printf("ChunkID mismatch! raw=%.4s idx=%.4s \n",(char *)&id,(char *)&idx->ckid);
- continue;
+ if(verbose) printf("ChunkID mismatch! raw=%.4s idx=%.4s \n",(char *)&id,(char *)&idx->ckid);
+ id=idx->ckid;
+// continue;
}
len=stream_read_dword_le(demux->stream);
// if((len&(~1))!=(idx->dwChunkLength&(~1))){
// if((len)!=(idx->dwChunkLength)){
if((len!=idx->dwChunkLength)&&((len+1)!=idx->dwChunkLength)){
- printf("ChunkSize mismatch! raw=%d idx=%ld \n",len,idx->dwChunkLength);
- continue;
+ if(verbose) printf("ChunkSize mismatch! raw=%d idx=%ld \n",len,idx->dwChunkLength);
+ len=idx->dwChunkLength;
+// continue;
}
if(idx->dwFlags&AVIIF_KEYFRAME) flags=1;
} else return 0;