diff --git a/libavcodec/hevc_parser.c b/libavcodec/hevc_parser.c index a468682ed3..01418b276d 100644 --- a/libavcodec/hevc_parser.c +++ b/libavcodec/hevc_parser.c @@ -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;