static int hls_transform_unit(HEVCContext *s, int x0, int y0,
int xBase, int yBase, int cb_xBase, int cb_yBase,
int log2_cb_size, int log2_trafo_size,
- int trafo_depth, int blk_idx,
- int cbf_luma, int cbf_cb, int cbf_cr)
+ int blk_idx, int cbf_luma, int cbf_cb, int cbf_cr)
{
HEVCLocalContext *lc = &s->HEVClc;
cbf_luma = ff_hevc_cbf_luma_decode(s, trafo_depth);
ret = hls_transform_unit(s, x0, y0, xBase, yBase, cb_xBase, cb_yBase,
- log2_cb_size, log2_trafo_size, trafo_depth,
+ log2_cb_size, log2_trafo_size,
blk_idx, cbf_luma, cbf_cb, cbf_cr);
if (ret < 0)
return ret;
lc->cu.x = x0;
lc->cu.y = y0;
- lc->cu.rqt_root_cbf = 1;
lc->cu.pred_mode = MODE_INTRA;
lc->cu.part_mode = PART_2Nx2N;
lc->cu.intra_split_flag = 0;
if (s->sh.slice_type != I_SLICE) {
uint8_t skip_flag = ff_hevc_skip_flag_decode(s, x0, y0, x_cb, y_cb);
- lc->cu.pred_mode = MODE_SKIP;
x = y_cb * min_cb_width + x_cb;
for (y = 0; y < length; y++) {
memset(&s->skip_flag[x], skip_flag, length);
}
if (!pcm_flag) {
+ int rqt_root_cbf = 1;
+
if (lc->cu.pred_mode != MODE_INTRA &&
!(lc->cu.part_mode == PART_2Nx2N && lc->pu.merge_flag)) {
- lc->cu.rqt_root_cbf = ff_hevc_no_residual_syntax_flag_decode(s);
+ rqt_root_cbf = ff_hevc_no_residual_syntax_flag_decode(s);
}
- if (lc->cu.rqt_root_cbf) {
+ if (rqt_root_cbf) {
lc->cu.max_trafo_depth = lc->cu.pred_mode == MODE_INTRA ?
s->sps->max_transform_hierarchy_depth_intra + lc->cu.intra_split_flag :
s->sps->max_transform_hierarchy_depth_inter;