# HG changeset patch # User reimar # Date 1243793853 0 # Node ID 66922728d7f754e8d4327973b531e7b48ab34668 # Parent 05b6cba2c95bd1fd7cb509b790485485292c7a6c 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 diff -r 05b6cba2c95b -r 66922728d7f7 lcldec.c --- a/lcldec.c Sun May 31 17:44:35 2009 +0000 +++ b/lcldec.c Sun May 31 18:17:33 2009 +0000 @@ -102,6 +102,13 @@ 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; } }