[FFmpeg-devel] [PATCH 2/5] avcodec/vc1_mc: Simplify v_edge_pos and src_y correction when fieldmv is true

zhaoxiu.zeng zhaoxiu.zeng at gmail.com
Sat Mar 7 15:45:36 CET 2015


>From 1a57b4d3809710aeefc073a102a38e82f1d6e164 Mon Sep 17 00:00:00 2001
From: Zeng Zhaoxiu <zhaoxiu.zeng at gmail.com>
Date: Sat, 7 Mar 2015 17:36:33 +0800
Subject: [PATCH 2/5] avcodec/vc1_mc: Simplify v_edge_pos and src_y correction
 when fieldmv is true

Signed-off-by: Zeng Zhaoxiu <zhaoxiu.zeng at gmail.com>
---
 libavcodec/vc1_mc.c | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)
 mode change 100644 => 100755 libavcodec/vc1_mc.c

diff --git a/libavcodec/vc1_mc.c b/libavcodec/vc1_mc.c
old mode 100644
new mode 100755
index 18324c0..4b7f8b6
--- a/libavcodec/vc1_mc.c
+++ b/libavcodec/vc1_mc.c
@@ -416,10 +416,12 @@ void ff_vc1_mc_4mv_luma(VC1Context *v, int n, int dir, int avg)
     if (v->field_mode && v->ref_field_type[dir])
         srcY += s->current_picture_ptr->f->linesize[0];
 
-    if (fieldmv && !(src_y & 1))
-        v_edge_pos--;
-    if (fieldmv && (src_y & 1) && src_y < 4)
-        src_y--;
+    if (fieldmv) {
+        if (!(src_y & 1))
+            v_edge_pos--;
+        else
+            src_y -= (src_y < 4);
+    }
     if (v->rangeredfrm || use_ic
         || s->h_edge_pos < 13 || v_edge_pos < 23
         || (unsigned)(src_x - s->mspel) > s->h_edge_pos - (mx & 3) - 8 - s->mspel * 2
@@ -722,11 +724,12 @@ void ff_vc1_mc_4mv_chroma4(VC1Context *v, int dir, int dir2, int avg)
         uvmx_field[i] = (uvmx_field[i] & 3) << 1;
         uvmy_field[i] = (uvmy_field[i] & 3) << 1;
 
-        if (fieldmv && !(uvsrc_y & 1))
-            v_edge_pos = (s->v_edge_pos >> 1) - 1;
-
-        if (fieldmv && (uvsrc_y & 1) && uvsrc_y < 2)
-            uvsrc_y--;
+        if (fieldmv) {
+            if (!(uvsrc_y & 1))
+                v_edge_pos = (s->v_edge_pos >> 1) - 1;
+            else
+                uvsrc_y -= (uvsrc_y < 2);
+        }
         if (use_ic
             || s->h_edge_pos < 10 || v_edge_pos < (5 << fieldmv)
             || (unsigned)uvsrc_x > (s->h_edge_pos >> 1) - 5
-- 
2.1.0



More information about the ffmpeg-devel mailing list