changeset 60:bc66b55033ac libavutil

moving utf8 reading function to libavutil
author michael
date Fri, 07 Jul 2006 22:43:32 +0000
parents f40e091f7716
children f85d07038450
files common.h
diffstat 1 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/common.h	Wed Jul 05 22:57:47 2006 +0000
+++ b/common.h	Fri Jul 07 22:43:32 2006 +0000
@@ -503,6 +503,20 @@
             level= (level^mask)-mask;
 #endif
 
+#define GET_UTF8(val, GET_BYTE, ERROR)\
+    val= GET_BYTE;\
+    {\
+        int ones= 7 - av_log2(val ^ 255);\
+        if(ones==1)\
+            ERROR\
+        val&= 127>>ones;\
+        while(--ones > 0){\
+            int tmp= GET_BYTE - 128;\
+            if(tmp>>6)\
+                ERROR\
+            val= (val<<6) + tmp;\
+        }\
+    }
 
 #if __CPU__ >= 686 && !defined(RUNTIME_CPUDETECT)
 #define COPY3_IF_LT(x,y,a,b,c,d)\