projects
/
libav.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
abb27cf
)
Make h264 parser 50% faster.
author
Michael Niedermayer
<michaelni@gmx.at>
Tue, 23 Dec 2008 02:34:58 +0000
(
02:34
+0000)
committer
Michael Niedermayer
<michaelni@gmx.at>
Tue, 23 Dec 2008 02:34:58 +0000
(
02:34
+0000)
Originally committed as revision 16286 to svn://svn.ffmpeg.org/ffmpeg/trunk
libavcodec/h264_parser.c
patch
|
blob
|
blame
|
history
diff --git
a/libavcodec/h264_parser.c
b/libavcodec/h264_parser.c
index
e0973bf
..
62cd948
100644
(file)
--- a/
libavcodec/h264_parser.c
+++ b/
libavcodec/h264_parser.c
@@
-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++){
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++){
if(!buf[i]){
state=2;