@@ -75,7 +75,7 @@ static int hevc_parse_slice_header(AVCodecParserContext *s, H2645NAL *nal,
pps_id = get_ue_golomb(gb);
if (pps_id >= HEVC_MAX_PPS_COUNT || !ps->pps_list[pps_id]) {
- av_log(avctx, AV_LOG_ERROR, "PPS id out of range: %d\n", pps_id);
+ av_log(avctx, AV_LOG_ERROR, "PPS id out of range or empty pps_list[%d]: %d\n", pps_id, pps_id);
return AVERROR_INVALIDDATA;
}
ps->pps = (HEVCPPS*)ps->pps_list[pps_id]->data;
@@ -554,7 +554,7 @@ static int hls_slice_header(HEVCContext *s)
sh->pps_id = get_ue_golomb_long(gb);
if (sh->pps_id >= HEVC_MAX_PPS_COUNT || !s->ps.pps_list[sh->pps_id]) {
- av_log(s->avctx, AV_LOG_ERROR, "PPS id out of range: %d\n", sh->pps_id);
+ av_log(s->avctx, AV_LOG_ERROR, "PPS id out of range or empty pps_list[%d]: %d\n", sh->pps_id, sh->pps_id);
return AVERROR_INVALIDDATA;
}
if (!sh->first_slice_in_pic_flag &&
There are 3 functions reporting the same log, which is not straight forward enough for users: - hevc_parse_slice_header() - ff_hevc_decode_nal_pps() - hls_slice_header() Provide detailed logs to distinguish from "out of range PPS id" and "empty pps_list[pps_id]". Before: PPS id out of range: 0 After: PPS id out of range or empty pps_list[0]: 0 Since 0 is within the range of pps_id, it's more clear that there is an invalid pps_list. Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com> --- libavcodec/hevc_parser.c | 2 +- libavcodec/hevcdec.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)