ff_emulated_edge_mc(s->edge_emu_buffer, src, stride, w+1, h+1, src_x, src_y, h_edge_pos, v_edge_pos);
ff_emulated_edge_mc(s->edge_emu_buffer, src, s->linesize, w+1, (h+1)<<field_based, src_x, src_y<<field_based, h_edge_pos, s->v_edge_pos);
static inline int hpel_motion(MpegEncContext *s,                                   uint8_t *dest, uint8_t *src,                                   int src_x, int src_y,                                  int width, int height, int stride,                                  int h_edge_pos, int v_edge_pos,                                  int w, int h, op_pixels_func *pix_op,                                  int motion_x, int motion_y){    int dxy;    int emu=0;    dxy = ((motion_y & 1) << 1) | (motion_x & 1);    src_x += motion_x >> 1;    src_y += motion_y >> 1;                    /* WARNING: do no forget half pels */    src_x = clip(src_x, -16, width); //FIXME unneeded for emu?    if (src_x == width)        dxy &= ~1;    src_y = clip(src_y, -16, height);    if (src_y == height)        dxy &= ~2;    src += src_y * stride + src_x;    if(s->unrestricted_mv && (s->flags&CODEC_FLAG_EMU_EDGE)){        if(   (unsigned)src_x > h_edge_pos - (motion_x&1) - w           || (unsigned)src_y > v_edge_pos - (motion_y&1) - h){            ff_emulated_edge_mc(s->edge_emu_buffer, src, stride, w+1, h+1,                             src_x, src_y, h_edge_pos, v_edge_pos);            src= s->edge_emu_buffer;            emu=1;        }    }    pix_op[dxy](dest, src, stride, h);    return emu;}