diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c index a14e73160a..44cac7dc88 100644 --- a/libavcodec/vp8.c +++ b/libavcodec/vp8.c @@ -882,16 +882,17 @@ void xchg_mb_border(uint8_t *top_border, uint8_t *src_y, uint8_t *src_cb, uint8_ src_cb -= uvlinesize; src_cr -= uvlinesize; -#define XCHG(a,b,xchg)\ +#define XCHG(a,b,xchg) do {\ if (xchg) AV_SWAP64(b,a);\ -else AV_COPY64(b,a); +else AV_COPY64(b,a);\ +} while (0) XCHG(top_border_m1+8, src_y-8, xchg); XCHG(top_border, src_y, xchg); XCHG(top_border+8, src_y+8, 1); - if (mb_x < mb_width-1) { + if (mb_x < mb_width-1) XCHG(top_border+32, src_y+16, 1); - } + // only copy chroma for normal loop filter // or to initialize the top row to 127 if (!simple || !mb_y) {