From 0312b77ccdef432780f67dbf186150abdac287bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reimar=20D=C3=B6ffinger?= Date: Tue, 31 Mar 2009 13:30:42 +0000 Subject: [PATCH] Slightly simplify part of ipvideo_decode_block_opcode_0x8 Originally committed as revision 18264 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/interplayvideo.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/libavcodec/interplayvideo.c b/libavcodec/interplayvideo.c index fd0e706e5e..1dc5242a22 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; }