summaryrefslogtreecommitdiff
path: root/libavcodec/mpeg12.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2007-08-01 21:17:26 +0000
committerMichael Niedermayer <michaelni@gmx.at>2007-08-01 21:17:26 +0000
commit04b502fa368e40835d8e2b3a15245d53541fa742 (patch)
tree482b6b5a0aab5a1daf96a1580bf93b53943c2421 /libavcodec/mpeg12.c
parentf4fbcd33d904915ad51fd9a93fdc2d9201066eb2 (diff)
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.c19
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],