Преглед изворни кода

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

Follow-up on #365
Paul-Louis Ageneau пре 4 година
родитељ
комит
4f7d7b9515
1 измењених фајлова са 6 додато и 3 уклоњено
  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() {