]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Slightly simplify part of ipvideo_decode_block_opcode_0x8
authorreimar <reimar@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Tue, 31 Mar 2009 13:30:42 +0000 (13:30 +0000)
committerreimar <reimar@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Tue, 31 Mar 2009 13:30:42 +0000 (13:30 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18264 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/interplayvideo.c

index fd0e706e5e078450ba96f331c9ee2b83729d6ef9..1dc5242a222c7a4335b8b0b224e529f810fe09a9 100644 (file)
@@ -306,14 +306,15 @@ static int ipvideo_decode_block_opcode_0x8(IpvideoContext *s)
 
         /* need 10 more bytes */
         CHECK_STREAM_PTR(10);
-        B[0] = *s->stream_ptr++;  B[1] = *s->stream_ptr++;
-        B[2] = *s->stream_ptr++;  B[3] = *s->stream_ptr++;
-        P[2] = *s->stream_ptr++;  P[3] = *s->stream_ptr++;
-        B[4] = *s->stream_ptr++;  B[5] = *s->stream_ptr++;
-        B[6] = *s->stream_ptr++;  B[7] = *s->stream_ptr++;
 
         if (P[2] <= P[3]) {
 
+            B[0] = *s->stream_ptr++;  B[1] = *s->stream_ptr++;
+            B[2] = *s->stream_ptr++;  B[3] = *s->stream_ptr++;
+            P[2] = *s->stream_ptr++;  P[3] = *s->stream_ptr++;
+            B[4] = *s->stream_ptr++;  B[5] = *s->stream_ptr++;
+            B[6] = *s->stream_ptr++;  B[7] = *s->stream_ptr++;
+
             /* vertical split; left & right halves are 2-color encoded */
 
             for (y = 0; y < 8; y++) {
@@ -355,18 +356,15 @@ static int ipvideo_decode_block_opcode_0x8(IpvideoContext *s)
             for (y = 0; y < 8; y++) {
                 int bitmask;
 
-                flags = B[y];
-                if (y == 0) {
-                    P0 = P[0];
-                    P1 = P[1];
-                } else if (y == 4) {
-                    P0 = P[2];
-                    P1 = P[3];
+                if (y == 4) {
+                    P[0] = *s->stream_ptr++;
+                    P[1] = *s->stream_ptr++;
                 }
+                flags = *s->stream_ptr++;
 
                 for (bitmask = 0x01; bitmask <= 0x80; bitmask <<= 1) {
 
-                    *s->pixel_ptr++ = flags & bitmask ? P1 : P0;
+                    *s->pixel_ptr++ = P[!!(flags & bitmask)];
                 }
                 s->pixel_ptr += s->line_inc;
             }