From 6aaf79f72d0267b840ff951ca47149865fb820d8 Mon Sep 17 00:00:00 2001 From: philippegorley <philippe.gorley@savoirfairelinux.com> Date: Wed, 22 Aug 2018 15:34:54 -0400 Subject: [PATCH] media: fix memory leaks avcodec_close leaks memory, while avcodec_free_context doesn't. FFmpeg documentation specifies not to use avcodec_close, as opening and closing a context multiple times is no longer supported. Change-Id: I230891f2510c355b9d44d918dcf387399d79a8aa Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com> --- src/media/media_decoder.cpp | 2 +- src/media/media_encoder.cpp | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/media/media_decoder.cpp b/src/media/media_decoder.cpp index fd09f52e3f..bbd39a6aa4 100644 --- a/src/media/media_decoder.cpp +++ b/src/media/media_decoder.cpp @@ -64,7 +64,7 @@ MediaDecoder::~MediaDecoder() av_buffer_unref(&decoderCtx_->hw_device_ctx); #endif if (decoderCtx_) - avcodec_close(decoderCtx_); + avcodec_free_context(&decoderCtx_); if (inputCtx_) avformat_close_input(&inputCtx_); diff --git a/src/media/media_encoder.cpp b/src/media/media_encoder.cpp index acf052b6c9..69155b9e6b 100644 --- a/src/media/media_encoder.cpp +++ b/src/media/media_encoder.cpp @@ -54,8 +54,7 @@ MediaEncoder::~MediaEncoder() av_write_trailer(outputCtx_); for (auto encoderCtx : encoders_) - if (encoderCtx) - avcodec_close(encoderCtx); + avcodec_free_context(&encoderCtx); avformat_free_context(outputCtx_); } -- GitLab