Message ID | 20180327075740.20517-1-haihao.xiang@intel.com |
---|---|
State | Accepted |
Headers | show |
> On 27 Mar 2018, at 15:57, Haihao Xiang <haihao.xiang@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@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@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel Thanks Steven
> > On 27 Mar 2018, at 15:57, Haihao Xiang <haihao.xiang@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@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 Thanks, I will update the patch to 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@ffmpeg.org > > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > Thanks > Steven > > > > >
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); + 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;
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> --- libavcodec/hevc_parser.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)