| Index: source/row_common.cc
|
| diff --git a/source/row_common.cc b/source/row_common.cc
|
| index 60d5b8c534fad66b7e54ca427b430eb8b1e72c72..c820cdf1f87472169d634f90ae45bf8c384edc83 100644
|
| --- a/source/row_common.cc
|
| +++ b/source/row_common.cc
|
| @@ -2211,30 +2211,30 @@ static void HalfRow_16_C(const uint16* src_uv, int src_uv_stride,
|
| void InterpolateRow_C(uint8* dst_ptr, const uint8* src_ptr,
|
| ptrdiff_t src_stride,
|
| int width, int source_y_fraction) {
|
| - int y1_fraction = source_y_fraction >> 1;
|
| - int y0_fraction = 128 - y1_fraction;
|
| + int y1_fraction = source_y_fraction ;
|
| + int y0_fraction = 256 - y1_fraction;
|
| const uint8* src_ptr1 = src_ptr + src_stride;
|
| int x;
|
| if (y1_fraction == 0) {
|
| memcpy(dst_ptr, src_ptr, width);
|
| return;
|
| }
|
| - if (y1_fraction == 64) {
|
| + if (y1_fraction == 128) {
|
| HalfRow_C(src_ptr, (int)(src_stride), dst_ptr, width);
|
| return;
|
| }
|
| for (x = 0; x < width - 1; x += 2) {
|
| - dst_ptr[0] =
|
| - (src_ptr[0] * y0_fraction + src_ptr1[0] * y1_fraction + 64) >> 7;
|
| - dst_ptr[1] =
|
| - (src_ptr[1] * y0_fraction + src_ptr1[1] * y1_fraction + 64) >> 7;
|
| + dst_ptr[0] =
|
| + (src_ptr[0] * y0_fraction + src_ptr1[0] * y1_fraction + 128) >> 8;
|
| + dst_ptr[1] =
|
| + (src_ptr[1] * y0_fraction + src_ptr1[1] * y1_fraction + 128) >> 8;
|
| src_ptr += 2;
|
| src_ptr1 += 2;
|
| dst_ptr += 2;
|
| }
|
| if (width & 1) {
|
| - dst_ptr[0] =
|
| - (src_ptr[0] * y0_fraction + src_ptr1[0] * y1_fraction + 64) >> 7;
|
| + dst_ptr[0] =
|
| + (src_ptr[0] * y0_fraction + src_ptr1[0] * y1_fraction + 128) >> 8;
|
| }
|
| }
|
|
|
|
|