Browse Source

Merge pull request #369 from paullouisageneau/fix-track-setmediahandler-sync

Follow-up on #365
Paul-Louis Ageneau 4 years ago
parent
commit
4f7d7b9515
1 changed files with 6 additions and 3 deletions
  1. 6 3
      src/impl/track.cpp

+ 6 - 3
src/impl/track.cpp

@@ -182,11 +182,14 @@ bool Track::transportSend([[maybe_unused]] message_ptr message) {
 void Track::setMediaHandler(shared_ptr<MediaHandler> handler) {
 	{
 		std::unique_lock lock(mMutex);
-		mMediaHandler = std::move(handler);
+		if (mMediaHandler)
+			mMediaHandler->onOutgoing(nullptr);
+
+		mMediaHandler = handler;
 	}
 
-	if (mMediaHandler)
-		mMediaHandler->onOutgoing(std::bind(&Track::transportSend, this, std::placeholders::_1));
+	if (handler)
+		handler->onOutgoing(std::bind(&Track::transportSend, this, std::placeholders::_1));
 }
 
 shared_ptr<MediaHandler> Track::getMediaHandler() {