ffmpeg | branch: master | Michael Niedermayer <michae...@gmx.at> | Mon Apr 6 18:18:41 2015 +0200| [7ddbb4e23a4d591ab35594418fa250cc54c8df58] | committer: Michael Niedermayer
avcodec/pthread_frame: Fix memleak with frame threads and allocated AVOptions Signed-off-by: Michael Niedermayer <michae...@gmx.at> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7ddbb4e23a4d591ab35594418fa250cc54c8df58 --- libavcodec/pthread_frame.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c index 5a4ab84..e809905 100644 --- a/libavcodec/pthread_frame.c +++ b/libavcodec/pthread_frame.c @@ -48,6 +48,7 @@ #include "libavutil/internal.h" #include "libavutil/log.h" #include "libavutil/mem.h" +#include "libavutil/opt.h" /** * Context used by codec threads and stored in their AVCodecInternal thread_ctx. @@ -574,8 +575,6 @@ void ff_frame_thread_free(AVCodecContext *avctx, int thread_count) if (codec->close) codec->close(p->avctx); - avctx->codec = NULL; - release_delayed_buffers(p); av_frame_free(&p->frame); } @@ -603,6 +602,10 @@ void ff_frame_thread_free(AVCodecContext *avctx, int thread_count) av_freep(&fctx->threads); pthread_mutex_destroy(&fctx->buffer_mutex); av_freep(&avctx->internal->thread_ctx); + + if (avctx->priv_data && avctx->codec && avctx->codec->priv_class) + av_opt_free(avctx->priv_data); + avctx->codec = NULL; } int ff_frame_thread_init(AVCodecContext *avctx) _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog