[FFmpeg-cvslog] avutil: change GET_UTF8 to not use av_log2()

Mans Rullgard git at videolan.org
Thu Nov 15 11:29:34 CET 2012


ffmpeg | branch: master | Mans Rullgard <mans at mansr.com> | Tue Nov 13 15:49:39 2012 +0000| [7ba0c1b390a6ea67ca5e9cbade3005285b51b70f] | committer: Mans Rullgard

avutil: change GET_UTF8 to not use av_log2()

This removes an inter-library dependency on ff_log2_tab causing
linking errors in some configurations.

Signed-off-by: Mans Rullgard <mans at mansr.com>

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

 libavutil/common.h |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/libavutil/common.h b/libavutil/common.h
index 3465863..cc4df16 100644
--- a/libavutil/common.h
+++ b/libavutil/common.h
@@ -252,16 +252,17 @@ static av_always_inline av_const int av_popcount64_c(uint64_t x)
 #define GET_UTF8(val, GET_BYTE, ERROR)\
     val= GET_BYTE;\
     {\
-        int ones= 7 - av_log2(val ^ 255);\
-        if(ones==1)\
+        uint32_t top = (val & 128) >> 1;\
+        if ((val & 0xc0) == 0x80)\
             ERROR\
-        val&= 127>>ones;\
-        while(--ones > 0){\
+        while (val & top) {\
             int tmp= GET_BYTE - 128;\
             if(tmp>>6)\
                 ERROR\
             val= (val<<6) + tmp;\
+            top <<= 5;\
         }\
+        val &= (top << 1) - 1;\
     }
 
 /**



More information about the ffmpeg-cvslog mailing list