# HG changeset patch # User michael # Date 1186003046 0 # Node ID 38517a9edb501ed2f5d5ab591d92bf87e847161c # Parent 40c87c0f754bb332cee698294613cff54007978a exchange if() and for() in the MT_FIELD case 18 cpu cycles faster for matrixbench diff -r 40c87c0f754b -r 38517a9edb50 mpeg12.c --- a/mpeg12.c Wed Aug 01 21:05:58 2007 +0000 +++ b/mpeg12.c Wed Aug 01 21:17:26 2007 +0000 @@ -418,11 +418,11 @@ break; case MT_FIELD: s->mv_type = MV_TYPE_FIELD; - for(i=0;i<2;i++) { - if (USES_LIST(mb_type, i)) { - s->mv_dir |= (MV_DIR_FORWARD >> i); - if (s->picture_structure == PICT_FRAME) { - mb_type |= MB_TYPE_16x8 | MB_TYPE_INTERLACED; + if (s->picture_structure == PICT_FRAME) { + mb_type |= MB_TYPE_16x8 | MB_TYPE_INTERLACED; + for(i=0;i<2;i++) { + if (USES_LIST(mb_type, i)) { + s->mv_dir |= (MV_DIR_FORWARD >> i); for(j=0;j<2;j++) { s->field_select[i][j] = get_bits1(&s->gb); val = mpeg_decode_motion(s, s->mpeg_f_code[i][0], @@ -436,8 +436,13 @@ s->mv[i][j][1] = val; dprintf(s->avctx, "fmy=%d\n", val); } - } else { - mb_type |= MB_TYPE_16x16 | MB_TYPE_INTERLACED; + } + } + } else { + mb_type |= MB_TYPE_16x16 | MB_TYPE_INTERLACED; + for(i=0;i<2;i++) { + if (USES_LIST(mb_type, i)) { + s->mv_dir |= (MV_DIR_FORWARD >> i); s->field_select[i][0] = get_bits1(&s->gb); for(k=0;k<2;k++) { val = mpeg_decode_motion(s, s->mpeg_f_code[i][k],