[FFmpeg-cvslog] avcodec/bmp_parser: delay frame end detection to the next header or EOF

Michael Niedermayer git at videolan.org
Sat Sep 13 17:58:44 CEST 2014


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sat Sep 13 17:46:18 2014 +0200| [ceb2fe027fec2bf8f1847d8a9676630583031e65] | committer: Michael Niedermayer

avcodec/bmp_parser: delay frame end detection to the next header or EOF

Fixes Ticket3687

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavcodec/bmp_parser.c |   12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/libavcodec/bmp_parser.c b/libavcodec/bmp_parser.c
index b5845ed..c9493dc 100644
--- a/libavcodec/bmp_parser.c
+++ b/libavcodec/bmp_parser.c
@@ -62,11 +62,13 @@ restart:
                     bpc->pc.frame_start_found = 0;
                     continue;
                 }
-                if (bpc->fsize <= ihsize + 14)
-                    bpc->fsize = INT_MAX/2;
                 bpc->pc.frame_start_found++;
                 bpc->remaining_size = bpc->fsize + i - 17;
-                goto restart;
+
+                if (bpc->pc.index + i > 17) {
+                    next = i - 17;
+                } else
+                    goto restart;
             } else if (bpc->pc.frame_start_found)
                 bpc->pc.frame_start_found++;
         }
@@ -77,7 +79,9 @@ restart:
             bpc->remaining_size -= i;
             if (bpc->remaining_size)
                 goto flush;
-            next = i;
+
+            bpc->pc.frame_start_found = 0;
+            goto restart;
         }
     }
 



More information about the ffmpeg-cvslog mailing list