func: static inline void mv_pred_direct(AVSContext *h, cavs_vector *pmv_fw,
  
                                    cavs_vector *col_mv)
  
  {
  
      cavs_vector *pmv_bw = pmv_fw + MV_BWD_OFFS;
  
      int den = h->direct_den[col_mv->ref];
  
      int m = FF_SIGNBIT(col_mv->x);
  
  
  
      pmv_fw->dist = h->dist[1];
  
      pmv_bw->dist = h->dist[0];
  
      pmv_fw->ref = 1;
  
      pmv_bw->ref = 0;
  
      /* scale the co-located motion vector according to its temporal span */
  
      pmv_fw->x =     (((den + (den * col_mv->x * pmv_fw->dist ^ m) - m - 1) >> 14) ^ m) - m;
  
      pmv_bw->x = m - (((den + (den * col_mv->x * pmv_bw->dist ^ m) - m - 1) >> 14) ^ m);
  
      m = FF_SIGNBIT(col_mv->y);
  
      pmv_fw->y =     (((den + (den * col_mv->y * pmv_fw->dist ^ m) - m - 1) >> 14) ^ m) - m;
  
      pmv_bw->y = m - (((den + (den * col_mv->y * pmv_bw->dist ^ m) - m - 1) >> 14) ^ m);
  
  }
  