|
|
|
@ -583,8 +583,10 @@ int main(int argc, char** argv) { |
|
|
|
|
|
|
|
|
|
std::vector<SubSocket*> socks; |
|
|
|
|
|
|
|
|
|
std::map<SubSocket*, int> qlog_counter; |
|
|
|
|
std::map<SubSocket*, int> qlog_freqs; |
|
|
|
|
typedef struct QlogState { |
|
|
|
|
int counter, freq; |
|
|
|
|
} QlogState; |
|
|
|
|
std::map<SubSocket*, QlogState> qlog_states; |
|
|
|
|
|
|
|
|
|
for (const auto& it : services) { |
|
|
|
|
std::string name = it.name; |
|
|
|
@ -598,9 +600,8 @@ int main(int argc, char** argv) { |
|
|
|
|
for (int cid=0;cid<=MAX_CAM_IDX;cid++) { |
|
|
|
|
if (name == cameras_logged[cid].frame_packet_name) { s.rotate_state[cid].fpkt_sock = sock; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
qlog_counter[sock] = (it.decimation == -1) ? -1 : 0; |
|
|
|
|
qlog_freqs[sock] = it.decimation; |
|
|
|
|
qlog_states[sock] = {.counter = (it.decimation == -1) ? -1 : 0, |
|
|
|
|
.freq = it.decimation}; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -650,12 +651,12 @@ int main(int argc, char** argv) { |
|
|
|
|
delete last_msg; |
|
|
|
|
last_msg = msg; |
|
|
|
|
|
|
|
|
|
logger_log(&s.logger, (uint8_t*)msg->getData(), msg->getSize(), qlog_counter[sock] == 0); |
|
|
|
|
QlogState& qs = qlog_states[sock]; |
|
|
|
|
logger_log(&s.logger, (uint8_t*)msg->getData(), msg->getSize(), qs.counter == 0); |
|
|
|
|
|
|
|
|
|
if (qlog_counter[sock] != -1) { |
|
|
|
|
if (qs.counter != -1) { |
|
|
|
|
//printf("%p: %d/%d\n", socks[i], qlog_counter[socks[i]], qlog_freqs[socks[i]]);
|
|
|
|
|
qlog_counter[sock]++; |
|
|
|
|
qlog_counter[sock] %= qlog_freqs[sock]; |
|
|
|
|
qs.counter = (qs.counter + 1) % qs.freq; |
|
|
|
|
} |
|
|
|
|
bytes_count += msg->getSize(); |
|
|
|
|
msg_count++; |
|
|
|
|