zapcard: use DAHDI_POLICY_WHEN_FULL for B-channel buffers
This commit is contained in:
parent
9ac675d324
commit
4b47b724ba
|
@ -1120,6 +1120,17 @@ bool ZapDevice::open(unsigned int numbufs, unsigned int bufsize)
|
||||||
break;
|
break;
|
||||||
DDebug(m_owner,DebugAll,"%sBlock size set to %u on channel %u [%p]",
|
DDebug(m_owner,DebugAll,"%sBlock size set to %u on channel %u [%p]",
|
||||||
m_name.safe(),bufsize,m_channel,m_owner);
|
m_name.safe(),bufsize,m_channel,m_owner);
|
||||||
|
|
||||||
|
// B channels can use the WHEN_FULL policy (higher latency, less/no loss)
|
||||||
|
struct dahdi_bufferinfo bi;
|
||||||
|
bi.txbufpolicy = DAHDI_POLICY_WHEN_FULL;
|
||||||
|
bi.rxbufpolicy = DAHDI_POLICY_WHEN_FULL;
|
||||||
|
bi.numbufs = numbufs;
|
||||||
|
bi.bufsize = bufsize;
|
||||||
|
if (ioctl(SetBuffers,&bi))
|
||||||
|
DDebug(m_owner,DebugNote,"%snumbufs=%u bufsize=%u on channel %u [%p]",
|
||||||
|
m_name.safe(),numbufs,bufsize,m_channel,m_owner);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1133,6 +1144,7 @@ bool ZapDevice::open(unsigned int numbufs, unsigned int bufsize)
|
||||||
}
|
}
|
||||||
// Set buffers
|
// Set buffers
|
||||||
struct dahdi_bufferinfo bi;
|
struct dahdi_bufferinfo bi;
|
||||||
|
// D channel needs to be run in IMMEDIATE mode
|
||||||
bi.txbufpolicy = DAHDI_POLICY_IMMEDIATE;
|
bi.txbufpolicy = DAHDI_POLICY_IMMEDIATE;
|
||||||
bi.rxbufpolicy = DAHDI_POLICY_IMMEDIATE;
|
bi.rxbufpolicy = DAHDI_POLICY_IMMEDIATE;
|
||||||
bi.numbufs = numbufs;
|
bi.numbufs = numbufs;
|
||||||
|
@ -1678,7 +1690,7 @@ ZapInterface::ZapInterface(const NamedList& params)
|
||||||
m_device(ZapDevice::DChan,this,0,0),
|
m_device(ZapDevice::DChan,this,0,0),
|
||||||
m_priority(Thread::Normal),
|
m_priority(Thread::Normal),
|
||||||
m_errorMask(255),
|
m_errorMask(255),
|
||||||
m_numbufs(16), m_bufsize(1024), m_buffer(0),
|
m_numbufs(4), m_bufsize(512), m_buffer(0),
|
||||||
m_readOnly(false), m_sendReadOnly(false),
|
m_readOnly(false), m_sendReadOnly(false),
|
||||||
m_notify(0),
|
m_notify(0),
|
||||||
m_timerRxUnder(0)
|
m_timerRxUnder(0)
|
||||||
|
@ -2229,9 +2241,9 @@ ZapCircuit::ZapCircuit(ZapDevice::Type type, unsigned int code, unsigned int cha
|
||||||
tmp = (unsigned int)config.getIntValue("echotrain",defaults.getIntValue("echotrain",400));
|
tmp = (unsigned int)config.getIntValue("echotrain",defaults.getIntValue("echotrain",400));
|
||||||
m_echoTrain = tmp >= 0 ? tmp : 0;
|
m_echoTrain = tmp >= 0 ? tmp : 0;
|
||||||
m_canSend = !getBoolValue("readonly",config,defaults,params);
|
m_canSend = !getBoolValue("readonly",config,defaults,params);
|
||||||
m_buflen = (unsigned int)config.getIntValue("buflen",defaults.getIntValue("buflen",160));
|
m_buflen = (unsigned int)config.getIntValue("buflen",defaults.getIntValue("buflen",128));
|
||||||
if (!m_buflen)
|
if (!m_buflen)
|
||||||
m_buflen = 160;
|
m_buflen = 128;
|
||||||
m_consBufMax = m_buflen * 4;
|
m_consBufMax = m_buflen * 4;
|
||||||
m_sourceBuffer.assign(0,m_buflen);
|
m_sourceBuffer.assign(0,m_buflen);
|
||||||
m_idleValue = defaults.getIntValue("idlevalue",0xff);
|
m_idleValue = defaults.getIntValue("idlevalue",0xff);
|
||||||
|
|
Loading…
Reference in New Issue