diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2007-08-01 21:17:26 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2007-08-01 21:17:26 +0000 |
commit | 04b502fa368e40835d8e2b3a15245d53541fa742 (patch) | |
tree | 482b6b5a0aab5a1daf96a1580bf93b53943c2421 /libavcodec/mpeg12.c | |
parent | f4fbcd33d904915ad51fd9a93fdc2d9201066eb2 (diff) | |
download | ffmpeg-04b502fa368e40835d8e2b3a15245d53541fa742.tar.gz |
exchange if() and for() in the MT_FIELD case
18 cpu cycles faster for matrixbench
Originally committed as revision 9863 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpeg12.c')
-rw-r--r-- | libavcodec/mpeg12.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c index 76af2c468d..73f3a85b9d 100644 --- a/libavcodec/mpeg12.c +++ b/libavcodec/mpeg12.c @@ -418,11 +418,11 @@ static int mpeg_decode_mb(MpegEncContext *s, 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 @@ static int mpeg_decode_mb(MpegEncContext *s, 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], |