........
r1197 | jaroslavl1 | 2009-01-20 00:30:10 +0100 (Tue, 20 Jan 2009) | 1 line
Switched to synchronous Port audio streams. This will avoid usage of
callbacks, which need too long buffers to work correctly due to OS. This
should reduce latency on input by 80ms, and by the same amount on output
when using local audio.
........
r1198 | jaroslavl1 | 2009-01-20 00:49:05 +0100 (Tue, 20 Jan 2009) | 1 line
Fixed calculations of latency in estimateEchoQueueLatency, since we now
use synchronous stream latency has been reduced.
........
http://code.google.com/p/sipxtapi/source/detail?r=1412
Modified:
/branches/sipxtapi-3.2.1
/branches/sipxtapi-3.2.1/sipXmediaLib/src/mp/MpAudioDriverManager.cpp
/branches/sipxtapi-3.2.1/sipXmediaLib/src/mp/MpCallFlowGraph.cpp
/branches/sipxtapi-3.2.1/sipXmediaLib/src/mp/MprFromMic.cpp
/branches/sipxtapi-3.2.1/sipXmediaLib/src/mp/MprToSpkr.cpp
=======================================
--- /branches/sipxtapi-3.2.1/sipXmediaLib/src/mp/MpAudioDriverManager.cpp
Wed Oct 22 12:27:37 2008
+++ /branches/sipxtapi-3.2.1/sipXmediaLib/src/mp/MpAudioDriverManager.cpp
Sat Jan 15 06:35:26 2011
@@ -162,7 +162,7 @@
MpMisc.m_audioSampleRate,
MpMisc.m_audioSamplesPerFrame,
MP_AUDIO_STREAM_CLIPOFF,
- FALSE);
+ TRUE);
if (res != OS_SUCCESS)
{
return OS_FAILED;
@@ -243,7 +243,7 @@
MpMisc.m_audioSampleRate,
MpMisc.m_audioSamplesPerFrame,
MP_AUDIO_STREAM_CLIPOFF,
- FALSE);
+ TRUE);
if (res != OS_SUCCESS)
{
return OS_FAILED;
@@ -306,7 +306,7 @@
MpMisc.m_audioSampleRate,
MpMisc.m_audioSamplesPerFrame,
MP_AUDIO_STREAM_CLIPOFF,
- FALSE);
+ TRUE);
if (res != OS_SUCCESS)
{
return OS_FAILED;
@@ -388,7 +388,7 @@
MpMisc.m_audioSampleRate,
MpMisc.m_audioSamplesPerFrame,
MP_AUDIO_STREAM_CLIPOFF,
- FALSE);
+ TRUE);
if (res != OS_SUCCESS)
{
return OS_FAILED;
@@ -805,7 +805,7 @@
MpMisc.m_audioSampleRate,
MpMisc.m_audioSamplesPerFrame,
MP_AUDIO_STREAM_CLIPOFF,
- FALSE);
+ TRUE);
// open asynchronous output stream
m_pAudioDriver->openStream(&m_outputAudioStream,
@@ -814,7 +814,7 @@
MpMisc.m_audioSampleRate,
MpMisc.m_audioSamplesPerFrame,
MP_AUDIO_STREAM_CLIPOFF,
- FALSE);
+ TRUE);
m_pAudioDriver->startStream(m_inputAudioStream);
m_pAudioDriver->startStream(m_outputAudioStream);
=======================================
--- /branches/sipxtapi-3.2.1/sipXmediaLib/src/mp/MpCallFlowGraph.cpp Wed
Oct 22 11:32:45 2008
+++ /branches/sipxtapi-3.2.1/sipXmediaLib/src/mp/MpCallFlowGraph.cpp Sat
Jan 15 06:35:26 2011
@@ -1843,12 +1843,11 @@
/* //////////////////////////// PRIVATE
/////////////////////////////////// */
int MpCallFlowGraph::estimateEchoQueueLatency(int samplesPerSec,int
samplesPerFrame)
{
-#define BASE_STREAM_LATENCY 16
#define MIN_DRIVER_LATENCY 4
#ifndef DISABLE_LOCAL_AUDIO
MpAudioDriverManager* pAudioManager =
MpAudioDriverManager::getInstance();
- int echoQueueLatency = BASE_STREAM_LATENCY;
+ int echoQueueLatency = 0;
if (pAudioManager)
{
=======================================
--- /branches/sipxtapi-3.2.1/sipXmediaLib/src/mp/MprFromMic.cpp Wed Oct 22
11:32:45 2008
+++ /branches/sipxtapi-3.2.1/sipXmediaLib/src/mp/MprFromMic.cpp Sat Jan 15
06:35:26 2011
@@ -108,7 +108,7 @@
{
micFrame->setSamplesNumber(MpMisc.m_audioSamplesPerFrame);
- OsStatus res = pAudioDriver->readStreamAsync(streamId,
+ OsStatus res = pAudioDriver->readStreamSync(streamId,
micFrame->getSamplesWritePtr(),
MpMisc.m_audioSamplesPerFrame);
=======================================
--- /branches/sipxtapi-3.2.1/sipXmediaLib/src/mp/MprToSpkr.cpp Wed Oct 22
11:32:45 2008
+++ /branches/sipxtapi-3.2.1/sipXmediaLib/src/mp/MprToSpkr.cpp Sat Jan 15
06:35:26 2011
@@ -92,7 +92,7 @@
MpAudioDriverBase* pAudioDriver = pAudioManager->getAudioDriver();
if (streamId && pAudioDriver)
{
- pAudioDriver->writeStreamAsync(streamId, shpSamples, iLength);
+ pAudioDriver->writeStreamSync(streamId, shpSamples, iLength);
}
}