1
mirror of https://git.videolan.org/git/ffmpeg.git synced 2024-08-28 04:06:12 +02:00

hevc: reduce code duplication in hls_prediction_unit()

This commit is contained in:
Anton Khirnov 2014-11-16 08:02:18 +01:00
parent de1f8ead89
commit a7b365ae19

View File

@ -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;
int skip_flag = SAMPLE_CTB(s->skip_flag, x_cb, y_cb);
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 */
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]];