Use bytestream_get_le16 to simplify offset/count calculation for mszh decompression.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 31 May 2009 10:35:39 +0000 (10:35 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 31 May 2009 10:35:39 +0000 (10:35 +0000)
Originally committed as revision 19051 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/lcldec.c

index 6bd4556..772cc95 100644 (file)
@@ -43,6 +43,7 @@
 
 #include "avcodec.h"
 #include "get_bits.h"
+#include "bytestream.h"
 #include "lcl.h"
 
 #if CONFIG_ZLIB_DECODER
@@ -96,10 +97,8 @@ static unsigned int mszh_decomp(unsigned char * srcptr, int srclen, unsigned cha
             destptr += 4;
             srcptr += 4;
         } else {
-            ofs = *srcptr++;
-            cnt = *srcptr++;
-            ofs += cnt * 256;
-            cnt = (cnt >> 3) + 1;
+            ofs = bytestream_get_le16(&srcptr);
+            cnt = (ofs >> 11) + 1;
             ofs &= 0x7ff;
             cnt *= 4;
             if (destptr_end - destptr < cnt) {