---
 libavcodec/hevc.c | 25 +++++--------------------
 1 file changed, 5 insertions(+), 20 deletions(-)

diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c
index e4e0b4b..223c023 100644
--- a/libavcodec/hevc.c
+++ b/libavcodec/hevc.c
@@ -1652,26 +1652,12 @@ static void hls_prediction_unit(HEVCContext *s, int x0, 
int y0,
     int x_pu, y_pu;
     int i, j;
 
-    if (SAMPLE_CTB(s->skip_flag, x_cb, y_cb)) {
-        if (s->sh.max_num_merge_cand > 1)
-            merge_idx = ff_hevc_merge_idx_decode(s);
-        else
-            merge_idx = 0;
-
-        ff_hevc_luma_mv_merge_mode(s, x0, y0,
-                                   1 << log2_cb_size,
-                                   1 << log2_cb_size,
-                                   log2_cb_size, partIdx,
-                                   merge_idx, &current_mv);
-        x_pu = x0 >> s->sps->log2_min_pu_size;
-        y_pu = y0 >> s->sps->log2_min_pu_size;
-
-        for (j = 0; j < nPbH >> s->sps->log2_min_pu_size; j++)
-            for (i = 0; i < nPbW >> s->sps->log2_min_pu_size; i++)
-                tab_mvf[(y_pu + j) * min_pu_width + x_pu + i] = current_mv;
-    } else { /* MODE_INTER */
+    int skip_flag = SAMPLE_CTB(s->skip_flag, x_cb, y_cb);
+
+    if (!skip_flag)
         lc->pu.merge_flag = ff_hevc_merge_flag_decode(s);
-        if (lc->pu.merge_flag) {
+
+        if (skip_flag || lc->pu.merge_flag) {
             if (s->sh.max_num_merge_cand > 1)
                 merge_idx = ff_hevc_merge_idx_decode(s);
             else
@@ -1734,7 +1720,6 @@ static void hls_prediction_unit(HEVCContext *s, int x0, 
int y0,
                 for (i = 0; i < nPbW >> s->sps->log2_min_pu_size; i++)
                     tab_mvf[(y_pu + j) * min_pu_width + x_pu + i] = current_mv;
         }
-    }
 
     if (current_mv.pred_flag[0]) {
         ref0 = refPicList[0].ref[current_mv.ref_idx[0]];
-- 
2.0.0

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to