[FFmpeg-soc] [soc]: r820 - rv40/rv40.c

kostya subversion at mplayerhq.hu
Wed Aug 15 19:44:42 CEST 2007


Author: kostya
Date: Wed Aug 15 19:44:42 2007
New Revision: 820

Log:
Add more borders to the edge emulation check

Modified:
   rv40/rv40.c

Modified: rv40/rv40.c
==============================================================================
--- rv40/rv40.c	(original)
+++ rv40/rv40.c	Wed Aug 15 19:44:42 2007
@@ -882,13 +882,14 @@ static inline void rv40_mc(RV40DecContex
     srcY += src_y * s->linesize + src_x;
     srcU += uvsrc_y * s->uvlinesize + uvsrc_x;
     srcV += uvsrc_y * s->uvlinesize + uvsrc_x;
-    if(   (unsigned)src_x > s->h_edge_pos - (mx&3) - (width <<3)
-       || (unsigned)src_y > s->v_edge_pos - (my&3) - (height<<3)){
-        uint8_t *uvbuf= s->edge_emu_buffer + 19 * s->linesize;
+    if(   (unsigned)src_x > s->h_edge_pos - (mx&3) - (width <<3) - 2
+       || (unsigned)src_y > s->v_edge_pos - (my&3) - (height<<3) - 2){
+        uint8_t *uvbuf= s->edge_emu_buffer + 20 * s->linesize;
 
-        ff_emulated_edge_mc(s->edge_emu_buffer, srcY, s->linesize, (width<<3)+1, (height<<3)+1,
-                            src_x, src_y, s->h_edge_pos, s->v_edge_pos);
-        srcY = s->edge_emu_buffer;
+        srcY -= 2 + 2*s->linesize;
+        ff_emulated_edge_mc(s->edge_emu_buffer, srcY, s->linesize, (width<<3)+4, (height<<3)+4,
+                            src_x - 2, src_y - 2, s->h_edge_pos, s->v_edge_pos);
+        srcY = s->edge_emu_buffer + 2 + 2*s->linesize;
         ff_emulated_edge_mc(uvbuf     , srcU, s->uvlinesize, (width<<2)+1, (height<<2)+1,
                             uvsrc_x, uvsrc_y, s->h_edge_pos >> 1, s->v_edge_pos >> 1);
         ff_emulated_edge_mc(uvbuf + 16, srcV, s->uvlinesize, (width<<2)+1, (height<<2)+1,



More information about the FFmpeg-soc mailing list