public uint SetKeepAlive(uint keepAlive)
{
lock (m_lock)
{
if (keepAlive > 0)
{
uint sampleTime = ActualBufferTime;
uint ratio = (uint)Math.Truncate(((double)keepAlive)/sampleTime);
keepAlive = Math.Max(sampleTime*ratio, sampleTime);
}
KeepAlive = keepAlive;
m_keepAliveCount = 1;
}
return KeepAlive;
}