moving utf8 reading function to libavutil
Originally committed as revision 5664 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
5da714699d
commit
9d82b0dda1
@ -85,53 +85,12 @@ static int blocksize_table[] = {
|
|||||||
256<<0, 256<<1, 256<<2, 256<<3, 256<<4, 256<<5, 256<<6, 256<<7
|
256<<0, 256<<1, 256<<2, 256<<3, 256<<4, 256<<5, 256<<6, 256<<7
|
||||||
};
|
};
|
||||||
|
|
||||||
static int64_t get_utf8(GetBitContext *gb)
|
static int64_t get_utf8(GetBitContext *gb){
|
||||||
{
|
int64_t val;
|
||||||
uint64_t val;
|
GET_UTF8(val, get_bits(gb, 8), return -1;)
|
||||||
int ones=0, bytes;
|
|
||||||
|
|
||||||
while(get_bits1(gb))
|
|
||||||
ones++;
|
|
||||||
|
|
||||||
if (ones==0) bytes=0;
|
|
||||||
else if(ones==1) return -1;
|
|
||||||
else bytes= ones - 1;
|
|
||||||
|
|
||||||
val= get_bits(gb, 7-ones);
|
|
||||||
while(bytes--){
|
|
||||||
const int tmp = get_bits(gb, 8);
|
|
||||||
|
|
||||||
if((tmp>>6) != 2)
|
|
||||||
return -1;
|
|
||||||
val<<=6;
|
|
||||||
val|= tmp&0x3F;
|
|
||||||
}
|
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static int skip_utf8(GetBitContext *gb)
|
|
||||||
{
|
|
||||||
int ones=0, bytes;
|
|
||||||
|
|
||||||
while(get_bits1(gb))
|
|
||||||
ones++;
|
|
||||||
|
|
||||||
if (ones==0) bytes=0;
|
|
||||||
else if(ones==1) return -1;
|
|
||||||
else bytes= ones - 1;
|
|
||||||
|
|
||||||
skip_bits(gb, 7-ones);
|
|
||||||
while(bytes--){
|
|
||||||
const int tmp = get_bits(gb, 8);
|
|
||||||
|
|
||||||
if((tmp>>6) != 2)
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void metadata_streaminfo(FLACContext *s);
|
static void metadata_streaminfo(FLACContext *s);
|
||||||
static void dump_headers(FLACContext *s);
|
static void dump_headers(FLACContext *s);
|
||||||
|
|
||||||
|
@ -503,6 +503,20 @@ static inline int ff_get_fourcc(const char *s){
|
|||||||
level= (level^mask)-mask;
|
level= (level^mask)-mask;
|
||||||
#endif
|
#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)
|
#if __CPU__ >= 686 && !defined(RUNTIME_CPUDETECT)
|
||||||
#define COPY3_IF_LT(x,y,a,b,c,d)\
|
#define COPY3_IF_LT(x,y,a,b,c,d)\
|
||||||
|
Loading…
x
Reference in New Issue
Block a user