Mercurial > libavcodec.hg
comparison h264_parser.c @ 8442:60be1c7d8345 libavcodec
Make h264 parser 50% faster.
author | michael |
---|---|
date | Tue, 23 Dec 2008 02:34:58 +0000 |
parents | a38b31a2ac52 |
children | 7c82ed8d4824 |
comparison
equal
deleted
inserted
replaced
8441:f97c423dcb7f | 8442:60be1c7d8345 |
---|---|
42 if(state>13) | 42 if(state>13) |
43 state= 7; | 43 state= 7; |
44 | 44 |
45 for(i=0; i<buf_size; i++){ | 45 for(i=0; i<buf_size; i++){ |
46 if(state==7){ | 46 if(state==7){ |
47 #ifdef HAVE_FAST_UNALIGNED | |
48 # ifdef HAVE_FAST_64BIT | |
49 while(i<buf_size && !((~*(uint64_t*)(buf+i) & (*(uint64_t*)(buf+i) - 0x0101010101010101ULL)) & 0x8080808080808080ULL)) | |
50 i+=8; | |
51 # else | |
52 while(i<buf_size && !((~*(uint32_t*)(buf+i) & (*(uint32_t*)(buf+i) - 0x01010101U)) & 0x80808080U)) | |
53 i+=4; | |
54 # endif | |
55 #endif | |
47 for(; i<buf_size; i++){ | 56 for(; i<buf_size; i++){ |
48 if(!buf[i]){ | 57 if(!buf[i]){ |
49 state=2; | 58 state=2; |
50 break; | 59 break; |
51 } | 60 } |