|
|
|
@ -93,7 +93,7 @@ int ff_hevc_decode_short_term_rps(HEVCContext *s, ShortTermRPS *rps, |
|
|
|
|
uint8_t delta_rps_sign; |
|
|
|
|
|
|
|
|
|
if (is_slice_header) { |
|
|
|
|
int delta_idx = get_ue_golomb_long(gb) + 1; |
|
|
|
|
unsigned int delta_idx = get_ue_golomb_long(gb) + 1; |
|
|
|
|
if (delta_idx > sps->nb_st_rps) { |
|
|
|
|
av_log(s->avctx, AV_LOG_ERROR, |
|
|
|
|
"Invalid value of delta_idx in slice header RPS: %d > %d.\n", |
|
|
|
@ -244,7 +244,7 @@ static void parse_ptl(HEVCContext *s, PTL *ptl, int max_num_sub_layers) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void decode_sublayer_hrd(HEVCContext *s, int nb_cpb, |
|
|
|
|
static void decode_sublayer_hrd(HEVCContext *s, unsigned int nb_cpb, |
|
|
|
|
int subpic_params_present) |
|
|
|
|
{ |
|
|
|
|
GetBitContext *gb = &s->HEVClc.gb; |
|
|
|
@ -298,7 +298,7 @@ static void decode_hrd(HEVCContext *s, int common_inf_present, |
|
|
|
|
|
|
|
|
|
for (i = 0; i < max_sublayers; i++) { |
|
|
|
|
int low_delay = 0; |
|
|
|
|
int nb_cpb = 1; |
|
|
|
|
unsigned int nb_cpb = 1; |
|
|
|
|
int fixed_rate = get_bits1(gb); |
|
|
|
|
|
|
|
|
|
if (!fixed_rate) |
|
|
|
@ -553,18 +553,18 @@ static int scaling_list_data(HEVCContext *s, ScalingList *sl) |
|
|
|
|
GetBitContext *gb = &s->HEVClc.gb; |
|
|
|
|
uint8_t scaling_list_pred_mode_flag[4][6]; |
|
|
|
|
int32_t scaling_list_dc_coef[2][6]; |
|
|
|
|
int size_id, matrix_id, i, pos, delta; |
|
|
|
|
int size_id, matrix_id, i, pos; |
|
|
|
|
|
|
|
|
|
for (size_id = 0; size_id < 4; size_id++) |
|
|
|
|
for (matrix_id = 0; matrix_id < (size_id == 3 ? 2 : 6); matrix_id++) { |
|
|
|
|
scaling_list_pred_mode_flag[size_id][matrix_id] = get_bits1(gb); |
|
|
|
|
if (!scaling_list_pred_mode_flag[size_id][matrix_id]) { |
|
|
|
|
delta = get_ue_golomb_long(gb); |
|
|
|
|
unsigned int delta = get_ue_golomb_long(gb); |
|
|
|
|
/* Only need to handle non-zero delta. Zero means default,
|
|
|
|
|
* which should already be in the arrays. */ |
|
|
|
|
if (delta) { |
|
|
|
|
// Copy from previous array.
|
|
|
|
|
if (matrix_id - delta < 0) { |
|
|
|
|
if (matrix_id < delta) { |
|
|
|
|
av_log(s->avctx, AV_LOG_ERROR, |
|
|
|
|
"Invalid delta in scaling list data: %d.\n", delta); |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|