]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/xbmenc: substitute end instead of recalculating end
authorJose Da Silva <digital@joescat.com>
Mon, 1 Feb 2021 03:50:49 +0000 (19:50 -0800)
committerPaul B Mahol <onemda@gmail.com>
Wed, 3 Feb 2021 15:03:15 +0000 (16:03 +0100)
Minor speed increase, end is calculated before entering parse_str_int(),
so let's take advantage of the value and avoid recalculating twice more.
This also allows parse_str_int() to work with file size larger than int.

Signed-off-by: Joe Da Silva <digital@joescat.com>
libavcodec/xbmdec.c

index d19bdaee23c701679f5938f48b31d037d54774e3..2ce70204cf46d9aade8ef3f61cabcb82e240a1f7 100644 (file)
@@ -37,10 +37,8 @@ static int convert(uint8_t x)
     return x;
 }
 
-static int parse_str_int(const uint8_t *p, int len, const uint8_t *key)
+static int parse_str_int(const uint8_t *p, const uint8_t *end, const uint8_t *key)
 {
-    const uint8_t *end = p + len;
-
     for(; p<end - strlen(key); p++) {
         if (!memcmp(p, key, strlen(key)))
             break;
@@ -72,8 +70,8 @@ static int xbm_decode_frame(AVCodecContext *avctx, void *data,
     avctx->pix_fmt = AV_PIX_FMT_MONOWHITE;
     end = avpkt->data + avpkt->size;
 
-    width  = parse_str_int(avpkt->data, avpkt->size, "_width");
-    height = parse_str_int(avpkt->data, avpkt->size, "_height");
+    width  = parse_str_int(avpkt->data, end, "_width");
+    height = parse_str_int(avpkt->data, end, "_height");
 
     if ((ret = ff_set_dimensions(avctx, width, height)) < 0)
         return ret;