comparison rv34.c @ 8179:883feb4edb65 libavcodec

Use wider margins for edge emulation in RV30/40
author kostya
date Thu, 20 Nov 2008 14:03:35 +0000
parents e2241dd85c65
children f4a291734ad7
comparison
equal deleted inserted replaced
8178:7180ba559f56 8179:883feb4edb65
662 uvsrc_x = s->mb_x * 8 + (xoff >> 1) + umx; 662 uvsrc_x = s->mb_x * 8 + (xoff >> 1) + umx;
663 uvsrc_y = s->mb_y * 8 + (yoff >> 1) + umy; 663 uvsrc_y = s->mb_y * 8 + (yoff >> 1) + umy;
664 srcY += src_y * s->linesize + src_x; 664 srcY += src_y * s->linesize + src_x;
665 srcU += uvsrc_y * s->uvlinesize + uvsrc_x; 665 srcU += uvsrc_y * s->uvlinesize + uvsrc_x;
666 srcV += uvsrc_y * s->uvlinesize + uvsrc_x; 666 srcV += uvsrc_y * s->uvlinesize + uvsrc_x;
667 if( (unsigned)(src_x - !!lx*2) > s->h_edge_pos - !!lx*2 - (width <<3) - 3 667 if( (unsigned)(src_x - !!lx*2) > s->h_edge_pos - !!lx*2 - (width <<3) - 4
668 || (unsigned)(src_y - !!ly*2) > s->v_edge_pos - !!ly*2 - (height<<3) - 3){ 668 || (unsigned)(src_y - !!ly*2) > s->v_edge_pos - !!ly*2 - (height<<3) - 4){
669 uint8_t *uvbuf= s->edge_emu_buffer + 20 * s->linesize; 669 uint8_t *uvbuf= s->edge_emu_buffer + 22 * s->linesize;
670 670
671 srcY -= 2 + 2*s->linesize; 671 srcY -= 2 + 2*s->linesize;
672 ff_emulated_edge_mc(s->edge_emu_buffer, srcY, s->linesize, (width<<3)+4, (height<<3)+4, 672 ff_emulated_edge_mc(s->edge_emu_buffer, srcY, s->linesize, (width<<3)+6, (height<<3)+6,
673 src_x - 2, src_y - 2, s->h_edge_pos, s->v_edge_pos); 673 src_x - 2, src_y - 2, s->h_edge_pos, s->v_edge_pos);
674 srcY = s->edge_emu_buffer + 2 + 2*s->linesize; 674 srcY = s->edge_emu_buffer + 2 + 2*s->linesize;
675 ff_emulated_edge_mc(uvbuf , srcU, s->uvlinesize, (width<<2)+1, (height<<2)+1, 675 ff_emulated_edge_mc(uvbuf , srcU, s->uvlinesize, (width<<2)+1, (height<<2)+1,
676 uvsrc_x, uvsrc_y, s->h_edge_pos >> 1, s->v_edge_pos >> 1); 676 uvsrc_x, uvsrc_y, s->h_edge_pos >> 1, s->v_edge_pos >> 1);
677 ff_emulated_edge_mc(uvbuf + 16, srcV, s->uvlinesize, (width<<2)+1, (height<<2)+1, 677 ff_emulated_edge_mc(uvbuf + 16, srcV, s->uvlinesize, (width<<2)+1, (height<<2)+1,