Slightly simplify detection of end of compressed data in xan_unpack
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 5 Sep 2009 19:14:44 +0000 (19:14 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 5 Sep 2009 19:14:44 +0000 (19:14 +0000)
Originally committed as revision 19772 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/xan.c

index 91c22c3..c2d4007 100644 (file)
@@ -156,12 +156,8 @@ static void xan_unpack(unsigned char *dest, const unsigned char *src, int dest_l
             av_memcpy_backptr(dest, back, size2);
             dest += size2;
         } else {
             av_memcpy_backptr(dest, back, size2);
             dest += size2;
         } else {
-            int finish;
-            size = ((opcode & 0x1f) << 2) + 4;
-
-            finish = size > 0x70;
-            if (finish)
-                size = opcode & 3;
+            int finish = opcode >= 0xfc;
+            size = finish ? opcode & 3 : ((opcode & 0x1f) << 2) + 4;
 
             memcpy(dest, src, size);  dest += size;  src += size;
             if (finish)
 
             memcpy(dest, src, size);  dest += size;  src += size;
             if (finish)