[FFmpeg-cvslog] r16286 - trunk/libavcodec/h264_parser.c
michael
subversion
Tue Dec 23 14:20:46 CET 2008
Author: michael
Date: Tue Dec 23 03:34:58 2008
New Revision: 16286
Log:
Make h264 parser 50% faster.
Modified:
trunk/libavcodec/h264_parser.c
Modified: trunk/libavcodec/h264_parser.c
==============================================================================
--- trunk/libavcodec/h264_parser.c Tue Dec 23 02:11:56 2008 (r16285)
+++ trunk/libavcodec/h264_parser.c Tue Dec 23 03:34:58 2008 (r16286)
@@ -44,6 +44,15 @@ int ff_h264_find_frame_end(H264Context *
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;
More information about the ffmpeg-cvslog
mailing list