ffmpeg | branch: master | Michael Niedermayer <mich...@niedermayer.cc> | Mon Jul 13 22:26:53 2015 +0200| [85b7456efe9c6e6047c849626190f138faa8b42d] | committer: Michael Niedermayer
avcodec/hevc_parser: Fix memleaks in parser mix Found-by: jamrial Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=85b7456efe9c6e6047c849626190f138faa8b42d --- libavcodec/hevc_parser.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libavcodec/hevc_parser.c b/libavcodec/hevc_parser.c index fd879a6..8b23244 100644 --- a/libavcodec/hevc_parser.c +++ b/libavcodec/hevc_parser.c @@ -183,7 +183,7 @@ static inline int parse_nal_units(AVCodecParserContext *s, const uint8_t *buf, GetBitContext *gb; SliceHeader *sh = &h->sh; HEVCParamSets *ps = &h->ps; - HEVCPacket *pkt = &h->pkt; + HEVCPacket *pkt = &ctx->pkt; const uint8_t *buf_end = buf + buf_size; int state = -1, i; HEVCNAL *nal; @@ -420,6 +420,16 @@ static void hevc_parser_close(AVCodecParserContext *s) #if ADVANCED_PARSER HEVCContext *h = &ctx->h; + + for (i = 0; i < FF_ARRAY_ELEMS(h->ps.vps_list); i++) + av_buffer_unref(&h->ps.vps_list[i]); + for (i = 0; i < FF_ARRAY_ELEMS(h->ps.sps_list); i++) + av_buffer_unref(&h->ps.sps_list[i]); + for (i = 0; i < FF_ARRAY_ELEMS(h->ps.pps_list); i++) + av_buffer_unref(&h->ps.pps_list[i]); + + h->ps.sps = NULL; + av_freep(&h->HEVClc); #endif _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog