diff --git a/applications/gui/src/camera.cpp b/applications/gui/src/camera.cpp index c981c662c8ef2dae9729f239716a20e9f446f459..a2b9ef5b8c68ccc98e2a5ef29a19e8153180650b 100644 --- a/applications/gui/src/camera.cpp +++ b/applications/gui/src/camera.cpp @@ -433,10 +433,10 @@ void ftl::gui::Camera::_draw(std::vector<ftl::rgbd::FrameSet*> &fss) { void ftl::gui::Camera::update(int fsid, const ftl::codecs::Channels<0> &c) { if (!isVirtual() && ((1 << fsid) & fsmask_)) { - channels_ = c; - if (c.has(Channel::Depth)) { + channels_ += c; + //if (c.has(Channel::Depth)) { //channels_ += Channel::ColourNormals; - } + //} } } @@ -469,6 +469,7 @@ void ftl::gui::Camera::update(std::vector<ftl::rgbd::FrameSet*> &fss) { if ((size_t)fid_ >= fs->frames.size()) return; frame = &fs->frames[fid_]; + channels_ = frame->getChannels(); if (frame->hasChannel(Channel::Messages)) { msgs_.clear(); diff --git a/applications/gui/src/src_window.cpp b/applications/gui/src/src_window.cpp index fe3763252538ec1a2ac2597afdb97035c90c8eca..b3b71fabfd77187444df545c8fe6d389e0c954ad 100644 --- a/applications/gui/src/src_window.cpp +++ b/applications/gui/src/src_window.cpp @@ -248,7 +248,7 @@ bool SourceWindow::_processFrameset(ftl::rgbd::FrameSet &fs, bool fromstream) { ftl::codecs::Channels<0> channels; if (fromstream) channels = cstream->available(fs.id); - if ((*framesets_[fs.id]).frames.size() > 0) channels += (*framesets_[fs.id]).frames[0].getChannels(); + //if ((*framesets_[fs.id]).frames.size() > 0) channels += (*framesets_[fs.id]).frames[0].getChannels(); cam.second.camera->update(fs.id, channels); } ++cycle_; diff --git a/components/operators/src/depth.cpp b/components/operators/src/depth.cpp index b3a80080f0026ebac16a70718b0e0266d25e4630..59b50a1fef9b525089b2a7d8f4504fdc9e24cbcf 100644 --- a/components/operators/src/depth.cpp +++ b/components/operators/src/depth.cpp @@ -164,6 +164,7 @@ bool DepthChannel::apply(ftl::rgbd::FrameSet &in, ftl::rgbd::FrameSet &out, cuda rbuf_.resize(in.frames.size()); for (size_t i=0; i<in.frames.size(); ++i) { + if (!in.hasFrame(i)) continue; auto &f = in.frames[i]; if (!f.hasChannel(Channel::Depth) && f.hasChannel(Channel::Right)) { _createPipeline();