diff options
author | James Almer <jamrial@gmail.com> | 2024-10-03 14:35:23 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2024-10-05 14:36:04 -0300 |
commit | 4a098eabf9597f32d637b983f988f46612ae335c (patch) | |
tree | 27993ae2659e92fbfe8cc5b7166b243bc6f9a0b1 | |
parent | 32e34692fb779844a11d7be2d9b6114e93af67a5 (diff) | |
download | ffmpeg-4a098eabf9597f32d637b983f988f46612ae335c.tar.gz |
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>
-rw-r--r-- | libavcodec/hevc/ps.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/hevc/ps.c b/libavcodec/hevc/ps.c index 3fc14c1e72..993c60144f 100644 --- a/libavcodec/hevc/ps.c +++ b/libavcodec/hevc/ps.c @@ -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"); |