[svn] / branches / release-1_0-branch / xvidcore / src / motion / motion_comp.c Repository:
ViewVC logotype

Diff of /branches/release-1_0-branch/xvidcore/src/motion/motion_comp.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1554, Tue Oct 12 19:30:14 2004 UTC revision 1555, Tue Oct 12 21:06:34 2004 UTC
# Line 20  Line 20 
20   *  along with this program ; if not, write to the Free Software   *  along with this program ; if not, write to the Free Software
21   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
22   *   *
23   * $Id: motion_comp.c,v 1.20 2004-03-22 22:36:24 edgomez Exp $   * $Id: motion_comp.c,v 1.20.2.1 2004-10-12 21:06:34 edgomez Exp $
24   *   *
25   ****************************************************************************/   ****************************************************************************/
26    
# Line 86  Line 86 
86  {  {
87          switch (((dx & 1) << 1) + (dy & 1)) {          switch (((dx & 1) << 1) + (dy & 1)) {
88          case 0:          case 0:
89                  return refn + (int) ((x * block + dx / 2) + (y * block + dy / 2) * stride);                  return refn + (int) (((int)x * (int)block + dx / 2) + ((int)y * (int)block + dy / 2) * (int)stride);
90          case 1:          case 1:
91                  return refv + (int) ((x * block + dx / 2) + (y * block + (dy - 1) / 2) * stride);                  return refv + (int) (((int)x * (int)block + dx / 2) + ((int)y * (int)block + (dy - 1) / 2) * (int)stride);
92          case 2:          case 2:
93                  return refh + (int) ((x * block + (dx - 1) / 2) + (y * block + dy / 2) * stride);                  return refh + (int) (((int)x * (int)block + (dx - 1) / 2) + ((int)y * (int)block + dy / 2) * (int)stride);
94          default:          default:
95                  return refhv + (int) ((x * block + (dx - 1) / 2) + (y * block + (dy - 1) / 2) * stride);                  return refhv + (int) (((int)x * (int)block + (dx - 1) / 2) + ((int)y * (int)block + (dy - 1) / 2) * (int)stride);
96          }          }
97  }  }
98    
# Line 129  Line 129 
129                                                                                          tmp + 64, tmp + 96, x, y, dx, dy, stride, rounding);                                                                                          tmp + 64, tmp + 96, x, y, dx, dy, stride, rounding);
130  #endif  #endif
131                                  ptr = tmp;                                  ptr = tmp;
132                          } else ptr =  ref + (y + dy/4)*stride + x + dx/4; /* fullpixel position */                          } else ptr =  ref + ((int)y + dy/4)*(int)stride + (int)x + dx/4; /* fullpixel position */
133    
134                  } else ptr = get_ref(ref, refh, refv, refhv, x, y, 1, dx, dy, stride);                  } else ptr = get_ref(ref, refh, refv, refhv, x, y, 1, dx, dy, stride);
135    
# Line 197  Line 197 
197                                                                                  tmp + 64, tmp + 96, x, y, dx, dy, stride, rounding);                                                                                  tmp + 64, tmp + 96, x, y, dx, dy, stride, rounding);
198  #endif  #endif
199                                  ptr = tmp;                                  ptr = tmp;
200                          } else ptr = ref + (y + dy/4)*stride + x + dx/4; /* fullpixel position */                          } else ptr = ref + ((int)y + dy/4)*(int)stride + (int)x + dx/4; /* fullpixel position */
201                  } else ptr = get_ref(ref, refh, refv, refhv, x, y, 1, dx, dy, stride);                  } else ptr = get_ref(ref, refh, refv, refhv, x, y, 1, dx, dy, stride);
202    
203                          transfer_8to16sub(dct_codes, cur + y * stride + x, ptr, stride);                          transfer_8to16sub(dct_codes, cur + y * stride + x, ptr, stride);
# Line 463  Line 463 
463                                          (uint8_t *) f_ref->y, tmp + 32,                                          (uint8_t *) f_ref->y, tmp + 32,
464                                          tmp + 64, tmp + 96, 16*i, 16*j, dx, dy, edged_width, 0);                                          tmp + 64, tmp + 96, 16*i, 16*j, dx, dy, edged_width, 0);
465                                  ptr1 = tmp;                                  ptr1 = tmp;
466                          } else ptr1 = f_ref->y + (16*j + dy/4)*edged_width + 16*i + dx/4; /* fullpixel position */                          } else ptr1 = f_ref->y + (16*(int)j + dy/4)*(int)edged_width + 16*(int)i + dx/4; /* fullpixel position */
467    
468                          if ((b_dx&3) | (b_dy&3)) {                          if ((b_dx&3) | (b_dy&3)) {
469                                  interpolate16x16_quarterpel(tmp - i * 16 - j * 16 * edged_width + 16,                                  interpolate16x16_quarterpel(tmp - i * 16 - j * 16 * edged_width + 16,
470                                          (uint8_t *) b_ref->y, tmp + 32,                                          (uint8_t *) b_ref->y, tmp + 32,
471                                          tmp + 64, tmp + 96, 16*i, 16*j, b_dx, b_dy, edged_width, 0);                                          tmp + 64, tmp + 96, 16*i, 16*j, b_dx, b_dy, edged_width, 0);
472                                  ptr2 = tmp + 16;                                  ptr2 = tmp + 16;
473                          } else ptr2 = b_ref->y + (16*j + b_dy/4)*edged_width + 16*i + b_dx/4; /* fullpixel position */                          } else ptr2 = b_ref->y + (16*(int)j + b_dy/4)*(int)edged_width + 16*(int)i + b_dx/4; /* fullpixel position */
474    
475                          b_dx /= 2;                          b_dx /= 2;
476                          b_dy /= 2;                          b_dy /= 2;
# Line 517  Line 517 
517                                                  tmp + 32, tmp + 64, tmp + 96,                                                  tmp + 32, tmp + 64, tmp + 96,
518                                                  16*i + (k&1)*8, 16*j + (k>>1)*8, dx, dy, edged_width, 0);                                                  16*i + (k&1)*8, 16*j + (k>>1)*8, dx, dy, edged_width, 0);
519                                          ptr1 = tmp;                                          ptr1 = tmp;
520                                  } else ptr1 = f_ref->y + (16*j + (k>>1)*8 + dy/4)*edged_width + 16*i + (k&1)*8 + dx/4;                                  } else ptr1 = f_ref->y + (16*(int)j + (k>>1)*8 + dy/4)*(int)edged_width + 16*(int)i + (k&1)*8 + dx/4;
521    
522                                  if ((b_dx&3) | (b_dy&3)) {                                  if ((b_dx&3) | (b_dy&3)) {
523                                          interpolate8x8_quarterpel(tmp - (i * 16+(k&1)*8) - (j * 16+((k>>1)*8)) * edged_width + 16,                                          interpolate8x8_quarterpel(tmp - (i * 16+(k&1)*8) - (j * 16+((k>>1)*8)) * edged_width + 16,
# Line 525  Line 525 
525                                                  tmp + 16, tmp + 32, tmp + 48,                                                  tmp + 16, tmp + 32, tmp + 48,
526                                                  16*i + (k&1)*8, 16*j + (k>>1)*8, b_dx, b_dy, edged_width, 0);                                                  16*i + (k&1)*8, 16*j + (k>>1)*8, b_dx, b_dy, edged_width, 0);
527                                          ptr2 = tmp + 16;                                          ptr2 = tmp + 16;
528                                  } else ptr2 = b_ref->y + (16*j + (k>>1)*8 + b_dy/4)*edged_width + 16*i + (k&1)*8 + b_dx/4;                                  } else ptr2 = b_ref->y + (16*(int)j + (k>>1)*8 + b_dy/4)*(int)edged_width + 16*(int)i + (k&1)*8 + b_dx/4;
529                          } else {                          } else {
530                                  sumx += dx; sumy += dy;                                  sumx += dx; sumy += dy;
531                                  b_sumx += b_dx; b_sumy += b_dy;                                  b_sumx += b_dx; b_sumy += b_dy;

Legend:
Removed from v.1554  
changed lines
  Added in v.1555

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4