MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ run_lane()

bool MayaFlux::Yantra::VisionAnalyzer::run_lane ( size_t  lane,
const std::vector< Kinesis::Vision::ResolvedSequence > &  resolved,
std::vector< Kinesis::Vision::VisionResult > &  results,
const std::shared_ptr< Core::VKImage > &  image 
)
private

Run or poll sequence lane of resolved on its executor.

Returns
False while the sequence is suspended on deferred work; true once its result is appended to results.

Definition at line 518 of file VisionAnalyzer.cpp.

523{
524 if (m_executors.size() < resolved.size())
525 m_executors.resize(resolved.size());
526
527 const auto& entry = resolved[lane];
528 auto& executor = m_executors[lane];
529 if (!executor)
530 executor = std::make_unique<VisionGpuExecutor>();
531
532 if (std::ranges::any_of(entry.sequence.steps,
533 [](const auto& step) { return step.op == Kinesis::Vision::VisionOp::ConnectedComponents; }))
534 m_label_lane = lane;
535
536 const auto seeded = entry.seed_field ? entry.seed_field(results[entry.seed_lane]) : nullptr;
537 const auto& source = seeded ? seeded : image;
538 auto result = executor->run(entry.sequence, source, source->get_width(), source->get_height());
539
540 if (result.status != Kinesis::Vision::VisionStatus::COMPLETE)
541 return false;
542
543 results.push_back(std::move(result));
544 return true;
545}
IO::ImageData image
Definition Decoder.cpp:47
std::vector< std::unique_ptr< VisionGpuExecutor > > m_executors
Source source()
Begin a Source chain.
Definition Plot.hpp:127

References MayaFlux::Kinesis::Vision::COMPLETE, image, m_executors, and m_label_lane.

Referenced by advance(), and analyze_resolved().

+ Here is the caller graph for this function: