Commit 104d0a3b authored by michael's avatar michael

Make h264 parser 50% faster.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@16286 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 10673806
...@@ -44,6 +44,15 @@ int ff_h264_find_frame_end(H264Context *h, const uint8_t *buf, int buf_size) ...@@ -44,6 +44,15 @@ int ff_h264_find_frame_end(H264Context *h, const uint8_t *buf, int buf_size)
for(i=0; i<buf_size; i++){ for(i=0; i<buf_size; i++){
if(state==7){ if(state==7){
#ifdef HAVE_FAST_UNALIGNED
# ifdef HAVE_FAST_64BIT
while(i<buf_size && !((~*(uint64_t*)(buf+i) & (*(uint64_t*)(buf+i) - 0x0101010101010101ULL)) & 0x8080808080808080ULL))
i+=8;
# else
while(i<buf_size && !((~*(uint32_t*)(buf+i) & (*(uint32_t*)(buf+i) - 0x01010101U)) & 0x80808080U))
i+=4;
# endif
#endif
for(; i<buf_size; i++){ for(; i<buf_size; i++){
if(!buf[i]){ if(!buf[i]){
state=2; state=2;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment