r3269 - trunk/libminisip/source/subsystem_media

svn at minisip.org svn at minisip.org
Wed May 9 13:59:11 CEST 2007


Author: erik
Date: 2007-05-08 15:27:54 +0200 (Tue, 08 May 2007)
New Revision: 3269

Modified:
   trunk/libminisip/source/subsystem_media/AudioMedia.cxx
Log:

 * Bug fix: Check so that a MediaSender is not added more than once to
   	AudioMedia.

	If more than one SDP packet was received in a session, then 
	MediaSender::start() was called multiple times, and the MediaSender
	was added for each SDP. The result was that each frame was sent
	twice (two different RTPs where the sequence number was increased
	for each packet).



Modified: trunk/libminisip/source/subsystem_media/AudioMedia.cxx
===================================================================
--- trunk/libminisip/source/subsystem_media/AudioMedia.cxx	2007-05-03 13:50:10 UTC (rev 3268)
+++ trunk/libminisip/source/subsystem_media/AudioMedia.cxx	2007-05-08 13:27:54 UTC (rev 3269)
@@ -104,7 +104,15 @@
 		sendersLock.lock();
 	}
 
-	senders.push_back( sender );
+	//Don't add if it's already in the list. This is so that we support
+	//multiple calls to MediaStream::start().
+	bool found=false;
+	list<MRef<MediaStreamSender *> >::iterator i;
+	for (i=senders.begin(); i!=senders.end(); i++)
+		if ( *i == sender)
+			found = true;
+	if (!found)
+		senders.push_back( sender );
 	sendersLock.unlock();
 }
 



More information about the Minisip-devel mailing list