diff --git a/src/client/videomanager.cpp b/src/client/videomanager.cpp
index a0a93751e7b895df076994b478834f8a07910e32..556fa81388699feff5cfd2235cd8c3f30650d45b 100644
--- a/src/client/videomanager.cpp
+++ b/src/client/videomanager.cpp
@@ -362,7 +362,7 @@ startLocalRecorder(const bool& audioOnly, const std::string& filepath)
 
     try {
         ring::LocalRecorderManager::instance().insertRecorder(path, std::move(rec));
-    } catch (std::invalid_argument) {
+    } catch (const std::invalid_argument&) {
         return "";
     }
 
diff --git a/src/media/audio/audio_input.cpp b/src/media/audio/audio_input.cpp
index 268fb392b75d0985285fedebb01d9327bc530d00..4a6409f16b8994ea609470f7d5bd78bab2c6e956 100644
--- a/src/media/audio/audio_input.cpp
+++ b/src/media/audio/audio_input.cpp
@@ -120,8 +120,6 @@ AudioInput::readFromFile()
 
     auto frame = std::make_unique<AudioFrame>();
     const auto ret = decoder_->decode(*frame);
-    const auto inFmt = AudioFormat((unsigned)frame->pointer()->sample_rate, (unsigned)frame->pointer()->channels, (AVSampleFormat)frame->pointer()->format);
-
     switch(ret) {
     case MediaDecoder::Status::ReadError:
     case MediaDecoder::Status::DecodeError:
diff --git a/src/media/audio/jack/jacklayer.cpp b/src/media/audio/jack/jacklayer.cpp
index 78a97d24f47d7e8390cbe8f5fc0e9a1d3374f603..05a95473849c611246cb96052c7e438445e1ef02 100644
--- a/src/media/audio/jack/jacklayer.cpp
+++ b/src/media/audio/jack/jacklayer.cpp
@@ -231,7 +231,7 @@ JackLayer::JackLayer(const AudioPreference &p) :
     const auto playRate = jack_get_sample_rate(playbackClient_);
     const auto captureRate = jack_get_sample_rate(captureClient_);
 
-    audioInputFormat_ = {captureRate, in_ringbuffers_.size()};
+    audioInputFormat_ = {captureRate, (unsigned)in_ringbuffers_.size()};
     hardwareFormatAvailable(AudioFormat(playRate, out_ringbuffers_.size()));
     hardwareInputFormatAvailable(audioInputFormat_);
     jack_on_shutdown(playbackClient_, onShutdown, this);
diff --git a/src/media/audio/ringbuffer.cpp b/src/media/audio/ringbuffer.cpp
index 137549275baad38207fa90629b7c29a468889cf4..b6887794534155656f0fbc034cced0ed771569fc 100644
--- a/src/media/audio/ringbuffer.cpp
+++ b/src/media/audio/ringbuffer.cpp
@@ -39,13 +39,13 @@ namespace ring {
 // corresponds to 160 ms (about 5 rtp packets)
 static const size_t MIN_BUFFER_SIZE = 1024;
 
-RingBuffer::RingBuffer(const std::string& rbuf_id, size_t size, AudioFormat format)
+RingBuffer::RingBuffer(const std::string& rbuf_id, size_t /*size*/, AudioFormat format)
     : id(rbuf_id)
     , endPos_(0)
+    , format_(format)
     , lock_()
     , not_empty_()
     , readoffsets_()
-    , format_(format)
     , resizer_(format_, format_.sample_rate / 50, [this](std::shared_ptr<AudioFrame>&& frame){
         putToBuffer(std::move(frame));
     })
@@ -121,7 +121,7 @@ RingBuffer::createReadOffset(const std::string &call_id)
 {
     std::lock_guard<std::mutex> l(lock_);
     if (!hasThisReadOffset(call_id))
-        readoffsets_.emplace(call_id, ReadOffset {endPos_});
+        readoffsets_.emplace(call_id, ReadOffset {endPos_, {}});
 }
 
 
diff --git a/src/media/audio/ringbufferpool.cpp b/src/media/audio/ringbufferpool.cpp
index ef01ce3f941336a80332e8cc297a4cdc61d1ec52..0fd4ab98b21b60be078ff2a1d12d823c8076e3fb 100644
--- a/src/media/audio/ringbufferpool.cpp
+++ b/src/media/audio/ringbufferpool.cpp
@@ -271,7 +271,6 @@ RingBufferPool::getData(const std::string& call_id)
     if (bindings->size() == 1)
         return (*bindings->cbegin())->get(call_id);
 
-    size_t size = 0;
     auto mixBuffer = std::make_unique<AudioFrame>(internalAudioFormat_);
     for (const auto& rbuf : *bindings) {
         if (auto b = rbuf->get(call_id)) {
diff --git a/src/media/media_filter.cpp b/src/media/media_filter.cpp
index 8bc730e65cea38c8e0631a27cf9ef55921bdda01..d0cfc252464c107389213dde54e7b6f5992c753d 100644
--- a/src/media/media_filter.cpp
+++ b/src/media/media_filter.cpp
@@ -216,8 +216,12 @@ MediaFilter::readOutput()
 void
 MediaFilter::flush()
 {
-    for (size_t i = 0; i < inputs_.size(); ++i)
-        av_buffersrc_add_frame_flags(inputs_[i], nullptr, 0);
+    for (size_t i = 0; i < inputs_.size(); ++i) {
+        int ret = av_buffersrc_add_frame_flags(inputs_[i], nullptr, 0);
+        if (ret < 0) {
+            RING_ERR() << "Failed to flush filter '" << inputParams_[i].name << "': " << libav_utils::getError(ret);
+        }
+    }
 }
 
 int