diff --git a/src/media/media_decoder.cpp b/src/media/media_decoder.cpp
index 95adbd803af0e934144581801b1cc059cb2ebb38..d4c3fc8ea251039fdbe5245398af1e4e6ab6e209 100644
--- a/src/media/media_decoder.cpp
+++ b/src/media/media_decoder.cpp
@@ -39,9 +39,15 @@
 #include <iostream>
 #include <unistd.h>
 #include <thread> // hardware_concurrency
+#include <chrono>
 
 namespace ring {
 
+// maximum number of packets the jitter buffer can queue
+const unsigned jitterBufferMaxSize_ {5000};
+// maximum time a packet can be queued
+const constexpr auto jitterBufferMaxDelay_ = std::chrono::milliseconds(1500);
+
 MediaDecoder::MediaDecoder() :
     inputCtx_(avformat_alloc_context()),
     startTime_(AV_NOPTS_VALUE)
@@ -88,7 +94,8 @@ int MediaDecoder::openInput(const DeviceParams& params)
 
     // Set jitter buffer options
     av_dict_set(&options_, "reorder_queue_size",ring::to_string(jitterBufferMaxSize_).c_str(), 0);
-    av_dict_set(&options_, "max_delay",ring::to_string(jitterBufferMaxDelay_).c_str(), 0);
+    auto us = std::chrono::duration_cast<std::chrono::microseconds>(jitterBufferMaxDelay_).count();
+    av_dict_set(&options_, "max_delay",ring::to_string(us).c_str(), 0);
 
     if(!params.pixel_format.empty()){
         av_dict_set(&options_, "pixel_format", params.pixel_format.c_str(), 0);
diff --git a/src/media/media_decoder.h b/src/media/media_decoder.h
index f8bf0a15ea98999ddb9920c17764c03f625bcc5c..6d859f19bf047db9f665ae97aeb9cb585738a35d 100644
--- a/src/media/media_decoder.h
+++ b/src/media/media_decoder.h
@@ -118,12 +118,6 @@ class MediaDecoder {
         void extract(const std::map<std::string, std::string>& map, const std::string& key);
         int correctPixFmt(int input_pix_fmt);
 
-        // Jitter buffer options: they are default values set in libav
-        // maximum of packet jitter buffer can queue
-        const unsigned jitterBufferMaxSize_ {1500};
-        // maximum time a packet can be queued (in us)
-        const unsigned jitterBufferMaxDelay_ {1000000};
-
 #ifdef RING_ACCEL
         bool enableAccel_ = true;
         std::unique_ptr<video::HardwareAccel> accel_;
diff --git a/src/security/tls_session.cpp b/src/security/tls_session.cpp
index 423eca605ab5da37a6d35777d134d0ac9296eb55..4a36762def5e70bcd6a396744946b32eda751517 100644
--- a/src/security/tls_session.cpp
+++ b/src/security/tls_session.cpp
@@ -58,7 +58,7 @@ static constexpr uint8_t HEARTBEAT_RETRIES = 1; // Number of tries at each heart
 static constexpr auto HEARTBEAT_RETRANS_TIMEOUT = std::chrono::milliseconds(700); // gnutls heartbeat retransmission timeout for each ping (in milliseconds)
 static constexpr auto HEARTBEAT_TOTAL_TIMEOUT = HEARTBEAT_RETRANS_TIMEOUT * HEARTBEAT_RETRIES; // gnutls heartbeat time limit for heartbeat procedure (in milliseconds)
 static constexpr int MISS_ORDERING_LIMIT = 32; // maximal accepted distance of out-of-order packet (note: must be a signed type)
-static constexpr auto RX_OOO_TIMEOUT = std::chrono::milliseconds(500);
+static constexpr auto RX_OOO_TIMEOUT = std::chrono::milliseconds(1500);
 
 // mtus array to test, do not add mtu over the interface MTU, this will result in false result due to packet fragmentation.
 // also do not set over 16000 this will result in a gnutls error (unexpected packet size)