| Index: source/libvpx/vp9/common/vp9_reconintra.c
|
| diff --git a/source/libvpx/vp9/common/vp9_reconintra.c b/source/libvpx/vp9/common/vp9_reconintra.c
|
| index 3312f2977308e3a3d2078286a0443c2b0e5a9db5..1e9acb8d5d3bd5da12af9a9321e2e5e3ae48045e 100644
|
| --- a/source/libvpx/vp9/common/vp9_reconintra.c
|
| +++ b/source/libvpx/vp9/common/vp9_reconintra.c
|
| @@ -464,15 +464,17 @@ void vp9_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride,
|
| static INLINE void d45_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
|
| const uint8_t *above, const uint8_t *left) {
|
| const uint8_t above_right = above[bs - 1];
|
| + const uint8_t *const dst_row0 = dst;
|
| int x, size;
|
| - uint8_t avg[31]; // TODO(jzern): this could be block size specific
|
| (void)left;
|
|
|
| for (x = 0; x < bs - 1; ++x) {
|
| - avg[x] = AVG3(above[x], above[x + 1], above[x + 2]);
|
| + dst[x] = AVG3(above[x], above[x + 1], above[x + 2]);
|
| }
|
| - for (x = 0, size = bs - 1; x < bs; ++x, --size) {
|
| - memcpy(dst, avg + x, size);
|
| + dst[bs - 1] = above_right;
|
| + dst += stride;
|
| + for (x = 1, size = bs - 2; x < bs; ++x, --size) {
|
| + memcpy(dst, dst_row0 + x, size);
|
| memset(dst + size, above_right, x + 1);
|
| dst += stride;
|
| }
|
| @@ -531,8 +533,8 @@ static INLINE void d117_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
|
| }
|
| intra_pred_no_4x4(d117)
|
|
|
| -void vp9_d135_predictor_4x4(uint8_t *dst, ptrdiff_t stride,
|
| - const uint8_t *above, const uint8_t *left) {
|
| +void vp9_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride,
|
| + const uint8_t *above, const uint8_t *left) {
|
| const int I = left[0];
|
| const int J = left[1];
|
| const int K = left[2];
|
|
|