|
|
|
@ -664,12 +664,12 @@ static inline void rv34_mc(RV34DecContext *r, const int block_type, |
|
|
|
|
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 - !!lx*2) > s->h_edge_pos - !!lx*2 - (width <<3) - 3 |
|
|
|
|
|| (unsigned)(src_y - !!ly*2) > s->v_edge_pos - !!ly*2 - (height<<3) - 3){ |
|
|
|
|
uint8_t *uvbuf= s->edge_emu_buffer + 20 * s->linesize; |
|
|
|
|
if( (unsigned)(src_x - !!lx*2) > s->h_edge_pos - !!lx*2 - (width <<3) - 4 |
|
|
|
|
|| (unsigned)(src_y - !!ly*2) > s->v_edge_pos - !!ly*2 - (height<<3) - 4){ |
|
|
|
|
uint8_t *uvbuf= s->edge_emu_buffer + 22 * s->linesize; |
|
|
|
|
|
|
|
|
|
srcY -= 2 + 2*s->linesize; |
|
|
|
|
ff_emulated_edge_mc(s->edge_emu_buffer, srcY, s->linesize, (width<<3)+4, (height<<3)+4, |
|
|
|
|
ff_emulated_edge_mc(s->edge_emu_buffer, srcY, s->linesize, (width<<3)+6, (height<<3)+6, |
|
|
|
|
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, |
|
|
|
|