diff options
author | Anton Khirnov <anton@khirnov.net> | 2016-10-18 21:22:22 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2016-10-21 10:11:20 +0200 |
commit | 59c90097a0eff0dc81fbec15b8900c929859d1e7 (patch) | |
tree | 31ca67c17981431c9205662ee71ffe4707a0b365 /libavcodec/hevcdec.c | |
parent | 0bfdcce4d42a6e654c00ea5f9237dc987626457f (diff) | |
download | ffmpeg-59c90097a0eff0dc81fbec15b8900c929859d1e7.tar.gz |
hevc: factor out a repeated condition
Diffstat (limited to 'libavcodec/hevcdec.c')
-rw-r--r-- | libavcodec/hevcdec.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index db456086f7..e58d5f8f58 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -1684,6 +1684,8 @@ static void hls_prediction_unit(HEVCContext *s, int x0, int y0, struct MvField current_mv = {{{ 0 }}}; int min_pu_width = s->ps.sps->min_pu_width; + int weighted_pred = (s->sh.slice_type == HEVC_SLICE_P && s->ps.pps->weighted_pred_flag) || + (s->sh.slice_type == HEVC_SLICE_B && s->ps.pps->weighted_bipred_flag); MvField *tab_mvf = s->ref->tab_mvf; RefPicList *refPicList = s->ref->refPicList; @@ -1746,8 +1748,7 @@ static void hls_prediction_unit(HEVCContext *s, int x0, int y0, luma_mc(s, tmp, tmpstride, ref0->frame, ¤t_mv.mv[0], x0, y0, nPbW, nPbH, pred_idx); - if ((s->sh.slice_type == HEVC_SLICE_P && s->ps.pps->weighted_pred_flag) || - (s->sh.slice_type == HEVC_SLICE_B && s->ps.pps->weighted_bipred_flag)) { + if (weighted_pred) { s->hevcdsp.weighted_pred[pred_idx](s->sh.luma_log2_weight_denom, s->sh.luma_weight_l0[current_mv.ref_idx[0]], s->sh.luma_offset_l0[current_mv.ref_idx[0]], @@ -1759,8 +1760,7 @@ static void hls_prediction_unit(HEVCContext *s, int x0, int y0, chroma_mc(s, tmp, tmp2, tmpstride, ref0->frame, ¤t_mv.mv[0], x0 / 2, y0 / 2, nPbW / 2, nPbH / 2, pred_idx); - if ((s->sh.slice_type == HEVC_SLICE_P && s->ps.pps->weighted_pred_flag) || - (s->sh.slice_type == HEVC_SLICE_B && s->ps.pps->weighted_bipred_flag)) { + if (weighted_pred) { s->hevcdsp.weighted_pred_chroma[pred_idx](s->sh.chroma_log2_weight_denom, s->sh.chroma_weight_l0[current_mv.ref_idx[0]][0], s->sh.chroma_offset_l0[current_mv.ref_idx[0]][0], @@ -1782,8 +1782,7 @@ static void hls_prediction_unit(HEVCContext *s, int x0, int y0, luma_mc(s, tmp, tmpstride, ref1->frame, ¤t_mv.mv[1], x0, y0, nPbW, nPbH, pred_idx); - if ((s->sh.slice_type == HEVC_SLICE_P && s->ps.pps->weighted_pred_flag) || - (s->sh.slice_type == HEVC_SLICE_B && s->ps.pps->weighted_bipred_flag)) { + if (weighted_pred) { s->hevcdsp.weighted_pred[pred_idx](s->sh.luma_log2_weight_denom, s->sh.luma_weight_l1[current_mv.ref_idx[1]], s->sh.luma_offset_l1[current_mv.ref_idx[1]], @@ -1796,8 +1795,7 @@ static void hls_prediction_unit(HEVCContext *s, int x0, int y0, chroma_mc(s, tmp, tmp2, tmpstride, ref1->frame, ¤t_mv.mv[1], x0 / 2, y0 / 2, nPbW / 2, nPbH / 2, pred_idx); - if ((s->sh.slice_type == HEVC_SLICE_P && s->ps.pps->weighted_pred_flag) || - (s->sh.slice_type == HEVC_SLICE_B && s->ps.pps->weighted_bipred_flag)) { + if (weighted_pred) { s->hevcdsp.weighted_pred_chroma[pred_idx](s->sh.chroma_log2_weight_denom, s->sh.chroma_weight_l1[current_mv.ref_idx[1]][0], s->sh.chroma_offset_l1[current_mv.ref_idx[1]][0], @@ -1821,8 +1819,7 @@ static void hls_prediction_unit(HEVCContext *s, int x0, int y0, luma_mc(s, tmp2, tmpstride, ref1->frame, ¤t_mv.mv[1], x0, y0, nPbW, nPbH, pred_idx); - if ((s->sh.slice_type == HEVC_SLICE_P && s->ps.pps->weighted_pred_flag) || - (s->sh.slice_type == HEVC_SLICE_B && s->ps.pps->weighted_bipred_flag)) { + if (weighted_pred) { s->hevcdsp.weighted_pred_avg[pred_idx](s->sh.luma_log2_weight_denom, s->sh.luma_weight_l0[current_mv.ref_idx[0]], s->sh.luma_weight_l1[current_mv.ref_idx[1]], @@ -1840,8 +1837,7 @@ static void hls_prediction_unit(HEVCContext *s, int x0, int y0, chroma_mc(s, tmp3, tmp4, tmpstride, ref1->frame, ¤t_mv.mv[1], x0 / 2, y0 / 2, nPbW / 2, nPbH / 2, pred_idx); - if ((s->sh.slice_type == HEVC_SLICE_P && s->ps.pps->weighted_pred_flag) || - (s->sh.slice_type == HEVC_SLICE_B && s->ps.pps->weighted_bipred_flag)) { + if (weighted_pred) { s->hevcdsp.weighted_pred_avg_chroma[pred_idx](s->sh.chroma_log2_weight_denom, s->sh.chroma_weight_l0[current_mv.ref_idx[0]][0], s->sh.chroma_weight_l1[current_mv.ref_idx[1]][0], |