[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