Stop demuxing wtv on eof.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Thu, 2 Oct 2014 07:41:57 +0000 (09:41 +0200)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Thu, 2 Oct 2014 07:41:57 +0000 (09:41 +0200)
Fixes ticket #3991.
Fixes ticket #3995.
Fixes ticket #3997.

Reviewed-by: Peter Ross
Reviewed-by: Paul B Mahol
libavformat/wtvdec.c

index 4cb3295..9cedae1 100644 (file)
@@ -789,6 +789,8 @@ static int parse_chunks(AVFormatContext *s, int mode, int64_t seekts, int *len_p
         len = avio_rl32(pb);
         if (len < 32) {
             int ret;
+            if (avio_feof(pb))
+                return AVERROR_EOF;
             av_log(s, AV_LOG_WARNING, "encountered broken chunk\n");
             if ((ret = recover(wtv, avio_tell(pb) - 20)) < 0)
                 return ret;