29                                             int f_code, 
int b_code)
 
   38         return FFMAX3(f_code, b_code, 2) + 15;
 
   46     const int mb_height = 
s->mb_height;
 
   47     int c_wrap, l_wrap, l_xy;
 
   49     l_wrap = 
s->b8_stride;
 
   50     l_xy   = (2 * 
s->mb_y - 1) * l_wrap + 
s->mb_x * 2 - 1;
 
   51     c_wrap = 
s->mb_stride;
 
   52     int u_xy = 2 * mb_height * l_wrap + 
s->mb_y * c_wrap + 
s->mb_x - 1;
 
   53     int v_xy = u_xy + c_wrap * (mb_height + 1);
 
   54     int16_t (*ac_val)[16] = 
s->ac_val;
 
   57     memset(ac_val + l_xy, 0, (l_wrap * 2 + 1) * 
sizeof(*ac_val));
 
   58     memset(ac_val + u_xy, 0, (c_wrap     + 1) * 
sizeof(*ac_val));
 
   59     memset(ac_val + v_xy, 0, (c_wrap     + 1) * 
sizeof(*ac_val));
 
   66     s->last_mv[1][0][1] = 0;
 
   69 #define tab_size ((signed)FF_ARRAY_ELEMS(s->direct_scale_mv[0])) 
   70 #define tab_bias (tab_size / 2) 
   77         s->direct_scale_mv[0][
i] = (
i - 
tab_bias) * 
s->pb_time / 
s->pp_time;
 
   78         s->direct_scale_mv[1][
i] = (
i - 
tab_bias) * (
s->pb_time - 
s->pp_time) /
 
   86     int xy           = 
s->block_index[
i];
 
   87     uint16_t time_pp = 
s->pp_time;
 
   88     uint16_t time_pb = 
s->pb_time;
 
   91     p_mx = 
s->next_pic.motion_val[0][xy][0];
 
   94         s->mv[1][
i][0] = 
mx ? 
s->mv[0][
i][0] - p_mx
 
   97         s->mv[0][
i][0] = p_mx * time_pb / time_pp + 
mx;
 
   98         s->mv[1][
i][0] = 
mx ? 
s->mv[0][
i][0] - p_mx
 
   99                             : p_mx * (time_pb - time_pp) / time_pp;
 
  101     p_my = 
s->next_pic.motion_val[0][xy][1];
 
  103         s->mv[0][
i][1] = 
s->direct_scale_mv[0][p_my + 
tab_bias] + 
my;
 
  104         s->mv[1][
i][1] = 
my ? 
s->mv[0][
i][1] - p_my
 
  105                             : 
s->direct_scale_mv[1][p_my + 
tab_bias];
 
  107         s->mv[0][
i][1] = p_my * time_pb / time_pp + 
my;
 
  108         s->mv[1][
i][1] = 
my ? 
s->mv[0][
i][1] - p_my
 
  109                             : p_my * (time_pb - time_pp) / time_pp;
 
  121     const int mb_index          = 
s->mb_x + 
s->mb_y * 
s->mb_stride;
 
  122     const int colocated_mb_type = 
s->next_pic.mb_type[mb_index];
 
  130     if (
IS_8X8(colocated_mb_type)) {
 
  132         for (
i = 0; 
i < 4; 
i++)
 
  137         for (
i = 0; 
i < 2; 
i++) {
 
  138             int field_select = 
s->next_pic.ref_index[0][4 * mb_index + 2 * 
i];
 
  139             s->field_select[0][
i] = field_select;
 
  140             s->field_select[1][
i] = 
i;
 
  141             if (
s->top_field_first) {
 
  142                 time_pp = 
s->pp_field_time - field_select + 
i;
 
  143                 time_pb = 
s->pb_field_time - field_select + 
i;
 
  145                 time_pp = 
s->pp_field_time + field_select - 
i;
 
  146                 time_pb = 
s->pb_field_time + field_select - 
i;
 
  148             s->mv[0][
i][0] = 
s->p_field_mv_table[
i][0][mb_index][0] *
 
  149                              time_pb / time_pp + 
mx;
 
  150             s->mv[0][
i][1] = 
s->p_field_mv_table[
i][0][mb_index][1] *
 
  151                              time_pb / time_pp + 
my;
 
  152             s->mv[1][
i][0] = 
mx ? 
s->mv[0][
i][0] -
 
  153                                   s->p_field_mv_table[
i][0][mb_index][0]
 
  154                                 : 
s->p_field_mv_table[
i][0][mb_index][0] *
 
  155                                   (time_pb - time_pp) / time_pp;
 
  156             s->mv[1][
i][1] = 
my ? 
s->mv[0][
i][1] -
 
  157                                   s->p_field_mv_table[
i][0][mb_index][1]
 
  158                                 : 
s->p_field_mv_table[
i][0][mb_index][1] *
 
  159                                   (time_pb - time_pp) / time_pp;
 
  167         s->mv[0][3][0] = 
s->mv[0][0][0];
 
  170         s->mv[0][3][1] = 
s->mv[0][0][1];
 
  173         s->mv[1][3][0] = 
s->mv[1][0][0];
 
  176         s->mv[1][3][1] = 
s->mv[1][0][1];