avcodec/bmp_parser: Fix frame_start_found in cross frame cases
authorMichael Niedermayer <michael@niedermayer.cc>
Mon, 6 Jun 2016 12:01:43 +0000 (14:01 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Mon, 6 Jun 2016 12:01:43 +0000 (14:01 +0200)
Fixes part of ticket 5598

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/bmp_parser.c

index b06e3e8..c9fe153 100644 (file)
@@ -91,7 +91,10 @@ flush:
     if (ff_combine_frame(&bpc->pc, next, &buf, &buf_size) < 0)
         return buf_size;
 
-    bpc->pc.frame_start_found = 0;
+    if (next != END_NOT_FOUND && next < 0)
+        bpc->pc.frame_start_found = FFMAX(bpc->pc.frame_start_found - i - 1, 0);
+    else
+        bpc->pc.frame_start_found = 0;
 
     *poutbuf      = buf;
     *poutbuf_size = buf_size;