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