diff --git a/components/rgbd-sources/src/frameset.cpp b/components/rgbd-sources/src/frameset.cpp index 859c3d5d7b306b3666c9f86afc93bf0fdc437584..e2b1afa4d45f6d4e5dde6bac5765648c7affc591 100644 --- a/components/rgbd-sources/src/frameset.cpp +++ b/components/rgbd-sources/src/frameset.cpp @@ -85,6 +85,8 @@ void Builder::push(int64_t timestamp, int ix, ftl::rgbd::Frame &frame) { UNIQUE_LOCK(mutex_, lk); + //LOG(INFO) << "BUILDER PUSH: " << timestamp << ", " << ix << ", " << size_; + // Size is determined by largest frame index received... note that size // cannot therefore reduce. if (ix >= size_) { @@ -224,6 +226,7 @@ ftl::rgbd::FrameSet *Builder::_findFrameset(int64_t ts) { ftl::rgbd::FrameSet *Builder::_getFrameset() { for (auto i=framesets_.begin(); i!=framesets_.end(); i++) { auto *f = *i; + //LOG(INFO) << "GET: " << f->count << " of " << size_; if (!f->stale && f->count >= size_) { //LOG(INFO) << "GET FRAMESET and remove: " << f->timestamp; auto j = framesets_.erase(i); diff --git a/components/streams/src/receiver.cpp b/components/streams/src/receiver.cpp index 8d07365d7ad5a8e9c5f614e2099c8afaced538c5..1151f1e342654e5c1c6835f6a9da1b9b11a684e8 100644 --- a/components/streams/src/receiver.cpp +++ b/components/streams/src/receiver.cpp @@ -232,7 +232,7 @@ void Receiver::_processVideo(const StreamPacket &spkt, const Packet &pkt) { if ((frame.completed & sel) == sel) { timestamp_ = frame.timestamp; - //LOG(INFO) << "BUILDER PUSH: " << timestamp_ << ", " << spkt.frameNumber(); + //LOG(INFO) << "BUILDER PUSH: " << timestamp_ << ", " << spkt.frameNumber() << ", " << (int)pkt.frame_count; if (frame.state.getLeft().width == 0) { LOG(WARNING) << "Missing calibration, skipping frame"; diff --git a/components/streams/src/stream.cpp b/components/streams/src/stream.cpp index 2259ba09204ec8dbe9e40b878aa63bec13f6a2a1..2ece7be127e15f9ff4a6ca294133e266542a38db 100644 --- a/components/streams/src/stream.cpp +++ b/components/streams/src/stream.cpp @@ -55,11 +55,15 @@ void Muxer::add(Stream *s) { s->onPacket([this,s,i](const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packet &pkt) { //SHARED_LOCK(mutex_, lk); - int id = _lookup(i, spkt.frame_number); - + ftl::codecs::StreamPacket spkt2 = spkt; spkt2.streamID = 0; - spkt2.frame_number = id; + + if (spkt2.frame_number < 255) { + int id = _lookup(i, spkt.frame_number); + spkt2.frame_number = id; + } + _notify(spkt2, pkt); s->select(spkt.streamID, selected(0)); }); @@ -79,6 +83,8 @@ bool Muxer::post(const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packe auto [sid, ssid] = revmap_[spkt.frame_number]; auto &se = streams_[sid]; + //LOG(INFO) << "POST " << spkt.frame_number; + ftl::codecs::StreamPacket spkt2 = spkt; spkt2.streamID = 0; spkt2.frame_number = ssid; @@ -138,7 +144,7 @@ int Muxer::_lookup(int sid, int ssid) { void Muxer::_notify(const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packet &pkt) { SHARED_LOCK(mutex_, lk); available(spkt.frameSetID()) += spkt.channel; - if (cb_) cb_(spkt, pkt); + if (cb_) cb_(spkt, pkt); // spkt.frame_number < 255 && } // ==== Broadcaster ============================================================