- if (s->picture_structure == PICT_FRAME) {
- for (i = 0; i < 2; i++) {
- int j;
- for (j = 0; j < 2; j++)
- mpeg_motion_field(s, dest_y, dest_cb, dest_cr,
- j, j ^ i, ref_picture, pix_op,
- s->mv[dir][2 * i + j][0],
- s->mv[dir][2 * i + j][1], 8, mb_y);
- pix_op = s->hdsp.avg_pixels_tab;
- }
- } else {
- if (!ref_picture[0]) {
- ref_picture = s->current_picture_ptr->f->data;
- }
- for (i = 0; i < 2; i++) {
- mpeg_motion(s, dest_y, dest_cb, dest_cr,
- s->picture_structure != i + 1,
- ref_picture, pix_op,
- s->mv[dir][2 * i][0], s->mv[dir][2 * i][1],
- 16, 0, mb_y >> 1);
-
- // after put we make avg of the same block
- pix_op = s->hdsp.avg_pixels_tab;
-
- /* opposite parity is always in the same frame if this is
- * second field */
- if (!s->first_field) {
+ if (CONFIG_SMALL || is_mpeg12) {
+ if (s->picture_structure == PICT_FRAME) {
+ for (i = 0; i < 2; i++) {
+ for (int j = 0; j < 2; j++)
+ mpeg_motion_field(s, dest_y, dest_cb, dest_cr,
+ j, j ^ i, ref_picture, pix_op,
+ s->mv[dir][2 * i + j][0],
+ s->mv[dir][2 * i + j][1], 8, mb_y);
+ pix_op = s->hdsp.avg_pixels_tab;
+ }
+ } else {
+ if (!ref_picture[0]) {