avcodec/hevc/ps: print a more accurate message when parsing an SPS for an unsupported layer

With multilayer001.heic:

Before:
[hevc @ ...] Scalability type 2 not supported
[hevc @ ...] Ignoring unsupported VPS extension
[hevc @ ...] The following bit-depths are currently specified: 8, 9, 10 and 12 bits, chroma_format_idc is 0, depth is 0

After:
[hevc @ ...] Scalability type 2 not supported
[hevc @ ...] Ignoring unsupported VPS extension
[hevc @ ...] SPS 1 references an unsupported VPS extension. Ignoring

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2024-10-03 14:35:23 -03:00
parent 32e34692fb
commit 4a098eabf9

View File

@ -1207,6 +1207,12 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id,
if (multi_layer_ext) {
const RepFormat *rf = &sps->vps->rep_format;
if (sps->vps->nb_layers == 1) {
av_log(avctx, AV_LOG_WARNING, "SPS %d references an unsupported VPS extension. Ignoring\n",
*sps_id);
return AVERROR_INVALIDDATA;
}
if (get_bits1(gb) && // update_rep_format_flag
get_bits(gb, 8)) { // sps_rep_format_idx
av_log(avctx, AV_LOG_ERROR, "sps_rep_format_idx!=0\n");