aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMashiat Sarker Shakkhar <shahriman_ams@yahoo.com>2011-10-22 19:41:04 +0500
committerDiego Biurrun <diego@biurrun.de>2011-10-22 22:51:00 +0200
commitf18746528d67f6706d8b4d36e78dbeee7a82f13e (patch)
tree903dadefa3a506208c55c401b423b9d3113e9bb8
parente53eecd0e7211973a1a9757f559bdd93a1848901 (diff)
downloadffmpeg-f18746528d67f6706d8b4d36e78dbeee7a82f13e.tar.gz
VC1: restore mistakenly removed code
The code was mistakenly removed in cad16562c8d76ea2a2a6495f29296c3ff7966946. It stored some motion vector data for future use in B-pictures. This fixes Bugzilla bug #57. Signed-off-by: Diego Biurrun <diego@biurrun.de>
-rw-r--r--libavcodec/vc1dec.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
index 708ad81e7b..60cca333fe 100644
--- a/libavcodec/vc1dec.c
+++ b/libavcodec/vc1dec.c
@@ -930,6 +930,8 @@ static void vc1_mc_4mv_chroma(VC1Context *v, int dir)
if (!v->field_mode || (v->field_mode && !v->numref)) {
valid_count = get_chroma_mv(mvx, mvy, intra, 0, &tx, &ty);
if (!valid_count) {
+ s->current_picture.f.motion_val[1][s->block_index[0]][0] = 0;
+ s->current_picture.f.motion_val[1][s->block_index[0]][1] = 0;
v->luma_mv[s->mb_x][0] = v->luma_mv[s->mb_x][1] = 0;
return; //no need to do MC for intra blocks
}
@@ -941,6 +943,8 @@ static void vc1_mc_4mv_chroma(VC1Context *v, int dir)
if (dominant)
chroma_ref_type = !v->cur_field_type;
}
+ s->current_picture.f.motion_val[1][s->block_index[0]][0] = tx;
+ s->current_picture.f.motion_val[1][s->block_index[0]][1] = ty;
uvmx = (tx + ((tx & 3) == 3)) >> 1;
uvmy = (ty + ((ty & 3) == 3)) >> 1;