|
|
@ -2471,6 +2471,7 @@ static int hevc_frame_start(HEVCContext *s) |
|
|
|
|
|
|
|
|
|
|
|
lc->start_of_tiles_x = 0; |
|
|
|
lc->start_of_tiles_x = 0; |
|
|
|
s->is_decoded = 0; |
|
|
|
s->is_decoded = 0; |
|
|
|
|
|
|
|
s->first_nal_type = s->nal_unit_type; |
|
|
|
|
|
|
|
|
|
|
|
if (s->pps->tiles_enabled_flag) |
|
|
|
if (s->pps->tiles_enabled_flag) |
|
|
|
lc->end_of_tiles_x = s->pps->column_width[0] << s->sps->log2_ctb_size; |
|
|
|
lc->end_of_tiles_x = s->pps->column_width[0] << s->sps->log2_ctb_size; |
|
|
@ -2595,6 +2596,13 @@ static int decode_nal_unit(HEVCContext *s, const uint8_t *nal, int length) |
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (s->nal_unit_type != s->first_nal_type) { |
|
|
|
|
|
|
|
av_log(s->avctx, AV_LOG_ERROR, |
|
|
|
|
|
|
|
"Non-matching NAL types of the VCL NALUs: %d %d\n", |
|
|
|
|
|
|
|
s->first_nal_type, s->nal_unit_type); |
|
|
|
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!s->sh.dependent_slice_segment_flag && |
|
|
|
if (!s->sh.dependent_slice_segment_flag && |
|
|
|
s->sh.slice_type != I_SLICE) { |
|
|
|
s->sh.slice_type != I_SLICE) { |
|
|
|
ret = ff_hevc_slice_rpl(s); |
|
|
|
ret = ff_hevc_slice_rpl(s); |
|
|
|