diff --git a/components/operators/src/aruco.cpp b/components/operators/src/aruco.cpp index 2608ca1bbd6f881fc5c316c2332f36e80fed5a5a..34fcfca33463238cda25e3469e57ca98c6f1112e 100644 --- a/components/operators/src/aruco.cpp +++ b/components/operators/src/aruco.cpp @@ -66,7 +66,7 @@ bool ArUco::apply(Frame &in, Frame &out, cudaStream_t stream) { Frame *inptr = ∈ Frame *outptr = &out; - estimate_pose_ = config()->value("estimate_pose", false); + estimate_pose_ = config()->value("estimate_pose", true); debug_ = config()->value("debug", false); marker_size_ = config()->value("marker_size",0.1f); diff --git a/components/operators/src/clipping.cpp b/components/operators/src/clipping.cpp index 9d392b4f93e8be872a9cfce578662f15e56fbb92..b3c5d9072ddc9864c31bc9ba7af3d7346beddd4b 100644 --- a/components/operators/src/clipping.cpp +++ b/components/operators/src/clipping.cpp @@ -76,7 +76,10 @@ bool ClipScene::apply(ftl::rgbd::FrameSet &in, ftl::rgbd::FrameSet &out, cudaStr auto sclip = clip; sclip.origin = sclip.origin.getInverse() * pose; - if (!no_clip) ftl::cuda::clipping(f.createTexture<float>(Channel::Depth), f.getLeftCamera(), sclip, stream); + if (!no_clip) { + f.create<cv::cuda::GpuMat>(Channel::Depth); // Force reset. + ftl::cuda::clipping(f.createTexture<float>(Channel::Depth), f.getLeftCamera(), sclip, stream); + } } } diff --git a/components/operators/src/poser.cpp b/components/operators/src/poser.cpp index 0ed962f9585a2cfcd49345073b52f82ae90736d3..0c60db87ba7e1dceb8737f3e19cc95ea8f0531f0 100644 --- a/components/operators/src/poser.cpp +++ b/components/operators/src/poser.cpp @@ -24,6 +24,8 @@ bool Poser::apply(ftl::rgbd::FrameSet &in, ftl::rgbd::FrameSet &out, cudaStream_ std::vector<ftl::codecs::Shape3D> transforms; in.get(Channel::Shapes3D, transforms); + //LOG(INFO) << "Found shapes 3D global: " << (int)transforms.size(); + //for (auto &t : transforms) { //LOG(INFO) << "Have FS transform: " << t.id; //} @@ -37,6 +39,8 @@ bool Poser::apply(ftl::rgbd::FrameSet &in, ftl::rgbd::FrameSet &out, cudaStream_ std::vector<ftl::codecs::Shape3D> transforms; f.get(Channel::Shapes3D, transforms); + //LOG(INFO) << "Found shapes 3D: " << (int)transforms.size(); + for (auto &t : transforms) { std::string idstr; switch(t.type) { @@ -58,6 +62,7 @@ bool Poser::apply(ftl::rgbd::FrameSet &in, ftl::rgbd::FrameSet &out, cudaStream_ } else { // TODO: Merge poses if (!(*p).second.locked) (*p).second.pose = pose; + //LOG(INFO) << "POSE ID: " << idstr; } } } diff --git a/components/streams/include/ftl/streams/filestream.hpp b/components/streams/include/ftl/streams/filestream.hpp index bd6a580ea03d7358b8254ae5f4ad7cce76814466..92d0a8afe8b1757da9b682354f16bff25a5dfe44 100644 --- a/components/streams/include/ftl/streams/filestream.hpp +++ b/components/streams/include/ftl/streams/filestream.hpp @@ -29,6 +29,8 @@ class File : public Stream { bool end() override; bool active() override; + void reset() override; + /** * Automatically tick through the frames using a timer. Threads are used. */ diff --git a/components/streams/src/filestream.cpp b/components/streams/src/filestream.cpp index 5650862dd34834cd8e14966a620ba5ef9f3cbee3..5ae915fdf71c225fbff48ab920f53026ee1a297b 100644 --- a/components/streams/src/filestream.cpp +++ b/components/streams/src/filestream.cpp @@ -364,6 +364,17 @@ bool File::end() { return true; } +void File::reset() { + UNIQUE_LOCK(mutex_, lk); + data_.clear(); + buffer_in_.reset(); + buffer_in_.remove_nonparsed_buffer(); + _open(); + + timestart_ = (ftl::timer::get_time() / ftl::timer::getInterval()) * ftl::timer::getInterval(); + timestamp_ = timestart_; +} + bool File::active() { return active_; }