The old code is correct only when stride = 2*width. Patch by Ronaldo Moura <ronaldo d moura monity com br> Originally committed as revision 31142 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
Unified · Split
| @@ -479,9 +479,6 @@ DEFUN(uyvytoyv12, mL3, (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8 · 478 unmodified lines | ||
| 479 | 479 | |
| 480 | 480 | r1 = [fp + ARG_srcStride]; |
| 481 | 481 | r2 = r0 + r1; |
| 482 | − r1 += -8; // i0,i1 is pre read need to correct | |
| 483 | − m0 = r1; | |
| 484 | − | |
| 485 | 482 | i0 = r0; // uyvy_T even |
| 486 | 483 | i1 = r2; // uyvy_B odd |
| 487 | 484 | |
| @@ -494,6 +491,12 @@ DEFUN(uyvytoyv12, mL3, (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8 · 6 unmodified lines | ||
| 494 | 491 | p4 = p4 >> 1; |
| 495 | 492 | p5 = p5 >> 2; |
| 496 | 493 | |
| 494 | + r2 = r0 << 1; | |
| 495 | + r1 = r1 << 1; | |
| 496 | + r1 = r1 - r2; // srcStride + (srcStride - 2*width) | |
| 497 | + r1 += -8; // i0,i1 is pre read need to correct | |
| 498 | + m0 = r1; | |
| 499 | + | |
| 497 | 500 | r2 = [fp + ARG_chromStride]; |
| 498 | 501 | r0 = r0 >> 1; |
| 499 | 502 | r2 = r2 - r0; |
| @@ -549,8 +552,6 @@ DEFUN(yuyvtoyv12, mL3, (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8 · 49 unmodified lines | ||
| 549 | 552 | |
| 550 | 553 | r1 = [fp + ARG_srcStride]; |
| 551 | 554 | r2 = r0 + r1; |
| 552 | − r1 += -8; // i0,i1 is pre read need to correct | |
| 553 | − m0 = r1; | |
| 554 | 555 | |
| 555 | 556 | i0 = r0; // uyvy_T even |
| 556 | 557 | i1 = r2; // uyvy_B odd |
| @@ -564,6 +565,12 @@ DEFUN(yuyvtoyv12, mL3, (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8 · 7 unmodified lines | ||
| 564 | 565 | p4 = p4 >> 1; |
| 565 | 566 | p5 = p5 >> 2; |
| 566 | 567 | |
| 568 | + r2 = r0 << 1; | |
| 569 | + r1 = r1 << 1; | |
| 570 | + r1 = r1 - r2; // srcStride + (srcStride - 2*width) | |
| 571 | + r1 += -8; // i0,i1 is pre read need to correct | |
| 572 | + m0 = r1; | |
| 573 | + | |
| 567 | 574 | r2 = [fp + ARG_chromStride]; |
| 568 | 575 | r0 = r0 >> 1; |
| 569 | 576 | r2 = r2 - r0; |