Browse Source

Merge pull request #885 from paullouisageneau/fix-track-recv-queue

Fix track recv queue filling indefinitely in send only mode
Paul-Louis Ageneau 2 years ago
parent
commit
287dd2afe6
1 changed files with 6 additions and 1 deletions
  1. 6 1
      src/impl/track.cpp

+ 6 - 1
src/impl/track.cpp

@@ -21,7 +21,12 @@ static LogCounter COUNTER_QUEUE_FULL(plog::warning,
 
 
 Track::Track(weak_ptr<PeerConnection> pc, Description::Media description)
 Track::Track(weak_ptr<PeerConnection> pc, Description::Media description)
     : mPeerConnection(pc), mMediaDescription(std::move(description)),
     : mPeerConnection(pc), mMediaDescription(std::move(description)),
-      mRecvQueue(RECV_QUEUE_LIMIT, message_size_func) {}
+      mRecvQueue(RECV_QUEUE_LIMIT, [](const message_ptr &m) { return m->size(); }) {
+
+	// Discard messages by default if track is send only
+	if(mMediaDescription.direction() == Description::Direction::SendOnly)
+		messageCallback = [](message_variant) {};
+}
 
 
 Track::~Track() {
 Track::~Track() {
 	PLOG_VERBOSE << "Destroying Track";
 	PLOG_VERBOSE << "Destroying Track";