Slightly optimize base64 encode.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Fri, 20 Jan 2012 21:16:30 +0000 (22:16 +0100)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Fri, 20 Jan 2012 22:28:31 +0000 (23:28 +0100)
Move handling of last byte outside of innermost loop.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
libavutil/base64.c

index 5a7ab4c..ef9bfc9 100644 (file)
@@ -93,8 +93,10 @@ char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size)
         do {
             *dst++ = b64[(i_bits << 6 >> i_shift) & 0x3f];
             i_shift -= 6;
-        } while (i_shift > 6 || (bytes_remaining == 0 && i_shift > 0));
+        } while (i_shift > 6);
     }
+    if (i_shift > 0)
+        *dst++ = b64[(i_bits << 6 >> i_shift) & 0x3f];
     while ((dst - ret) & 3)
         *dst++ = '=';
     *dst = '\0';