avcodec/bmp_parser: simplify
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 13 Sep 2014 15:21:31 +0000 (17:21 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 13 Sep 2014 15:21:31 +0000 (17:21 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/bmp_parser.c

index 25fdd27..b5845ed 100644 (file)
@@ -46,6 +46,7 @@ static int bmp_parse(AVCodecParserContext *s, AVCodecContext *avctx,
 
     *poutbuf_size = 0;
 
+restart:
     if (bpc->pc.frame_start_found <= 2+4+4) {
         for (; i < buf_size; i++) {
             state = (state << 8) | buf[i];
@@ -64,11 +65,8 @@ static int bmp_parse(AVCodecParserContext *s, AVCodecContext *avctx,
                 if (bpc->fsize <= ihsize + 14)
                     bpc->fsize = INT_MAX/2;
                 bpc->pc.frame_start_found++;
-                if (bpc->fsize > buf_size - i + 17)
-                    bpc->remaining_size = bpc->fsize - buf_size + i - 17;
-                else
-                    next = bpc->fsize + i - 17;
-                break;
+                bpc->remaining_size = bpc->fsize + i - 17;
+                goto restart;
             } else if (bpc->pc.frame_start_found)
                 bpc->pc.frame_start_found++;
         }