hevc/sei: return INVALIDDATA when a referenced SPS is not available

The code previously returned ENOMEM, despite this not being an
allocation problem, but rather a bitstream problem referring to data not
currently available.

Fixes playback of such streams, as it allows further processing of NAL
units after skipping the broken SEI NAL.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
Hendrik Leppkes 2024-08-30 12:55:38 +02:00 committed by Paul B Mahol
parent 96586b0cc4
commit 8d73a20142

View File

@ -56,7 +56,7 @@ static int decode_nal_sei_pic_timing(HEVCSEI *s, GetBitContext *gb,
const HEVCSPS *sps = ps->sps_list[s->active_seq_parameter_set_id]; const HEVCSPS *sps = ps->sps_list[s->active_seq_parameter_set_id];
if (!sps) if (!sps)
return(AVERROR(ENOMEM)); return AVERROR_INVALIDDATA;
if (sps->vui.frame_field_info_present_flag) { if (sps->vui.frame_field_info_present_flag) {
int pic_struct = get_bits(gb, 4); int pic_struct = get_bits(gb, 4);