[FFmpeg-cvslog] r19068 - trunk/libavcodec/lcldec.c

reimar subversion
Sun May 31 20:17:33 CEST 2009


Author: reimar
Date: Sun May 31 20:17:33 2009
New Revision: 19068

Log:
mszh decompression: add a special case for an all-0 mask, i.e. 32 uncompressed
bytes in a row.
About 15% faster mszh_decomp on an Atom N270 for
http://samples.mplayerhq.hu/V-codecs/mszh-zlib/avimzsh_sample.avi

Modified:
   trunk/libavcodec/lcldec.c

Modified: trunk/libavcodec/lcldec.c
==============================================================================
--- trunk/libavcodec/lcldec.c	Sun May 31 19:44:35 2009	(r19067)
+++ trunk/libavcodec/lcldec.c	Sun May 31 20:17:33 2009	(r19068)
@@ -102,6 +102,13 @@ static unsigned int mszh_decomp(const un
         maskbit >>= 1;
         if (!maskbit) {
             mask = *srcptr++;
+            while (!mask) {
+                if (destptr_end - destptr < 32 || srcptr_end - srcptr < 32) break;
+                memcpy(destptr, srcptr, 32);
+                destptr += 32;
+                srcptr += 32;
+                mask = *srcptr++;
+            }
             maskbit = 0x80;
         }
     }



More information about the ffmpeg-cvslog mailing list