[FFmpeg-devel] [PATCH] lavc/hevc: Don't parse NAL unit for a dummy buffer

Steven Liu lq at chinaffmpeg.org
Tue Mar 27 11:07:36 EEST 2018



> On 27 Mar 2018, at 15:57, Haihao Xiang <haihao.xiang at intel.com> wrote:
> 
> 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 at intel.com>
> ---
> libavcodec/hevc_parser.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/libavcodec/hevc_parser.c b/libavcodec/hevc_parser.c
> index a468682ed33..228784e946f 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 == 0);
What about use !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;
> -- 
> 2.14.1
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Thanks
Steven







More information about the ffmpeg-devel mailing list