[FFmpeg-cvslog] Minor optimization of base64 decode.

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:02:32 2012 +0100| [686ba5f4eabf123e710d03ed0ee73e787a424408] | committer: Reimar Döffinger

Minor optimization of base64 decode.

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

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

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

diff --git a/libavutil/base64.c b/libavutil/base64.c
index 4ccc12e..6843a53 100644
--- a/libavutil/base64.c
+++ b/libavutil/base64.c
@@ -26,6 +26,7 @@
 
 #include "common.h"
 #include "base64.h"
+#include "avassert.h"
 
 /* ---------------- private code */
 static const uint8_t map2[] =
@@ -48,10 +49,10 @@ int av_base64_decode(uint8_t *out, const char *in, int out_size)
     uint8_t *dst = out;
 
     v = 0;
-    for (i = 0; in[i] && in[i] != '='; i++) {
+    for (i = 0; ; i++) {
         unsigned int index= in[i]-43;
         if (index>=FF_ARRAY_ELEMS(map2) || map2[index] == 0xff)
-            return -1;
+            return in[i] && in[i] != '=' ? -1 : dst - out;
         v = (v << 6) + map2[index];
         if (i & 3) {
             if (dst - out < out_size) {
@@ -60,7 +61,8 @@ int av_base64_decode(uint8_t *out, const char *in, int out_size)
         }
     }
 
-    return dst - out;
+    av_assert1(0);
+    return 0;
 }
 
 /*****************************************************************************



More information about the ffmpeg-cvslog mailing list