summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIp.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/VoIp.cpp b/orkaudio/audiocaptureplugins/voip/VoIp.cpp
index 57ae7a9..573b5f9 100644
--- a/orkaudio/audiocaptureplugins/voip/VoIp.cpp
+++ b/orkaudio/audiocaptureplugins/voip/VoIp.cpp
@@ -351,6 +351,15 @@ void HandlePacket(u_char *param, const struct pcap_pkthdr *header, const u_char
int ipHeaderLength = ipHeader->ip_hl*4;
u_char* ipPacketEnd = (u_char*)ipHeader + ipHeader->ip_len;
+ if(!s_liveCapture)
+ {
+ // This is a pcap file replay, make sure Orkaudio won't be flooded by too many
+ // packets at a time by yielding control to other threads.
+ ACE_Time_Value yield;
+ yield.set(0,1); // 1 us
+ ACE_OS::sleep(yield);
+ }
+
if(ipHeader->ip_p == IPPROTO_UDP)
{
UdpHeaderStruct* udpHeader = (UdpHeaderStruct*)((char *)ipHeader + ipHeaderLength);