lavc/hevcdec: improve check for PPS changing between slices

Compare actual PPS objects rather than just PPS ID, as the former might
change while the latter stays the same.

Reported-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Anton Khirnov 2024-06-26 14:41:41 +02:00
parent 5861576f39
commit e939f02ce6
1 changed files with 1 additions and 1 deletions

View File

@ -603,7 +603,7 @@ static int hls_slice_header(SliceHeader *sh, const HEVCContext *s, GetBitContext
av_log(s->avctx, AV_LOG_ERROR, "PPS id out of range: %d\n", pps_id); av_log(s->avctx, AV_LOG_ERROR, "PPS id out of range: %d\n", pps_id);
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }
if (!sh->first_slice_in_pic_flag && pps_id != sh->pps_id) { if (!sh->first_slice_in_pic_flag && s->ps.pps_list[pps_id] != s->pps) {
av_log(s->avctx, AV_LOG_ERROR, "PPS changed between slices.\n"); av_log(s->avctx, AV_LOG_ERROR, "PPS changed between slices.\n");
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }