From fbfccc0404e731defa881bb31f62ddf682c33de7 Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Thu, 20 May 2010 18:34:44 +0000
Subject: [PATCH] Disable non interleaved avi code when there is no index
 available. Fixes issue1956.

Originally committed as revision 23202 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavformat/avidec.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index e866a934805..485c4eb93ab 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -650,6 +650,16 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
         avi_load_index(s);
     avi->index_loaded = 1;
     avi->non_interleaved |= guess_ni_flag(s);
+    for(i=0; i<s->nb_streams; i++){
+        AVStream *st = s->streams[i];
+        if(st->nb_index_entries)
+            break;
+    }
+    if(i==s->nb_streams && avi->non_interleaved) {
+        av_log(s, AV_LOG_WARNING, "non-interleaved AVI without index, switching to interleaved\n");
+        avi->non_interleaved=0;
+    }
+
     if(avi->non_interleaved) {
         av_log(s, AV_LOG_INFO, "non-interleaved AVI\n");
         clean_index(s);
-- 
GitLab