diff options
author | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2009-03-31 13:30:42 +0000 |
---|---|---|
committer | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2009-03-31 13:30:42 +0000 |
commit | 0312b77ccdef432780f67dbf186150abdac287bf (patch) | |
tree | ec65f303618010412da54f067eece618ac6500a3 /libavcodec/interplayvideo.c | |
parent | 51e350284d800911ccefd1cc061d6211d0960766 (diff) | |
download | ffmpeg-0312b77ccdef432780f67dbf186150abdac287bf.tar.gz |
Slightly simplify part of ipvideo_decode_block_opcode_0x8
Originally committed as revision 18264 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/interplayvideo.c')
-rw-r--r-- | libavcodec/interplayvideo.c | 24 |
1 files 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; } |