[FFmpeg-cvslog] VC1: restore mistakenly removed code

Mashiat Sarker Shakkhar git at videolan.org
Sun Oct 23 05:53:11 CEST 2011


ffmpeg | branch: master | Mashiat Sarker Shakkhar <shahriman_ams at yahoo.com> | Sat Oct 22 19:41:04 2011 +0500| [f18746528d67f6706d8b4d36e78dbeee7a82f13e] | committer: Diego Biurrun

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 at biurrun.de>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f18746528d67f6706d8b4d36e78dbeee7a82f13e
---

 libavcodec/vc1dec.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
index 708ad81..60cca33 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;
 



More information about the ffmpeg-cvslog mailing list