[FFmpeg-cvslog] Slightly optimize base64 encode.

Reimar Döffinger git at videolan.org
Fri Jan 20 23:29:12 CET 2012


ffmpeg | branch: master | Reimar Döffinger <Reimar.Doeffinger at gmx.de> | Fri Jan 20 22:16:30 2012 +0100| [d60d718c49133544bb6e11d073ca48a5e22b0eb6] | committer: Reimar Döffinger

Slightly optimize base64 encode.

Move handling of last byte outside of innermost loop.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger at gmx.de>

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

 libavutil/base64.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/libavutil/base64.c b/libavutil/base64.c
index 5a7ab4c..ef9bfc9 100644
--- a/libavutil/base64.c
+++ b/libavutil/base64.c
@@ -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';



More information about the ffmpeg-cvslog mailing list