[SCM] libav/experimental: Slightly simplify part of ipvideo_decode_block_opcode_0x8

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:42:57 UTC 2013


The following commit has been merged in the experimental branch:
commit 0312b77ccdef432780f67dbf186150abdac287bf
Author: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
Date:   Tue Mar 31 13:30:42 2009 +0000

    Slightly simplify part of ipvideo_decode_block_opcode_0x8
    
    Originally committed as revision 18264 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/interplayvideo.c b/libavcodec/interplayvideo.c
index fd0e706..1dc5242 100644
--- a/libavcodec/interplayvideo.c
+++ b/libavcodec/interplayvideo.c
@@ -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;
             }

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list