|
|
|
@@ -990,16 +990,19 @@ static av_always_inline int coeff_abs_level_remaining_decode(HEVCContext *s, int |
|
|
|
|
|
|
|
while (prefix < CABAC_MAX_BIN && get_cabac_bypass(&s->HEVClc->cc)) |
|
|
|
prefix++; |
|
|
|
if (prefix == CABAC_MAX_BIN) { |
|
|
|
av_log(s->avctx, AV_LOG_ERROR, "CABAC_MAX_BIN : %d\n", prefix); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
if (prefix < 3) { |
|
|
|
for (i = 0; i < rc_rice_param; i++) |
|
|
|
suffix = (suffix << 1) | get_cabac_bypass(&s->HEVClc->cc); |
|
|
|
last_coeff_abs_level_remaining = (prefix << rc_rice_param) + suffix; |
|
|
|
} else { |
|
|
|
int prefix_minus3 = prefix - 3; |
|
|
|
|
|
|
|
if (prefix == CABAC_MAX_BIN) { |
|
|
|
av_log(s->avctx, AV_LOG_ERROR, "CABAC_MAX_BIN : %d\n", prefix); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
for (i = 0; i < prefix_minus3 + rc_rice_param; i++) |
|
|
|
suffix = (suffix << 1) | get_cabac_bypass(&s->HEVClc->cc); |
|
|
|
last_coeff_abs_level_remaining = (((1 << prefix_minus3) + 3 - 1) |
|
|
|
|