---
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, ¤t_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