diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index e97bba3886..ead180269d 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -1600,7 +1600,6 @@ static void hls_prediction_unit(HEVCContext *s, int x0, int y0, int x_cb = x0 >> log2_min_cb_size; int y_cb = y0 >> log2_min_cb_size; int ref_idx[2]; - int mvp_flag[2]; int x_pu, y_pu; int i, j; @@ -1619,6 +1618,8 @@ static void hls_prediction_unit(HEVCContext *s, int x0, int y0, partIdx, merge_idx, ¤t_mv); } else { enum InterPredIdc inter_pred_idc = PRED_L0; + int mvp_flag; + ff_hevc_set_neighbour_available(s, x0, y0, nPbW, nPbH); current_mv.pred_flag = 0; if (s->sh.slice_type == B_SLICE) @@ -1629,13 +1630,12 @@ static void hls_prediction_unit(HEVCContext *s, int x0, int y0, ref_idx[0] = ff_hevc_ref_idx_lx_decode(s, s->sh.nb_refs[L0]); current_mv.ref_idx[0] = ref_idx[0]; } - current_mv.pred_flag = PF_L0; ff_hevc_hls_mvd_coding(s, x0, y0, 0); - mvp_flag[0] = ff_hevc_mvp_lx_flag_decode(s); + mvp_flag = ff_hevc_mvp_lx_flag_decode(s); ff_hevc_luma_mv_mvp_mode(s, x0, y0, nPbW, nPbH, log2_cb_size, partIdx, merge_idx, ¤t_mv, - mvp_flag[0], 0); + mvp_flag, 0); current_mv.mv[0].x += lc->pu.mvd.x; current_mv.mv[0].y += lc->pu.mvd.y; } @@ -1653,10 +1653,10 @@ static void hls_prediction_unit(HEVCContext *s, int x0, int y0, } current_mv.pred_flag += PF_L1; - mvp_flag[1] = ff_hevc_mvp_lx_flag_decode(s); + mvp_flag = ff_hevc_mvp_lx_flag_decode(s); ff_hevc_luma_mv_mvp_mode(s, x0, y0, nPbW, nPbH, log2_cb_size, partIdx, merge_idx, ¤t_mv, - mvp_flag[1], 1); + mvp_flag, 1); current_mv.mv[1].x += lc->pu.mvd.x; current_mv.mv[1].y += lc->pu.mvd.y; }