21 unsigned short streamTag)
22 : m_carouselId(dii->m_downloadId), m_moduleId(info->m_moduleId),
23 m_streamId(streamTag), m_version(info->m_moduleVersion),
24 m_moduleSize(info->m_moduleSize)
28 m_blocks.resize(num_blocks,
nullptr);
46 const unsigned char *data)
50 LOG(VB_DSMCC, LOG_WARNING, QString(
"[dsmcc] Module %1 my version %2 != %3")
60 LOG(VB_DSMCC, LOG_WARNING, QString(
"[dsmcc] Module %1 block number %2 "
72 s += block ?
'+' :
'X';
74 LOG(VB_DSMCC, LOG_INFO, QString(
"[dsmcc] Module %1 block %2 dup: %3")
85 LOG(VB_DSMCC, LOG_INFO, QString(
"[dsmcc] Module %1 block %2/%3 bytes %4/%5")
93 LOG(VB_DSMCC, LOG_INFO,
94 QString(
"[dsmcc] Reconstructing module %1 from blocks")
99 if (tmp_data ==
nullptr)
105 if (block ==
nullptr)
107 LOG(VB_DSMCC, LOG_INFO,
108 QString(
"[dsmcc] Null data found, aborting reconstruction"));
112 uint size = block->size();
113 memcpy(tmp_data + curp, block->data(), size);
123 LOG(VB_DSMCC, LOG_INFO, QString(
"[dsmcc] uncompressing: "
124 "compressed size %1, final size %2")
127 auto *uncompressed = (
unsigned char*) malloc(dataLen);
128 int ret = uncompress(uncompressed, &dataLen, tmp_data,
m_moduleSize);
131 LOG(VB_DSMCC, LOG_ERR,
"[dsmcc] compression error, skipping");
138 tmp_data = uncompressed;
149 for (
const auto & cache :
m_Cache)
155 unsigned short streamTag)
173 LOG(VB_DSMCC, LOG_DEBUG, QString(
"[dsmcc] Already Know Module %1")
184 LOG(VB_DSMCC, LOG_ERR,
185 QString(
"[dsmcc] Module %1 size has changed (%2 to %3) "
186 "but version has not!!")
192 LOG(VB_DSMCC, LOG_INFO, QString(
"[dsmcc] Updated Module %1")
205 LOG(VB_DSMCC, LOG_INFO, QString(
"[dsmcc] Saving info for module %1")
211 LOG(VB_DSMCC, LOG_DEBUG, QString(
"[dsmcc] Module info tap identifies "
212 "tag %1 with carousel %2")
213 .arg(tag).arg(cachep->CarouselId()));
216 status->
AddTap(tag, cachep->CarouselId());
230 LOG(VB_DSMCC, LOG_DEBUG, QString(
"[dsmcc] Data block on carousel %1").arg(
m_id));
235 if (cachep->CarouselId() ==
m_id &&
239 unsigned char *tmp_data = cachep->AddModuleData(ddb, data);
243 unsigned int len = cachep->DataSize();
244 unsigned long curp = 0;
245 LOG(VB_DSMCC, LOG_DEBUG, QString(
"[biop] Module size (uncompressed) = %1").arg(len));
261 LOG(VB_DSMCC, LOG_INFO, QString(
"[dsmcc] Data block module %1 not on carousel %2")