1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-07 00:14:49 -04:00

SDRdaemonFEC plugin: migrate to new cm256cc library

This commit is contained in:
f4exb
2016-07-23 19:59:42 +02:00
parent a0729ce6f5
commit bda1d8997b
6 changed files with 46 additions and 12 deletions
+3 -3
View File
@@ -47,10 +47,10 @@ endif(LIBUSB_FOUND AND LIBHACKRF_FOUND)
# add_subdirectory(sdrdaemon)
#endif(LIBNANOMSG_FOUND)
find_package(CM256)
if(CM256_FOUND)
find_package(CM256cc)
if(CM256CC_FOUND)
add_subdirectory(sdrdaemonfec)
endif(CM256_FOUND)
endif(CM256CC_FOUND)
add_subdirectory(filesource)
add_subdirectory(sdrdaemon)
@@ -42,13 +42,13 @@ add_library(inputsdrdaemonfec SHARED
)
target_include_directories(inputsdrdaemonfec PUBLIC
${CM256_INCLUDE_DIR}
${CM256CC_INCLUDE_DIR}
${LIBNANOMSG_INCLUDE_DIR}
)
target_link_libraries(inputsdrdaemonfec
${QT_LIBRARIES}
${CM256_LIBRARIES}
${CM256CC_LIBRARIES}
${LIBNANOMSG_LIBRARIES}
sdrbase
)
@@ -50,9 +50,9 @@ SDRdaemonFECBuffer::SDRdaemonFECBuffer(uint32_t throttlems) :
m_paramsCM256.BlockBytes = sizeof(ProtectedBlock); // never changes
m_paramsCM256.OriginalCount = m_nbOriginalBlocks; // never changes
if (cm256_init()) {
if (!m_cm256.isInitialized()) {
m_cm256_OK = false;
qDebug() << "SDRdaemonFECBuffer::SDRdaemonFECBuffer: cannot initialize CM256 library";
qDebug() << "SDRdaemonFECBuffer::SDRdaemonFECBuffer: cannot initialize CM256 library";
} else {
m_cm256_OK = true;
}
@@ -249,7 +249,7 @@ void SDRdaemonFECBuffer::writeData(char *array, uint32_t length)
m_paramsCM256.RecoveryCount = m_decoderSlots[decoderIndex].m_recoveryCount;
}
if (cm256_decode(m_paramsCM256, m_decoderSlots[decoderIndex].m_cm256DescriptorBlocks)) // CM256 decode
if (m_cm256.cm256_decode(m_paramsCM256, m_decoderSlots[decoderIndex].m_cm256DescriptorBlocks)) // CM256 decode
{
qDebug() << "SDRdaemonFECBuffer::writeData: decode CM256 error:"
<< " m_originalCount: " << m_decoderSlots[decoderIndex].m_originalCount
@@ -163,7 +163,7 @@ private:
{
ProtectedBlock m_originalBlocks[m_nbOriginalBlocks]; //!< Original blocks retrieved directly or by later FEC
ProtectedBlock m_recoveryBlocks[m_nbOriginalBlocks]; //!< Recovery blocks (FEC blocks) with max size
cm256_block m_cm256DescriptorBlocks[m_nbOriginalBlocks]; //!< CM256 decoder descriptors (block addresses and block indexes)
CM256::cm256_block m_cm256DescriptorBlocks[m_nbOriginalBlocks]; //!< CM256 decoder descriptors (block addresses and block indexes)
int m_blockCount; //!< number of blocks received for this frame
int m_originalCount; //!< number of original blocks received
int m_recoveryCount; //!< number of recovery blocks received
@@ -172,7 +172,7 @@ private:
};
MetaDataFEC m_currentMeta; //!< Stored current meta data
cm256_encoder_params m_paramsCM256; //!< CM256 decoder parameters block
CM256::cm256_encoder_params m_paramsCM256; //!< CM256 decoder parameters block
DecoderSlot m_decoderSlots[nbDecoderSlots]; //!< CM256 decoding control/buffer slots
BufferFrame m_frames[nbDecoderSlots]; //!< Samples buffer
int m_framesNbBytes; //!< Number of bytes in samples buffer
@@ -199,6 +199,7 @@ private:
int m_nbWrites; //!< Number of buffer writes since start of auto R/W balance correction period
int m_balCorrection; //!< R/W balance correction in number of samples
int m_balCorrLimit; //!< Correction absolute value limit in number of samples
CM256 m_cm256; //!< CM256 library
bool m_cm256_OK; //!< CM256 library initialized OK
void initDecodeAllSlots();