radioInterface{Multi,Resamp}: Fix successful writeSamples() masking underrun from readSamples()
The only who should be setting class instance value "underrun" to false is isUnderrun(). Similar fixes were already applied lately to radioInterface.cpp. Change-Id: I3239b1df4536c080365106b3e4daa523b57f5dff
This commit is contained in:
parent
e2ac20a96e
commit
25383a3610
|
@ -309,6 +309,7 @@ int RadioInterfaceMulti::pullBuffer()
|
|||
/* Send a timestamped chunk to the device */
|
||||
bool RadioInterfaceMulti::pushBuffer()
|
||||
{
|
||||
bool local_underrun;
|
||||
if (sendBuffer[0]->getAvailSegments() <= 0)
|
||||
return false;
|
||||
|
||||
|
@ -341,12 +342,13 @@ bool RadioInterfaceMulti::pushBuffer()
|
|||
|
||||
size_t num = mDevice->writeSamples(convertSendBuffer,
|
||||
outerSendBuffer->size(),
|
||||
&underrun,
|
||||
&local_underrun,
|
||||
writeTimestamp);
|
||||
if (num != outerSendBuffer->size()) {
|
||||
LOG(ALERT) << "Transmit error " << num;
|
||||
}
|
||||
|
||||
underrun |= local_underrun;
|
||||
writeTimestamp += num;
|
||||
|
||||
return true;
|
||||
|
|
|
@ -204,6 +204,7 @@ int RadioInterfaceResamp::pullBuffer()
|
|||
/* Send a timestamped chunk to the device */
|
||||
bool RadioInterfaceResamp::pushBuffer()
|
||||
{
|
||||
bool local_underrun;
|
||||
int rc;
|
||||
size_t numSent;
|
||||
|
||||
|
@ -225,12 +226,13 @@ bool RadioInterfaceResamp::pushBuffer()
|
|||
|
||||
numSent = mDevice->writeSamples(convertSendBuffer,
|
||||
resamp_outchunk,
|
||||
&underrun,
|
||||
&local_underrun,
|
||||
writeTimestamp);
|
||||
if (numSent != resamp_outchunk) {
|
||||
LOG(ALERT) << "Transmit error " << numSent;
|
||||
}
|
||||
|
||||
underrun |= local_underrun;
|
||||
writeTimestamp += resamp_outchunk;
|
||||
|
||||
return true;
|
||||
|
|
Loading…
Reference in New Issue