diff --git a/components/streams/src/receiver.cpp b/components/streams/src/receiver.cpp index e497dd0035e2eb9d7d38cb2fe0b438e70d2f13ef..67945bbf463720c6b7dd53617f454fa2a49d3b07 100644 --- a/components/streams/src/receiver.cpp +++ b/components/streams/src/receiver.cpp @@ -346,7 +346,7 @@ void Receiver::_finishPacket(ftl::streams::LockedFrameSet &fs, size_t fix) { if (frame.packet_tx > 0 && frame.packet_tx == frame.packet_rx) { fs->completed(fix); if (fs->isComplete()) { - LOG(INFO) << "COMPLETE: " << fs->timestamp() << ", " << fix; + //LOG(INFO) << "COMPLETE: " << fs->timestamp() << ", " << fix; timestamp_ = fs->timestamp(); } frame.packet_tx = 0; @@ -362,7 +362,7 @@ void Receiver::processPackets(const StreamPacket &spkt, const Packet &pkt) { if (fs) { fs->frames[spkt.frame_number].packet_tx = static_cast<int>(pkt.packet_count); - LOG(INFO) << "EXPECTED " << fs->frames[spkt.frame_number].packet_tx; + //LOG(INFO) << "EXPECTED " << fs->frames[spkt.frame_number].packet_tx << " for " << int(spkt.frame_number); _finishPacket(fs, spkt.frame_number); } return; diff --git a/components/streams/src/sender.cpp b/components/streams/src/sender.cpp index 36d25e09820b31819214630151d816d9b6352f77..ee79773d0093d46e379aa9c56195b49afa7b3b54 100644 --- a/components/streams/src/sender.cpp +++ b/components/streams/src/sender.cpp @@ -154,6 +154,8 @@ void Sender::_send(ftl::rgbd::FrameSet &fs, ftl::codecs::StreamPacket &spkt, con spkt.flags = ftl::codecs::kFlagCompleted; }*/ + if (spkt.frame_number == 255) LOG(WARNING) << "Bad frame number"; + if (spkt.frame_number == 255) ++fs.frames[0].packet_tx; else if (spkt.frame_number < fs.frames.size() && fs.frames[spkt.frame_number].source() == spkt.frame_number) ++fs.frames[spkt.frame_number].packet_tx; else { diff --git a/components/streams/test/recsend_unit.cpp b/components/streams/test/recsend_unit.cpp index 2080b1be65aafb7f813ba71de8fe66ae81ed2ba8..b1f0c9f1f33713d2f930daeb982639afda50e62b 100644 --- a/components/streams/test/recsend_unit.cpp +++ b/components/streams/test/recsend_unit.cpp @@ -151,7 +151,7 @@ TEST_CASE( "Multi-thread stability testing" ) { auto h1 = pool.onFlushSet([sender](ftl::data::FrameSet &fs, ftl::codecs::Channel c) { if (!fs.test(ftl::data::FSFlag::AUTO_SEND)) return true; - LOG(INFO) << "FLUSH: " << fs.timestamp() << ", " << int(c); + //LOG(INFO) << "FLUSH: " << fs.timestamp() << ", " << int(c); sender->post(fs, c); return true; }); @@ -200,7 +200,7 @@ TEST_CASE( "Multi-thread stability testing" ) { auto h1 = pool.onFlushSet([sender](ftl::data::FrameSet &fs, ftl::codecs::Channel c) { if (!fs.test(ftl::data::FSFlag::AUTO_SEND)) return true; - LOG(INFO) << "FLUSH: " << fs.timestamp() << ", " << int(c) << ", " << fs.frames[0].source(); + //LOG(INFO) << "FLUSH: " << fs.timestamp() << ", " << int(c) << ", " << fs.frames[0].source(); sender->post(fs, c); return true; }); @@ -221,7 +221,9 @@ TEST_CASE( "Multi-thread stability testing" ) { return true; }); - auto h2 = ftl::timer::add(ftl::timer::timerlevel_t::kTimerMain, [&pool](int64_t ts) { + ftl::data::Pool pool2(5,7); + + auto h2 = ftl::timer::add(ftl::timer::timerlevel_t::kTimerMain, [&pool,&pool2](int64_t ts) { ftl::pool.push([&pool, ts](int id) { Frame f = pool.allocate(ftl::data::FrameID(0,0), ts); f.store(); diff --git a/components/structures/src/pool.cpp b/components/structures/src/pool.cpp index ff2484e135702e9c314ca62bae6dda705dbf9f11..c67d1f8a22e5a3aa1f0add7b427768ed0da8b3db 100644 --- a/components/structures/src/pool.cpp +++ b/components/structures/src/pool.cpp @@ -25,8 +25,8 @@ Frame Pool::allocate(FrameID id, int64_t timestamp) { UNIQUE_LOCK(mutex_, lk); auto &pool = _getPool(id); - if (timestamp < pool.last_timestamp) { - timestamp = pool.last_timestamp; + if (timestamp <= pool.last_timestamp) { + //timestamp = pool.last_timestamp; //throw FTL_Error("New frame timestamp is older than previous: " << timestamp << " vs " << pool.last_timestamp); }