It can't be higher than vps_max_sub_layers. Signed-off-by: James Almer <jamr...@gmail.com> --- libavcodec/hevc/ps.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/libavcodec/hevc/ps.c b/libavcodec/hevc/ps.c index 993c60144f..bd01f63956 100644 --- a/libavcodec/hevc/ps.c +++ b/libavcodec/hevc/ps.c @@ -1172,17 +1172,16 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id, } sps->vps = ff_refstruct_ref_c(vps_list[sps->vps_id]); } + if (!sps->vps) + return AVERROR(EINVAL); sps->max_sub_layers = get_bits(gb, 3) + 1; multi_layer_ext = nuh_layer_id > 0 && sps->max_sub_layers == HEVC_MAX_SUB_LAYERS + 1; - if (multi_layer_ext) { - if (!sps->vps) - return AVERROR(EINVAL); - + if (multi_layer_ext) sps->max_sub_layers = sps->vps->vps_max_sub_layers; - } - if (sps->max_sub_layers > HEVC_MAX_SUB_LAYERS) { + + if (sps->max_sub_layers > sps->vps->vps_max_sub_layers) { av_log(avctx, AV_LOG_ERROR, "sps_max_sub_layers out of range: %d\n", sps->max_sub_layers); return AVERROR_INVALIDDATA; -- 2.46.2 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".