32     switch (
s->pict_type) {
 
   37         return s->f_code + 15;
 
   39         return FFMAX3(
s->f_code, 
s->b_code, 2) + 15;
 
   47     int c_wrap, c_xy, 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     c_xy   = (
s->mb_y - 1) * c_wrap + 
s->mb_x - 1;
 
   55     memset(
s->ac_val[0] + l_xy, 0, (l_wrap * 2 + 1) * 16 * 
sizeof(int16_t));
 
   56     memset(
s->ac_val[1] + c_xy, 0, (c_wrap     + 1) * 16 * 
sizeof(int16_t));
 
   57     memset(
s->ac_val[2] + c_xy, 0, (c_wrap     + 1) * 16 * 
sizeof(int16_t));
 
   64     s->last_mv[1][0][1] = 0;
 
   67 #define tab_size ((signed)FF_ARRAY_ELEMS(s->direct_scale_mv[0])) 
   68 #define tab_bias (tab_size / 2) 
   75         s->direct_scale_mv[0][
i] = (
i - 
tab_bias) * 
s->pb_time / 
s->pp_time;
 
   76         s->direct_scale_mv[1][
i] = (
i - 
tab_bias) * (
s->pb_time - 
s->pp_time) /
 
   84     int xy           = 
s->block_index[
i];
 
   85     uint16_t time_pp = 
s->pp_time;
 
   86     uint16_t time_pb = 
s->pb_time;
 
   89     p_mx = 
s->next_picture.motion_val[0][xy][0];
 
   91         s->mv[0][
i][0] = 
s->direct_scale_mv[0][p_mx + 
tab_bias] + mx;
 
   92         s->mv[1][
i][0] = mx ? 
s->mv[0][
i][0] - p_mx
 
   95         s->mv[0][
i][0] = p_mx * time_pb / time_pp + mx;
 
   96         s->mv[1][
i][0] = mx ? 
s->mv[0][
i][0] - p_mx
 
   97                             : p_mx * (time_pb - time_pp) / time_pp;
 
   99     p_my = 
s->next_picture.motion_val[0][xy][1];
 
  101         s->mv[0][
i][1] = 
s->direct_scale_mv[0][p_my + 
tab_bias] + my;
 
  102         s->mv[1][
i][1] = my ? 
s->mv[0][
i][1] - p_my
 
  103                             : 
s->direct_scale_mv[1][p_my + 
tab_bias];
 
  105         s->mv[0][
i][1] = p_my * time_pb / time_pp + my;
 
  106         s->mv[1][
i][1] = my ? 
s->mv[0][
i][1] - p_my
 
  107                             : p_my * (time_pb - time_pp) / time_pp;
 
  119     const int mb_index          = 
s->mb_x + 
s->mb_y * 
s->mb_stride;
 
  120     const int colocated_mb_type = 
s->next_picture.mb_type[mb_index];
 
  128     if (
IS_8X8(colocated_mb_type)) {
 
  130         for (
i = 0; 
i < 4; 
i++)
 
  135         for (
i = 0; 
i < 2; 
i++) {
 
  136             int field_select = 
s->next_picture.ref_index[0][4 * mb_index + 2 * 
i];
 
  137             s->field_select[0][
i] = field_select;
 
  138             s->field_select[1][
i] = 
i;
 
  139             if (
s->top_field_first) {
 
  140                 time_pp = 
s->pp_field_time - field_select + 
i;
 
  141                 time_pb = 
s->pb_field_time - field_select + 
i;
 
  143                 time_pp = 
s->pp_field_time + field_select - 
i;
 
  144                 time_pb = 
s->pb_field_time + field_select - 
i;
 
  146             s->mv[0][
i][0] = 
s->p_field_mv_table[
i][0][mb_index][0] *
 
  147                              time_pb / time_pp + mx;
 
  148             s->mv[0][
i][1] = 
s->p_field_mv_table[
i][0][mb_index][1] *
 
  149                              time_pb / time_pp + my;
 
  150             s->mv[1][
i][0] = mx ? 
s->mv[0][
i][0] -
 
  151                                   s->p_field_mv_table[
i][0][mb_index][0]
 
  152                                 : 
s->p_field_mv_table[
i][0][mb_index][0] *
 
  153                                   (time_pb - time_pp) / time_pp;
 
  154             s->mv[1][
i][1] = my ? 
s->mv[0][
i][1] -
 
  155                                   s->p_field_mv_table[
i][0][mb_index][1]
 
  156                                 : 
s->p_field_mv_table[
i][0][mb_index][1] *
 
  157                                   (time_pb - time_pp) / time_pp;
 
  165         s->mv[0][3][0] = 
s->mv[0][0][0];
 
  168         s->mv[0][3][1] = 
s->mv[0][0][1];
 
  171         s->mv[1][3][0] = 
s->mv[1][0][0];
 
  174         s->mv[1][3][1] = 
s->mv[1][0][1];