History

Rearrange how the different cases are checked to reduce the number of comparisons and allow further simplifications.

Originally committed as revision 18268 to svn://svn.ffmpeg.org/ffmpeg/trunk

Reimar Döffinger committed 17 years ago

Commit 268a6181 parent 168fffd1 file · +8 −5Browse files

Unified · Split

libavcodec/interplayvideo.c+8−5
@@ -386,7 +386,8 @@ static int ipvideo_decode_block_opcode_0x9(IpvideoContext *s) · 385 unmodified lines
386386 memcpy(P, s->stream_ptr, 4);
387387 s->stream_ptr += 4;
388388
389− if ((P[0] <= P[1]) && (P[2] <= P[3])) {
389+ if (P[0] <= P[1]) {
390+ if (P[2] <= P[3]) {
390391
391392 /* 1 of 4 colors for each pixel, need 16 more bytes */
392393 CHECK_STREAM_PTR(16);
@@ -400,7 +401,7 @@ static int ipvideo_decode_block_opcode_0x9(IpvideoContext *s) · 7 unmodified lines
400401 s->pixel_ptr += s->line_inc;
401402 }
402403
403− } else if ((P[0] <= P[1]) && (P[2] > P[3])) {
404+ } else {
404405 uint32_t flags;
405406
406407 /* 1 of 4 colors for each 2x2 block, need 4 more bytes */
@@ -418,7 +419,9 @@ static int ipvideo_decode_block_opcode_0x9(IpvideoContext *s) · 11 unmodified lines
418419 s->pixel_ptr += s->stride * 2;
419420 }
420421
421− } else if ((P[0] > P[1]) && (P[2] <= P[3])) {
422+ }
423+ } else {
424+ if (P[2] <= P[3]) {
422425 uint64_t flags;
423426
424427 /* 1 of 4 colors for each 2x1 block, need 8 more bytes */
@@ -432,8 +435,7 @@ static int ipvideo_decode_block_opcode_0x9(IpvideoContext *s) · 7 unmodified lines
432435 }
433436 s->pixel_ptr += s->stride;
434437 }
435−
436− } else {
438+ } else {
437439 uint64_t flags;
438440
439441 /* 1 of 4 colors for each 1x2 block, need 8 more bytes */
@@ -447,6 +449,7 @@ static int ipvideo_decode_block_opcode_0x9(IpvideoContext *s) · 7 unmodified lines
447449 }
448450 s->pixel_ptr += s->stride * 2;
449451 }
452+ }
450453 }
451454
452455 /* report success */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t