diff --git a/components/rgbd-sources/src/streamer.cpp b/components/rgbd-sources/src/streamer.cpp index 7a9118c9f47975a31d6389982b2adb818ed8a046..676cf58cf3045111cf966d78d587c0e918a351e7 100644 --- a/components/rgbd-sources/src/streamer.cpp +++ b/components/rgbd-sources/src/streamer.cpp @@ -496,7 +496,7 @@ void Streamer::_transmitPacket(StreamSource *src, const ftl::codecs::Packet &pkt frame_no_, static_cast<uint8_t>((chan & 0x1) | ((hasChan2) ? 0x2 : 0x0)) }; - + LOG(INFO) << "codec:" << (int) pkt.codec; // Lock to prevent clients being added / removed //SHARED_LOCK(src->mutex,lk); auto c = src->clients.begin(); diff --git a/components/rgbd-sources/src/virtual.cpp b/components/rgbd-sources/src/virtual.cpp index 62b404155e1f302111e99183347d87c9dbda3a0b..0e6db973884a3c8361fcaae764cc1688d2434d9d 100644 --- a/components/rgbd-sources/src/virtual.cpp +++ b/components/rgbd-sources/src/virtual.cpp @@ -36,13 +36,19 @@ class VirtualImpl : public ftl::rgbd::detail::Source { LOG(ERROR) << "Unknown exception in render callback"; } - if (frame.hasChannel(Channel::Colour) && frame.hasChannel(Channel::Depth)) { - frame.download(Channel::Colour + Channel::Depth); - cv::swap(frame.get<cv::Mat>(Channel::Colour), rgb_); - cv::swap(frame.get<cv::Mat>(Channel::Depth), depth_); - LOG(INFO) << "Written: " << rgb_.cols; + if (frame.hasChannel(Channel::Colour)) { + frame.download(Channel::Colour); + cv::swap(frame.get<cv::Mat>(Channel::Colour), rgb_); } else { - LOG(ERROR) << "Missing colour or depth frame in rendering"; + LOG(ERROR) << "Channel 1 frame in rendering"; + } + + if ((host_->getChannel() != Channel::None) && + frame.hasChannel(host_->getChannel())) { + frame.download(host_->getChannel()); + cv::swap(frame.get<cv::Mat>(host_->getChannel()), depth_); + } else { + LOG(ERROR) << "Channel 2 frame in rendering"; } auto cb = host_->callback();