[FFmpeg-cvslog] lavf/matroskadec: drop indexes that appear broken

Rodger Combs git at videolan.org
Fri Oct 9 05:12:45 CEST 2015


ffmpeg | branch: master | Rodger Combs <rodger.combs at gmail.com> | Thu Oct  8 15:34:59 2015 -0500| [4f7d9b77061207142f93bd8c5c417ba189c25bd1] | committer: Michael Niedermayer

lavf/matroskadec: drop indexes that appear broken

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4f7d9b77061207142f93bd8c5c417ba189c25bd1
---

 libavformat/matroskadec.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 9db2b59..02cc6a5 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1521,10 +1521,11 @@ static void matroska_add_index_entries(MatroskaDemuxContext *matroska)
 
     index_list = &matroska->index;
     index      = index_list->elem;
-    if (index_list->nb_elem &&
-        index[0].time > 1E14 / matroska->time_scale) {
-        av_log(matroska->ctx, AV_LOG_WARNING, "Working around broken index.\n");
-        index_scale = matroska->time_scale;
+    if (index_list->nb_elem < 2)
+        return;
+    if (index[1].time > 1E14 / matroska->time_scale) {
+        av_log(matroska->ctx, AV_LOG_WARNING, "Dropping apparently-broken index.\n");
+        return;
     }
     for (i = 0; i < index_list->nb_elem; i++) {
         EbmlList *pos_list    = &index[i].pos;



More information about the ffmpeg-cvslog mailing list