lavc/hevc: Don't parse NAL unit for a dummy buffer

hevc parser mistakenly reports the following message if a dummy buffer
is padded for EOF

   [hevc @ 0x559b63848610] missing picture in access unit

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Reviewed-by: "Li, Zhong" <zhong.li@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Haihao Xiang 2018-03-30 10:42:32 +08:00 committed by Michael Niedermayer
parent b577153231
commit 4c14a25281
1 changed files with 6 additions and 1 deletions

View File

@ -294,6 +294,8 @@ static int hevc_parse(AVCodecParserContext *s, AVCodecContext *avctx,
int next;
HEVCParserContext *ctx = s->priv_data;
ParseContext *pc = &ctx->pc;
int is_dummy_buf = !buf_size;
const uint8_t *dummy_buf = buf;
if (avctx->extradata && !ctx->parsed_extradata) {
ff_hevc_decode_extradata(avctx->extradata, avctx->extradata_size, &ctx->ps, &ctx->sei,
@ -313,7 +315,10 @@ static int hevc_parse(AVCodecParserContext *s, AVCodecContext *avctx,
}
}
parse_nal_units(s, buf, buf_size, avctx);
is_dummy_buf = (is_dummy_buf && (dummy_buf == buf));
if (!is_dummy_buf)
parse_nal_units(s, buf, buf_size, avctx);
*poutbuf = buf;
*poutbuf_size = buf_size;