r3438 - in trunk/libminisip: include/libminisip/media source/subsystem_media

erik at minisip.org erik at minisip.org
Fri Oct 19 10:07:12 CEST 2007


Author: erik
Date: 2007-10-19 10:07:12 +0200 (Fri, 19 Oct 2007)
New Revision: 3438

Modified:
   trunk/libminisip/include/libminisip/media/AudioMedia.h
   trunk/libminisip/source/subsystem_media/AudioMedia.cxx
Log:

 * Initalize an audio buffer to silence.
   The buffer may be used by the audio forwarding before any data has
   been decoded into that buffer.



Modified: trunk/libminisip/include/libminisip/media/AudioMedia.h
===================================================================
--- trunk/libminisip/include/libminisip/media/AudioMedia.h	2007-10-19 07:29:55 UTC (rev 3437)
+++ trunk/libminisip/include/libminisip/media/AudioMedia.h	2007-10-19 08:07:12 UTC (rev 3438)
@@ -40,6 +40,8 @@
 class SilenceSensor;
 class Resampler;
 
+#define AUDIOMEDIA_CODEC_MAXLEN 16384
+
 /**
  * The AudioMedia class holds the object required to acquire and
  * play out audio data. It is created upon startup, or when the
@@ -195,7 +197,7 @@
 	protected:
 		std::list< MRef<CodecState *> > codecs;
 		MRef<Media *> media;
-		short codecOutput[16384];
+		short codecOutput[AUDIOMEDIA_CODEC_MAXLEN];
 		uint32_t ssrc;
 
 };

Modified: trunk/libminisip/source/subsystem_media/AudioMedia.cxx
===================================================================
--- trunk/libminisip/source/subsystem_media/AudioMedia.cxx	2007-10-19 07:29:55 UTC (rev 3437)
+++ trunk/libminisip/source/subsystem_media/AudioMedia.cxx	2007-10-19 08:07:12 UTC (rev 3438)
@@ -239,7 +239,7 @@
 			// TODO: Copying the last received audio is not the
 			// optimal thing to do. We should have a jitter
 			// buffer that handled re-ordered packets and such.
-			if (audioForwarding){
+			if (/*audioForwarding*/true){
 				std::list< MRef<AudioMediaSource *> >::iterator iSource;
 				for( iSource = sources.begin(); iSource != sources.end(); iSource ++ ){
 					if ( (*iSource)->getCallId()!= (*i)->getCallId() ){
@@ -305,6 +305,11 @@
 	media(m),
 	ssrc(ssrc_)
 {
+	//The codec output might be mixed into outgoing streams
+	//any data has been decoded. We therefore initialize it
+	//to silence.
+	for (int i=0; i<AUDIOMEDIA_CODEC_MAXLEN; i++)
+		codecOutput[i]=0;
 }
 
 void AudioMediaSource::playData( MRef<RtpPacket *> rtpPacket ){



More information about the Minisip-devel mailing list