From 2e0fde378374b3683c7ae7d69643574008845068 Mon Sep 17 00:00:00 2001 From: Valentin NOEL Date: Wed, 27 Apr 2022 12:59:11 +0200 Subject: [PATCH 1/2] Fix: video filters support and audio filters memory leak Free video filters data at each process loop, but skip audio filters data frame. Improvement of be100b807eef11ce5de1e51cfd29047d1d93de64 fix --- src/AvTranscoder/transcoder/StreamTranscoder.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/AvTranscoder/transcoder/StreamTranscoder.cpp b/src/AvTranscoder/transcoder/StreamTranscoder.cpp index af92b5d4..0882144b 100644 --- a/src/AvTranscoder/transcoder/StreamTranscoder.cpp +++ b/src/AvTranscoder/transcoder/StreamTranscoder.cpp @@ -751,12 +751,6 @@ IOutputStream::EWrappingStatus StreamTranscoder::processTranscode() _transformedData->allocateData(); } } - else if(_filterGraph->hasFilters()) - { - LOG_DEBUG("Free filtered data") // filled from filter graph sink - av_frame_unref(&_filteredData->getAVFrame()); - _filteredData->freeData(); - } // Check decoding status bool continueProcess = true; @@ -811,6 +805,15 @@ IOutputStream::EWrappingStatus StreamTranscoder::processTranscode() LOG_DEBUG("Encode") _outputEncoder->encodeFrame(*_transformedData, data); + if(_filterGraph->hasFilters()) + { + LOG_DEBUG("Free filtered data") // filled from filter graph sink + if (_filteredData->isVideoFrame()) { + // Do not unref filter audio frame, to avoid reallocating it each time + av_frame_unref(&_filteredData->getAVFrame()); + } + _filteredData->freeData(); + } } else { From 40b5e9debc172f1976dc2c61ee2149b315a2ec88 Mon Sep 17 00:00:00 2001 From: Valentin NOEL Date: Wed, 27 Apr 2022 12:59:59 +0200 Subject: [PATCH 2/2] Bump version to 0.15.5 --- src/AvTranscoder/common.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/AvTranscoder/common.hpp b/src/AvTranscoder/common.hpp index 5b809c60..bfd80899 100644 --- a/src/AvTranscoder/common.hpp +++ b/src/AvTranscoder/common.hpp @@ -3,7 +3,7 @@ #define AVTRANSCODER_VERSION_MAJOR 0 #define AVTRANSCODER_VERSION_MINOR 15 -#define AVTRANSCODER_VERSION_MICRO 4 +#define AVTRANSCODER_VERSION_MICRO 5 #include