From 39c656f24c5f67db367bb8a77beb6339e5c960a5 Mon Sep 17 00:00:00 2001 From: Alexandre Savard <alexandre.savard@savoirfairelinux.com> Date: Mon, 1 Nov 2010 12:11:10 -0400 Subject: [PATCH] [#4367] Reduce packet receive/sent timeout --- .../src/audio/audiortp/AudioRtpRecordHandler.h | 4 ++-- .../src/audio/audiortp/AudioRtpSession.cpp | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.h b/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.h index 6a92ab5b25..28ce2ed088 100644 --- a/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.h +++ b/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.h @@ -47,8 +47,8 @@ namespace sfl // Factor use to increase volume in fade in #define FADEIN_STEP_SIZE 4; -static const int schedulingTimeout = 100000; -static const int expireTimeout = 1000000; +static const int schedulingTimeout = 10000; +static const int expireTimeout = 100000; class AudioRtpSessionException: public std::exception { diff --git a/sflphone-common/src/audio/audiortp/AudioRtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioRtpSession.cpp index e12142b5b0..fbe0079f6d 100644 --- a/sflphone-common/src/audio/audiortp/AudioRtpSession.cpp +++ b/sflphone-common/src/audio/audiortp/AudioRtpSession.cpp @@ -72,7 +72,7 @@ AudioRtpSession::AudioRtpSession (ManagerImpl * manager, SIPCall * sipcall) : // static_cast<ost::DualRTPUDPIPv4Channel>(dso)->sendSocket->setTypeOfService(ost::Socket::tosLowDelay); // static_cast<ost::DualRTPChannel<ost::DualRTPUDPIPv4Channel> >(dso)->sendSocket->setTypeOfService(ost::Socket::tosLowDelay); - setTypeOfService(tosEnhanced); + // setTypeOfService(tosEnhanced); } AudioRtpSession::~AudioRtpSession() @@ -261,6 +261,7 @@ void AudioRtpSession::sendMicData() // putData put the data on RTP queue, sendImmediate bypass this queue putData (_timestamp, getMicDataEncoded(), compSize); + // sendData() } @@ -347,10 +348,12 @@ void AudioRtpSession::run () uint32 timeout = 0; while ( isActive() ) { - if ( timeout < 100 ){ // !(timeout/1000) + if ( timeout < 1000 ){ // !(timeout/1000) timeout = getSchedulingTimeout(); } + // timeout = ; + _manager->getAudioLayerMutex()->enter(); // Send session @@ -360,6 +363,8 @@ void AudioRtpSession::run () sendMicData (); } + receiveSpeakerData(); + // This also should be moved notifyIncomingCall(); @@ -373,14 +378,17 @@ void AudioRtpSession::run () // make sure the scheduling timeout is // <= the check interval for RTCP // packets + _debug("timeout before: %d, maxwait %d", timeout, maxWait); timeout = (timeout > maxWait)? maxWait : timeout; - if ( timeout < 100 ) { // !(timeout/1000) + _debug("timeout after: %d", timeout); + + if ( timeout < 1000 ) { // !(timeout/1000) setCancel(cancelDeferred); dispatchDataPacket(); setCancel(cancelImmediate); timerTick(); } else { - if ( isPendingData(timeout/100) ) { + if ( isPendingData(timeout/1000) ) { setCancel(cancelDeferred); if (isActive()) { // take in only if active takeInDataPacket(); @@ -389,8 +397,6 @@ void AudioRtpSession::run () } timeout = 0; } - - receiveSpeakerData(); } _debug ("AudioRtpSession: Left main loop for call %s", _ca->getCallId().c_str()); -- GitLab