hevc: derive partially amvp list
authorChristophe Gisquet <christophe.gisquet@gmail.com>
Fri, 8 Aug 2014 18:21:00 +0000 (18:21 +0000)
committerAnton Khirnov <anton@khirnov.net>
Tue, 12 Aug 2014 09:58:14 +0000 (09:58 +0000)
When the candidate has been found, no need to derive others.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
libavcodec/hevc_mvs.c

index 7fa418b..12823c2 100644 (file)
@@ -722,6 +722,11 @@ void ff_hevc_luma_mv_mvp_mode(HEVCContext *s, int x0, int y0, int nPbW,
             availableFlagLXA0 = MP_MX_LT(A1, pred_flag_index_l1, mxA);
     }
 
             availableFlagLXA0 = MP_MX_LT(A1, pred_flag_index_l1, mxA);
     }
 
+    if (availableFlagLXA0 && !mvp_lx_flag) {
+        mv->mv[LX] = mxA;
+        return;
+    }
+
     // B candidates
     // above right spatial merge candidate
     xB0    = x0 + nPbW;
     // B candidates
     // above right spatial merge candidate
     xB0    = x0 + nPbW;