# HG changeset patch # User aurel # Date 1220400630 0 # Node ID 8002605f6aaf1988894efe8b933dbfc7d335e095 # Parent dbcdd0165e55d7d8f90589f43a3a2dbadfb29807 theoradec: small 4MV code reorganization to ease future improvements no functional changes diff -r dbcdd0165e55 -r 8002605f6aaf vp3.c --- a/vp3.c Tue Sep 02 23:25:57 2008 +0000 +++ b/vp3.c Wed Sep 03 00:10:30 2008 +0000 @@ -1039,6 +1039,10 @@ break; case MODE_INTER_FOURMV: + /* vector maintenance */ + prior_last_motion_x = last_motion_x; + prior_last_motion_y = last_motion_y; + /* fetch 4 vectors from the bitstream, one for each * Y fragment, then average for the C fragment vectors */ motion_x[4] = motion_y[4] = 0; @@ -1050,6 +1054,8 @@ motion_x[k] = fixed_motion_vector_table[get_bits(gb, 6)]; motion_y[k] = fixed_motion_vector_table[get_bits(gb, 6)]; } + last_motion_x = motion_x[k]; + last_motion_y = motion_y[k]; motion_x[4] += motion_x[k]; motion_y[4] += motion_y[k]; } @@ -1058,13 +1064,6 @@ motion_x[4]= RSHIFT(motion_x[4], 2); motion_y[5]= motion_y[4]= RSHIFT(motion_y[4], 2); - - /* vector maintenance; vector[3] is treated as the - * last vector in this case */ - prior_last_motion_x = last_motion_x; - prior_last_motion_y = last_motion_y; - last_motion_x = motion_x[3]; - last_motion_y = motion_y[3]; break; case MODE_INTER_LAST_MV: