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
386 memcpy(P, s->stream_ptr, 4);386 memcpy(P, s->stream_ptr, 4);
387 s->stream_ptr += 4;387 s->stream_ptr += 4;
388 388
389 if ((P[0] <= P[1]) && (P[2] <= P[3])) {389 if (P[0] <= P[1]) {
390 if (P[2] <= P[3]) {
390 391
391 /* 1 of 4 colors for each pixel, need 16 more bytes */392 /* 1 of 4 colors for each pixel, need 16 more bytes */
392 CHECK_STREAM_PTR(16);393 CHECK_STREAM_PTR(16);
@@ -400,7 +401,7 @@ static int ipvideo_decode_block_opcode_0x9(IpvideoContext *s) · 7 unmodified lines
400 s->pixel_ptr += s->line_inc;401 s->pixel_ptr += s->line_inc;
401 }402 }
402 403
403 } else if ((P[0] <= P[1]) && (P[2] > P[3])) {404 } else {
404 uint32_t flags;405 uint32_t flags;
405 406
406 /* 1 of 4 colors for each 2x2 block, need 4 more bytes */407 /* 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
418 s->pixel_ptr += s->stride * 2;419 s->pixel_ptr += s->stride * 2;
419 }420 }
420 421
421 } else if ((P[0] > P[1]) && (P[2] <= P[3])) {422 }
423 } else {
424 if (P[2] <= P[3]) {
422 uint64_t flags;425 uint64_t flags;
423 426
424 /* 1 of 4 colors for each 2x1 block, need 8 more bytes */427 /* 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
432 }435 }
433 s->pixel_ptr += s->stride;436 s->pixel_ptr += s->stride;
434 }437 }
435 438 } else {
436 } else {
437 uint64_t flags;439 uint64_t flags;
438 440
439 /* 1 of 4 colors for each 1x2 block, need 8 more bytes */441 /* 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
447 }449 }
448 s->pixel_ptr += s->stride * 2;450 s->pixel_ptr += s->stride * 2;
449 }451 }
452 }
450 }453 }
451 454
452 /* report success */455 /* 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