39     for (j = 0; j < k; j++) {
 
   40         for (
i = 0; 
i < k; 
i++)
 
   41             srcY[
i] = ((srcY[
i] - 128) >> 1) + 128;
 
   47                                               int k, 
int uvlinesize)
 
   50     for (j = 0; j < k; j++) {
 
   51         for (
i = 0; 
i < k; 
i++) {
 
   52             srcU[
i] = ((srcU[
i] - 128) >> 1) + 128;
 
   53             srcV[
i] = ((srcV[
i] - 128) >> 1) + 128;
 
   61                                                 uint8_t *lut1, uint8_t *lut2,
 
   66     for (j = 0; j < k; j += 2) {
 
   67         for (
i = 0; 
i < k; 
i++)
 
   68             srcY[
i] = lut1[srcY[
i]];
 
   74         for (
i = 0; 
i < k; 
i++)
 
   75             srcY[
i] = lut2[srcY[
i]];
 
   81                                                   uint8_t *lut1, uint8_t *lut2,
 
   82                                                   int k, 
int uvlinesize)
 
   86     for (j = 0; j < k; j += 2) {
 
   87         for (
i = 0; 
i < k; 
i++) {
 
   88             srcU[
i] = lut1[srcU[
i]];
 
   89             srcV[
i] = lut1[srcV[
i]];
 
   97         for (
i = 0; 
i < k; 
i++) {
 
   98             srcU[
i] = lut2[srcU[
i]];
 
   99             srcV[
i] = lut2[srcV[
i]];
 
  106 static const uint8_t 
popcount4[16] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 };
 
  115     static const uint8_t index2[16] = { 0, 0, 0, 0x23, 0, 0x13, 0x03, 0, 0, 0x12, 0x02, 0, 0x01, 0, 0, 0 };
 
  121         *tx = 
median4(
s->mv[dir][0][0], 
s->mv[dir][1][0], 
s->mv[dir][2][0], 
s->mv[dir][3][0]);
 
  122         *ty = 
median4(
s->mv[dir][0][1], 
s->mv[dir][1][1], 
s->mv[dir][2][1], 
s->mv[dir][3][1]);
 
  125         *tx = 
mid_pred(
s->mv[dir][idx < 2][0], 
s->mv[dir][1 + (idx < 4)][0], 
s->mv[dir][2 + (idx < 8)][0]);
 
  126         *ty = 
mid_pred(
s->mv[dir][idx < 2][1], 
s->mv[dir][1 + (idx < 4)][1], 
s->mv[dir][2 + (idx < 8)][1]);
 
  129         *tx = 
mid_pred(
s->mv[dir][idx > 0xd][0], 
s->mv[dir][1 + (idx > 0xb)][0], 
s->mv[dir][2 + (idx > 0x7)][0]);
 
  130         *ty = 
mid_pred(
s->mv[dir][idx > 0xd][1], 
s->mv[dir][1 + (idx > 0xb)][1], 
s->mv[dir][2 + (idx > 0x7)][1]);
 
  133         *tx = (
s->mv[dir][index2[idx] >> 4][0] + 
s->mv[dir][index2[idx] & 0xf][0]) / 2;
 
  134         *ty = (
s->mv[dir][index2[idx] >> 4][1] + 
s->mv[dir][index2[idx] & 0xf][1]) / 2;
 
  143     int idx = !v->
mb_type[0][
s->block_index[0]] |
 
  144              (!v->
mb_type[0][
s->block_index[1]] << 1) |
 
  145              (!v->
mb_type[0][
s->block_index[2]] << 2) |
 
  146              (!v->
mb_type[0][
s->block_index[3]] << 3);
 
  147     static const uint8_t index2[16] = { 0, 0, 0, 0x01, 0, 0x02, 0x12, 0, 0, 0x03, 0x13, 0, 0x23, 0, 0, 0 };
 
  150     switch (valid_count) {
 
  152         *tx = 
median4(
s->mv[dir][0][0], 
s->mv[dir][1][0], 
s->mv[dir][2][0], 
s->mv[dir][3][0]);
 
  153         *ty = 
median4(
s->mv[dir][0][1], 
s->mv[dir][1][1], 
s->mv[dir][2][1], 
s->mv[dir][3][1]);
 
  156         *tx = 
mid_pred(
s->mv[dir][idx > 0xd][0], 
s->mv[dir][1 + (idx > 0xb)][0], 
s->mv[dir][2 + (idx > 0x7)][0]);
 
  157         *ty = 
mid_pred(
s->mv[dir][idx > 0xd][1], 
s->mv[dir][1 + (idx > 0xb)][1], 
s->mv[dir][2 + (idx > 0x7)][1]);
 
  160         *tx = (
s->mv[dir][index2[idx] >> 4][0] + 
s->mv[dir][index2[idx] & 0xf][0]) / 2;
 
  161         *ty = (
s->mv[dir][index2[idx] >> 4][1] + 
s->mv[dir][index2[idx] & 0xf][1]) / 2;
 
  176     uint8_t *srcY, *srcU, *srcV;
 
  177     int dxy, mx, my, uvmx, uvmy, src_x, src_y, uvsrc_x, uvsrc_y;
 
  180     uint8_t (*luty)[256], (*lutuv)[256];
 
  183     int linesize, uvlinesize;
 
  190     linesize = 
s->current_picture_ptr->f->linesize[0];
 
  191     uvlinesize = 
s->current_picture_ptr->f->linesize[1];
 
  193     mx = 
s->mv[dir][0][0];
 
  194     my = 
s->mv[dir][0][1];
 
  198         for (
i = 0; 
i < 4; 
i++) {
 
  199             s->current_picture.motion_val[1][
s->block_index[
i] + v->
blocks_off][0] = mx;
 
  200             s->current_picture.motion_val[1][
s->block_index[
i] + v->
blocks_off][1] = my;
 
  204     uvmx = (mx + ((mx & 3) == 3)) >> 1;
 
  205     uvmy = (my + ((my & 3) == 3)) >> 1;
 
  217         uvmx = uvmx + ((uvmx < 0) ? (uvmx & 1) : -(uvmx & 1));
 
  218         uvmy = uvmy + ((uvmy < 0) ? (uvmy & 1) : -(uvmy & 1));
 
  222             srcY = 
s->current_picture.f->data[0];
 
  223             srcU = 
s->current_picture.f->data[1];
 
  224             srcV = 
s->current_picture.f->data[2];
 
  230             srcY = 
s->last_picture.f->data[0];
 
  231             srcU = 
s->last_picture.f->data[1];
 
  232             srcV = 
s->last_picture.f->data[2];
 
  239         srcY = 
s->next_picture.f->data[0];
 
  240         srcU = 
s->next_picture.f->data[1];
 
  241         srcV = 
s->next_picture.f->data[2];
 
  248     if (!srcY || !srcU) {
 
  253     src_x   = 
s->mb_x * 16 + (mx   >> 2);
 
  254     src_y   = 
s->mb_y * 16 + (my   >> 2);
 
  255     uvsrc_x = 
s->mb_x *  8 + (uvmx >> 2);
 
  256     uvsrc_y = 
s->mb_y *  8 + (uvmy >> 2);
 
  259         src_x   = 
av_clip(  src_x, -16, 
s->mb_width  * 16);
 
  260         src_y   = 
av_clip(  src_y, -16, 
s->mb_height * 16);
 
  261         uvsrc_x = 
av_clip(uvsrc_x,  -8, 
s->mb_width  *  8);
 
  262         uvsrc_y = 
av_clip(uvsrc_y,  -8, 
s->mb_height *  8);
 
  264         src_x   = 
av_clip(  src_x, -17, 
s->avctx->coded_width);
 
  265         uvsrc_x = 
av_clip(uvsrc_x,  -8, 
s->avctx->coded_width  >> 1);
 
  267             src_y = 
av_clip(src_y, -18 + (src_y & 1), 
s->avctx->coded_height + (src_y & 1));
 
  268             uvsrc_y = 
av_clip(uvsrc_y, -8 + (uvsrc_y & 1), (
s->avctx->coded_height >> 1) + (uvsrc_y & 1));
 
  270             src_y = 
av_clip(src_y, -18, 
s->avctx->coded_height + 1);
 
  271             uvsrc_y = 
av_clip(uvsrc_y, -8, 
s->avctx->coded_height >> 1);
 
  275     srcY += src_y   * 
s->linesize   + src_x;
 
  276     srcU += uvsrc_y * 
s->uvlinesize + uvsrc_x;
 
  277     srcV += uvsrc_y * 
s->uvlinesize + uvsrc_x;
 
  287         srcU = 
s->sc.edge_emu_buffer + 18 * 
s->linesize;
 
  288         srcV = 
s->sc.edge_emu_buffer + 18 * 
s->linesize;
 
  292         || 
s->h_edge_pos < 22 || v_edge_pos < 22
 
  293         || (
unsigned)(src_x - 
s->mspel) > 
s->h_edge_pos - (mx&3) - 16 - 
s->mspel * 3
 
  294         || (
unsigned)(src_y - 1)        > v_edge_pos    - (my&3) - 16 - 3) {
 
  295         uint8_t *ubuf = 
s->sc.edge_emu_buffer + 19 * 
s->linesize;
 
  296         uint8_t *vbuf = ubuf + 9 * 
s->uvlinesize;
 
  297         const int k = 17 + 
s->mspel * 2;
 
  299         srcY -= 
s->mspel * (1 + 
s->linesize);
 
  301             s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer,
 
  312                 s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer + linesize,
 
  319                                          src_y - 
s->mspel + 1 >> 1,
 
  323             s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer,
 
  334         srcY = 
s->sc.edge_emu_buffer;
 
  336             s->vdsp.emulated_edge_mc(ubuf,
 
  346             s->vdsp.emulated_edge_mc(vbuf,
 
  357                 s->vdsp.emulated_edge_mc(ubuf + uvlinesize,
 
  367                 s->vdsp.emulated_edge_mc(vbuf + uvlinesize,
 
  379             s->vdsp.emulated_edge_mc(ubuf,
 
  389             s->vdsp.emulated_edge_mc(vbuf,
 
  418         srcY += 
s->mspel * (1 + 
s->linesize);
 
  422         dxy = ((my & 3) << 2) | (mx & 3);
 
  425         dxy = (my & 2) | ((mx & 2) >> 1);
 
  427             s->hdsp.put_pixels_tab[0][dxy](
s->dest[0], srcY, 
s->linesize, 16);
 
  429             s->hdsp.put_no_rnd_pixels_tab[0][dxy](
s->dest[0], srcY, 
s->linesize, 16);
 
  435     uvmx = (uvmx & 3) << 1;
 
  436     uvmy = (uvmy & 3) << 1;
 
  456     int dxy, mx, my, src_x, src_y;
 
  460     uint8_t (*luty)[256];
 
  470     linesize = 
s->current_picture_ptr->f->linesize[0];
 
  472     mx = 
s->mv[dir][n][0];
 
  473     my = 
s->mv[dir][n][1];
 
  477             srcY = 
s->current_picture.f->data[0];
 
  482             srcY = 
s->last_picture.f->data[0];
 
  488         srcY = 
s->next_picture.f->data[0];
 
  506                                     &
s->current_picture.motion_val[1][
s->block_index[0] + v->
blocks_off][0],
 
  507                                     &
s->current_picture.motion_val[1][
s->block_index[0] + v->
blocks_off][1]);
 
  508         int k, 
f = opp_count > 2;
 
  509         for (k = 0; k < 4; k++)
 
  515         int width  = 
s->avctx->coded_width;
 
  516         int height = 
s->avctx->coded_height >> 1;
 
  518             s->current_picture.motion_val[1][
s->block_index[n] + v->
blocks_off][0] = mx;
 
  519             s->current_picture.motion_val[1][
s->block_index[n] + v->
blocks_off][1] = my;
 
  521         qx = (
s->mb_x * 16) + (mx >> 2);
 
  522         qy = (
s->mb_y *  8) + (my >> 3);
 
  527             mx -= 4 * (qx - 
width);
 
  531             my -= 8 * (qy - 
height - 1);
 
  535         off = ((n > 1) ? 
s->linesize : 0) + (n & 1) * 8;
 
  537         off = 
s->linesize * 4 * (n & 2) + (n & 1) * 8;
 
  539     src_x = 
s->mb_x * 16 + (n & 1) * 8 + (mx >> 2);
 
  541         src_y = 
s->mb_y * 16 + (n & 2) * 4 + (my >> 2);
 
  543         src_y = 
s->mb_y * 16 + ((n > 1) ? 1 : 0) + (my >> 2);
 
  546         src_x = 
av_clip(src_x, -16, 
s->mb_width  * 16);
 
  547         src_y = 
av_clip(src_y, -16, 
s->mb_height * 16);
 
  549         src_x = 
av_clip(src_x, -17, 
s->avctx->coded_width);
 
  551             src_y = 
av_clip(src_y, -18 + (src_y & 1), 
s->avctx->coded_height + (src_y & 1));
 
  553             src_y = 
av_clip(src_y, -18, 
s->avctx->coded_height + 1);
 
  556     srcY += src_y * 
s->linesize + src_x;
 
  561         || 
s->h_edge_pos < 13 || v_edge_pos < 23
 
  562         || (
unsigned)(src_x - 
s->mspel) > 
s->h_edge_pos - (mx & 3) - 8 - 
s->mspel * 2
 
  563         || (
unsigned)(src_y - (
s->mspel << fieldmv)) > v_edge_pos - (my & 3) - ((8 + 
s->mspel * 2) << fieldmv)) {
 
  564         const int k = 9 + 
s->mspel * 2;
 
  566         srcY -= 
s->mspel * (1 + (
s->linesize << fieldmv));
 
  569             s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer,
 
  580                 s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer + linesize,
 
  587                                          src_y - 
s->mspel + 1 >> 1,
 
  591             s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer,
 
  599                                                      src_y - (
s->mspel << fieldmv),
 
  602         srcY = 
s->sc.edge_emu_buffer;
 
  612                                k, 
s->linesize << fieldmv);
 
  614         srcY += 
s->mspel * (1 + (
s->linesize << fieldmv));
 
  618         dxy = ((my & 3) << 2) | (mx & 3);
 
  624         dxy = (my & 2) | ((mx & 2) >> 1);
 
  626             s->hdsp.put_pixels_tab[1][dxy](
s->dest[0] + off, srcY, 
s->linesize, 8);
 
  628             s->hdsp.put_no_rnd_pixels_tab[1][dxy](
s->dest[0] + off, srcY, 
s->linesize, 8);
 
  638     uint8_t *srcU, *srcV;
 
  639     int uvmx, uvmy, uvsrc_x, uvsrc_y;
 
  643     uint8_t (*lutuv)[256];
 
  657             s->current_picture.motion_val[1][
s->block_index[0] + v->
blocks_off][0] = 0;
 
  658             s->current_picture.motion_val[1][
s->block_index[0] + v->
blocks_off][1] = 0;
 
  669     s->current_picture.motion_val[1][
s->block_index[0] + v->
blocks_off][0] = tx;
 
  670     s->current_picture.motion_val[1][
s->block_index[0] + v->
blocks_off][1] = ty;
 
  672     uvlinesize = 
s->current_picture_ptr->f->linesize[1];
 
  674     uvmx = (tx + ((tx & 3) == 3)) >> 1;
 
  675     uvmy = (ty + ((ty & 3) == 3)) >> 1;
 
  681         uvmx = uvmx + ((uvmx < 0) ? (uvmx & 1) : -(uvmx & 1));
 
  682         uvmy = uvmy + ((uvmy < 0) ? (uvmy & 1) : -(uvmy & 1));
 
  686         uvmy += 2 - 4 * chroma_ref_type;
 
  688     uvsrc_x = 
s->mb_x * 8 + (uvmx >> 2);
 
  689     uvsrc_y = 
s->mb_y * 8 + (uvmy >> 2);
 
  692         uvsrc_x = 
av_clip(uvsrc_x, -8, 
s->mb_width  * 8);
 
  693         uvsrc_y = 
av_clip(uvsrc_y, -8, 
s->mb_height * 8);
 
  695         uvsrc_x = 
av_clip(uvsrc_x, -8, 
s->avctx->coded_width  >> 1);
 
  696         uvsrc_y = 
av_clip(uvsrc_y, -8, 
s->avctx->coded_height >> 1);
 
  701             srcU = 
s->current_picture.f->data[1];
 
  702             srcV = 
s->current_picture.f->data[2];
 
  707             srcU = 
s->last_picture.f->data[1];
 
  708             srcV = 
s->last_picture.f->data[2];
 
  714         srcU = 
s->next_picture.f->data[1];
 
  715         srcV = 
s->next_picture.f->data[2];
 
  726     srcU += uvsrc_y * 
s->uvlinesize + uvsrc_x;
 
  727     srcV += uvsrc_y * 
s->uvlinesize + uvsrc_x;
 
  730         if (chroma_ref_type) {
 
  737         || 
s->h_edge_pos < 18 || v_edge_pos < 18
 
  738         || (
unsigned)uvsrc_x > (
s->h_edge_pos >> 1) - 9
 
  739         || (
unsigned)uvsrc_y > (v_edge_pos    >> 1) - 9) {
 
  741             s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer,
 
  751             s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer + 16,
 
  762                 s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer + uvlinesize,
 
  772                 s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer + 16 + uvlinesize,
 
  784             s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer,
 
  791                                      v->
field_mode ? 2 * uvsrc_y + chroma_ref_type : uvsrc_y,
 
  794             s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer + 16,
 
  801                                      v->
field_mode ? 2 * uvsrc_y + chroma_ref_type : uvsrc_y,
 
  805         srcU = 
s->sc.edge_emu_buffer;
 
  806         srcV = 
s->sc.edge_emu_buffer + 16;
 
  815                                  lutuv[v->
field_mode ? chroma_ref_type : ((0 + uvsrc_y) & 1)],
 
  816                                  lutuv[v->
field_mode ? chroma_ref_type : ((1 + uvsrc_y) & 1)],
 
  822     uvmx = (uvmx & 3) << 1;
 
  823     uvmy = (uvmy & 3) << 1;
 
  843     uint8_t *srcU, *srcV;
 
  844     int uvsrc_x, uvsrc_y;
 
  845     int uvmx_field[4], uvmy_field[4];
 
  848     static const uint8_t s_rndtblfield[16] = { 0, 0, 1, 2, 4, 4, 5, 6, 2, 2, 3, 8, 6, 6, 7, 12 };
 
  849     int v_dist = fieldmv ? 1 : 4; 
 
  850     int v_edge_pos = 
s->v_edge_pos >> 1;
 
  854     uint8_t (*lutuv)[256];
 
  859     uvlinesize = 
s->current_picture_ptr->f->linesize[1];
 
  861     for (
i = 0; 
i < 4; 
i++) {
 
  862         int d = 
i < 2 ? dir: dir2;
 
  864         uvmx_field[
i] = (tx + ((tx & 3) == 3)) >> 1;
 
  867             uvmy_field[
i] = (ty >> 4) * 8 + s_rndtblfield[ty & 0xF];
 
  869             uvmy_field[
i] = (ty + ((ty & 3) == 3)) >> 1;
 
  872     for (
i = 0; 
i < 4; 
i++) {
 
  873         off = (
i & 1) * 4 + ((
i & 2) ? v_dist * 
s->uvlinesize : 0);
 
  874         uvsrc_x = 
s->mb_x * 8 +  (
i & 1) * 4           + (uvmx_field[
i] >> 2);
 
  875         uvsrc_y = 
s->mb_y * 8 + ((
i & 2) ? v_dist : 0) + (uvmy_field[
i] >> 2);
 
  877         uvsrc_x = 
av_clip(uvsrc_x, -8, 
s->avctx->coded_width  >> 1);
 
  879             uvsrc_y = 
av_clip(uvsrc_y, -8 + (uvsrc_y & 1), (
s->avctx->coded_height >> 1) + (uvsrc_y & 1));
 
  881             uvsrc_y = 
av_clip(uvsrc_y, -8, 
s->avctx->coded_height >> 1);
 
  882         if (
i < 2 ? dir : dir2) {
 
  883             srcU = 
s->next_picture.f->data[1];
 
  884             srcV = 
s->next_picture.f->data[2];
 
  889             srcU = 
s->last_picture.f->data[1];
 
  890             srcV = 
s->last_picture.f->data[2];
 
  897         srcU += uvsrc_y * 
s->uvlinesize + uvsrc_x;
 
  898         srcV += uvsrc_y * 
s->uvlinesize + uvsrc_x;
 
  899         uvmx_field[
i] = (uvmx_field[
i] & 3) << 1;
 
  900         uvmy_field[
i] = (uvmy_field[
i] & 3) << 1;
 
  903             || 
s->h_edge_pos < 10 || v_edge_pos < (5 << fieldmv)
 
  904             || (unsigned)uvsrc_x > (
s->h_edge_pos >> 1) - 5
 
  905             || (unsigned)uvsrc_y > v_edge_pos - (5 << fieldmv)) {
 
  907                 s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer,
 
  912                                          (5 << fieldmv) + 1 >> 1,
 
  917                 s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer + 16,
 
  922                                          (5 << fieldmv) + 1 >> 1,
 
  928                     s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer + uvlinesize,
 
  938                     s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer + 16 + uvlinesize,
 
  950                 s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer,
 
  960                 s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer + 16,
 
  971             srcU = 
s->sc.edge_emu_buffer;
 
  972             srcV = 
s->sc.edge_emu_buffer + 16;
 
  977                                      lutuv[(uvsrc_y + (0 << fieldmv)) & 1],
 
  978                                      lutuv[(uvsrc_y + (1 << fieldmv)) & 1],
 
  979                                      5, 
s->uvlinesize << fieldmv);
 
 1008     uint8_t *srcY, *srcU, *srcV;
 
 1009     int dxy, mx, my, uvmx, uvmy, src_x, src_y, uvsrc_x, uvsrc_y;
 
 1013     int linesize, uvlinesize;
 
 1018     linesize = 
s->current_picture_ptr->f->linesize[0];
 
 1019     uvlinesize = 
s->current_picture_ptr->f->linesize[1];
 
 1021     mx   = 
s->mv[1][0][0];
 
 1022     my   = 
s->mv[1][0][1];
 
 1023     uvmx = (mx + ((mx & 3) == 3)) >> 1;
 
 1024     uvmy = (my + ((my & 3) == 3)) >> 1;
 
 1030         uvmx = uvmx + ((uvmx < 0) ? -(uvmx & 1) : (uvmx & 1));
 
 1031         uvmy = uvmy + ((uvmy < 0) ? -(uvmy & 1) : (uvmy & 1));
 
 1033     srcY = 
s->next_picture.f->data[0];
 
 1034     srcU = 
s->next_picture.f->data[1];
 
 1035     srcV = 
s->next_picture.f->data[2];
 
 1039     src_x   = 
s->mb_x * 16 + (mx   >> 2);
 
 1040     src_y   = 
s->mb_y * 16 + (my   >> 2);
 
 1041     uvsrc_x = 
s->mb_x *  8 + (uvmx >> 2);
 
 1042     uvsrc_y = 
s->mb_y *  8 + (uvmy >> 2);
 
 1045         src_x   = 
av_clip(  src_x, -16, 
s->mb_width  * 16);
 
 1046         src_y   = 
av_clip(  src_y, -16, 
s->mb_height * 16);
 
 1047         uvsrc_x = 
av_clip(uvsrc_x,  -8, 
s->mb_width  *  8);
 
 1048         uvsrc_y = 
av_clip(uvsrc_y,  -8, 
s->mb_height *  8);
 
 1050         src_x   = 
av_clip(  src_x, -17, 
s->avctx->coded_width);
 
 1051         uvsrc_x = 
av_clip(uvsrc_x,  -8, 
s->avctx->coded_width  >> 1);
 
 1053             src_y = 
av_clip(src_y, -18 + (src_y & 1), 
s->avctx->coded_height + (src_y & 1));
 
 1054             uvsrc_y = 
av_clip(uvsrc_y, -8 + (uvsrc_y & 1), (
s->avctx->coded_height >> 1) + (uvsrc_y & 1));
 
 1056             src_y = 
av_clip(src_y, -18, 
s->avctx->coded_height + 1);
 
 1057             uvsrc_y = 
av_clip(uvsrc_y,  -8, 
s->avctx->coded_height >> 1);
 
 1061     srcY += src_y   * 
s->linesize   + src_x;
 
 1062     srcU += uvsrc_y * 
s->uvlinesize + uvsrc_x;
 
 1063     srcV += uvsrc_y * 
s->uvlinesize + uvsrc_x;
 
 1073         srcU = 
s->sc.edge_emu_buffer + 18 * 
s->linesize;
 
 1074         srcV = 
s->sc.edge_emu_buffer + 18 * 
s->linesize;
 
 1077     if (v->
rangeredfrm || 
s->h_edge_pos < 22 || v_edge_pos < 22 || use_ic
 
 1078         || (
unsigned)(src_x - 1) > 
s->h_edge_pos - (mx & 3) - 16 - 3
 
 1079         || (
unsigned)(src_y - 1) > v_edge_pos    - (my & 3) - 16 - 3) {
 
 1080         uint8_t *ubuf = 
s->sc.edge_emu_buffer + 19 * 
s->linesize;
 
 1081         uint8_t *vbuf = ubuf + 9 * 
s->uvlinesize;
 
 1082         const int k = 17 + 
s->mspel * 2;
 
 1084         srcY -= 
s->mspel * (1 + 
s->linesize);
 
 1086             s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer,
 
 1095                                      s->v_edge_pos >> 1);
 
 1097                 s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer + linesize,
 
 1104                                          src_y - 
s->mspel + 1 >> 1,
 
 1106                                          s->v_edge_pos >> 1);
 
 1108             s->vdsp.emulated_edge_mc(
s->sc.edge_emu_buffer,
 
 1119         srcY = 
s->sc.edge_emu_buffer;
 
 1121             s->vdsp.emulated_edge_mc(ubuf,
 
 1130                                      s->v_edge_pos >> 2);
 
 1131             s->vdsp.emulated_edge_mc(vbuf,
 
 1140                                      s->v_edge_pos >> 2);
 
 1142                 s->vdsp.emulated_edge_mc(ubuf + uvlinesize,
 
 1151                                          s->v_edge_pos >> 2);
 
 1152                 s->vdsp.emulated_edge_mc(vbuf + uvlinesize,
 
 1161                                          s->v_edge_pos >> 2);
 
 1164             s->vdsp.emulated_edge_mc(ubuf,
 
 1173                                      s->v_edge_pos >> 1);
 
 1174             s->vdsp.emulated_edge_mc(vbuf,
 
 1183                                      s->v_edge_pos >> 1);
 
 1205         srcY += 
s->mspel * (1 + 
s->linesize);
 
 1209         dxy = ((my & 3) << 2) | (mx & 3);
 
 1212         dxy = (my & 2) | ((mx & 2) >> 1);
 
 1215             s->hdsp.avg_pixels_tab[0][dxy](
s->dest[0], srcY, 
s->linesize, 16);
 
 1217             s->hdsp.avg_no_rnd_pixels_tab[dxy](
s->dest[0], srcY, 
s->linesize, 16);
 
 1223     uvmx = (uvmx & 3) << 1;
 
 1224     uvmy = (uvmy & 3) << 1;