|
|
|
@ -52,7 +52,7 @@ |
|
|
|
|
#include "thread.h" |
|
|
|
|
#include "threadframe.h" |
|
|
|
|
|
|
|
|
|
const uint8_t ff_hevc_pel_weight[65] = { [2] = 0, [4] = 1, [6] = 2, [8] = 3, [12] = 4, [16] = 5, [24] = 6, [32] = 7, [48] = 8, [64] = 9 }; |
|
|
|
|
static const uint8_t hevc_pel_weight[65] = { [2] = 0, [4] = 1, [6] = 2, [8] = 3, [12] = 4, [16] = 5, [24] = 6, [32] = 7, [48] = 8, [64] = 9 }; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* NOTE: Each function hls_foo correspond to the function foo in the |
|
|
|
@ -1509,7 +1509,7 @@ static void luma_mc_uni(HEVCContext *s, uint8_t *dst, ptrdiff_t dststride, |
|
|
|
|
int my = mv->y & 3; |
|
|
|
|
int weight_flag = (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); |
|
|
|
|
int idx = ff_hevc_pel_weight[block_w]; |
|
|
|
|
int idx = hevc_pel_weight[block_w]; |
|
|
|
|
|
|
|
|
|
x_off += mv->x >> 2; |
|
|
|
|
y_off += mv->y >> 2; |
|
|
|
@ -1576,7 +1576,7 @@ static void luma_mc_uni(HEVCContext *s, uint8_t *dst, ptrdiff_t dststride, |
|
|
|
|
int y_off0 = y_off + (mv0->y >> 2); |
|
|
|
|
int x_off1 = x_off + (mv1->x >> 2); |
|
|
|
|
int y_off1 = y_off + (mv1->y >> 2); |
|
|
|
|
int idx = ff_hevc_pel_weight[block_w]; |
|
|
|
|
int idx = hevc_pel_weight[block_w]; |
|
|
|
|
|
|
|
|
|
uint8_t *src0 = ref0->data[0] + y_off0 * src0stride + (int)((unsigned)x_off0 << s->ps.sps->pixel_shift); |
|
|
|
|
uint8_t *src1 = ref1->data[0] + y_off1 * src1stride + (int)((unsigned)x_off1 << s->ps.sps->pixel_shift); |
|
|
|
@ -1658,7 +1658,7 @@ static void chroma_mc_uni(HEVCContext *s, uint8_t *dst0, |
|
|
|
|
const Mv *mv = ¤t_mv->mv[reflist]; |
|
|
|
|
int weight_flag = (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); |
|
|
|
|
int idx = ff_hevc_pel_weight[block_w]; |
|
|
|
|
int idx = hevc_pel_weight[block_w]; |
|
|
|
|
int hshift = s->ps.sps->hshift[1]; |
|
|
|
|
int vshift = s->ps.sps->vshift[1]; |
|
|
|
|
intptr_t mx = av_mod_uintp2(mv->x, 2 + hshift); |
|
|
|
@ -1743,7 +1743,7 @@ static void chroma_mc_bi(HEVCContext *s, uint8_t *dst0, ptrdiff_t dststride, AVF |
|
|
|
|
int y_off0 = y_off + (mv0->y >> (2 + vshift)); |
|
|
|
|
int x_off1 = x_off + (mv1->x >> (2 + hshift)); |
|
|
|
|
int y_off1 = y_off + (mv1->y >> (2 + vshift)); |
|
|
|
|
int idx = ff_hevc_pel_weight[block_w]; |
|
|
|
|
int idx = hevc_pel_weight[block_w]; |
|
|
|
|
src1 += y_off0 * src1stride + (int)((unsigned)x_off0 << s->ps.sps->pixel_shift); |
|
|
|
|
src2 += y_off1 * src2stride + (int)((unsigned)x_off1 << s->ps.sps->pixel_shift); |
|
|
|
|
|
|
|
|
|