From e32e2d56d4abd7793dcc2b3116e4bee937e88f20 Mon Sep 17 00:00:00 2001 From: Aurelien Jacobs Date: Wed, 3 Sep 2008 00:10:30 +0000 Subject: [PATCH] theoradec: small 4MV code reorganization to ease future improvements no functional changes Originally committed as revision 15165 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/vp3.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c index 3c06fe4..6740f0c 100644 --- a/libavcodec/vp3.c +++ b/libavcodec/vp3.c @@ -1039,6 +1039,10 @@ static int unpack_vectors(Vp3DecodeContext *s, GetBitContext *gb) 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 @@ static int unpack_vectors(Vp3DecodeContext *s, GetBitContext *gb) 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 @@ static int unpack_vectors(Vp3DecodeContext *s, GetBitContext *gb) 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: -- 2.7.4