mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-27 02:09:14 -05:00
SDRdaemonFEC support. allow for smaller datagrams than the UDP block size
This commit is contained in:
parent
83e34fde20
commit
6540979108
@ -127,8 +127,6 @@ void SDRdaemonFECBuffer::initDecodeSlot(int slotIndex)
|
|||||||
|
|
||||||
void SDRdaemonFECBuffer::writeData(char *array, uint32_t length)
|
void SDRdaemonFECBuffer::writeData(char *array, uint32_t length)
|
||||||
{
|
{
|
||||||
assert(length == m_udpPayloadSize);
|
|
||||||
|
|
||||||
SuperBlock *superBlock = (SuperBlock *) array;
|
SuperBlock *superBlock = (SuperBlock *) array;
|
||||||
int frameIndex = superBlock->header.frameIndex;
|
int frameIndex = superBlock->header.frameIndex;
|
||||||
int decoderIndex = frameIndex % nbDecoderSlots;
|
int decoderIndex = frameIndex % nbDecoderSlots;
|
||||||
|
@ -129,13 +129,16 @@ void SDRdaemonFECUDPHandler::configureUDPLink(const QString& address, quint16 po
|
|||||||
|
|
||||||
void SDRdaemonFECUDPHandler::dataReadyRead()
|
void SDRdaemonFECUDPHandler::dataReadyRead()
|
||||||
{
|
{
|
||||||
|
m_udpReadBytes = 0;
|
||||||
|
|
||||||
while (m_dataSocket->hasPendingDatagrams())
|
while (m_dataSocket->hasPendingDatagrams())
|
||||||
{
|
{
|
||||||
qint64 pendingDataSize = m_dataSocket->pendingDatagramSize();
|
qint64 pendingDataSize = m_dataSocket->pendingDatagramSize();
|
||||||
m_udpReadBytes = m_dataSocket->readDatagram(m_udpBuf, pendingDataSize, &m_remoteAddress, 0);
|
m_udpReadBytes += m_dataSocket->readDatagram(&m_udpBuf[m_udpReadBytes], pendingDataSize, &m_remoteAddress, 0);
|
||||||
|
|
||||||
if (m_udpReadBytes == SDRdaemonFECBuffer::m_udpPayloadSize) {
|
if (m_udpReadBytes == SDRdaemonFECBuffer::m_udpPayloadSize) {
|
||||||
processData();
|
processData();
|
||||||
|
m_udpReadBytes = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user