From a89f4ca005efa5ee82089583c7b8bc00bcee816a Mon Sep 17 00:00:00 2001
From: David Conrad <davedc@kozue.local>
Date: Sat, 19 Feb 2011 01:41:51 -0800
Subject: [PATCH] Fix VP3 edge emulation

With negative stride, the start of the edge_emu buffer should be pointing to
the last line, not the end of the buffer.
With positive stride, pointing to the end of the buffer was completely wrong.
---
 libavcodec/vp3.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index 97051f7065f..3d4bfb4d91e 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -1459,8 +1459,7 @@ static void render_slice(Vp3DecodeContext *s, int slice)
 
                         if(src_x<0 || src_y<0 || src_x + 9 >= plane_width || src_y + 9 >= plane_height){
                             uint8_t *temp= s->edge_emu_buffer;
-                            if(stride<0) temp -= 9*stride;
-                            else temp += 9*stride;
+                            if(stride<0) temp -= 8*stride;
 
                             s->dsp.emulated_edge_mc(temp, motion_source, stride, 9, 9, src_x, src_y, plane_width, plane_height);
                             motion_source= temp;
-- 
GitLab