MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Kakshya::VisionProcessor Class Reference

DataProcessor executing a Kinesis::Vision pipeline on pixel container data. More...

#include <VisionProcessor.hpp>

+ Inheritance diagram for MayaFlux::Kakshya::VisionProcessor:
+ Collaboration diagram for MayaFlux::Kakshya::VisionProcessor:

Public Member Functions

const Kinesis::Vision::VisionResultget_result () const
 The result of the last successful process() call.
 
std::shared_ptr< Vruta::BroadcastSource< Kinesis::Vision::VisionResult > > get_result_source ()
 Shared BroadcastSource signalled with each VisionResult after a successful process() call.
 
bool is_processing () const override
 Checks if the processor is currently performing processing.
 
void on_attach (const std::shared_ptr< SignalSourceContainer > &container) override
 Cache frame geometry from get_structure().
 
void on_detach (const std::shared_ptr< SignalSourceContainer > &container) override
 Clear cached geometry and reset executor state.
 
void process (const std::shared_ptr< SignalSourceContainer > &container) override
 Execute the VisionSequence on processed_data[0].
 
void set_sequence (Kinesis::Vision::VisionSequence sequence)
 Replace the pipeline and reset inter-frame executor state.
 
 VisionProcessor (Kinesis::Vision::VisionSequence sequence, bool force_cpu=false)
 Construct with the vision pipeline to execute each process() call.
 
 ~VisionProcessor () override=default
 
- Public Member Functions inherited from MayaFlux::Kakshya::DataProcessor
virtual ~DataProcessor ()=default
 Virtual destructor for proper cleanup.
 

Private Attributes

Kinesis::Vision::VisionExecutor m_cpu_executor
 
std::unique_ptr< Yantra::VisionGpuExecutorm_executor
 
std::vector< float > m_float_storage
 
bool m_force_cpu {}
 
std::shared_ptr< Core::VKImagem_gpu_frame
 
uint32_t m_height {}
 
std::atomic< bool > m_is_processing { false }
 
Kinesis::Vision::VisionResult m_result
 
std::shared_ptr< Vruta::BroadcastSource< Kinesis::Vision::VisionResult > > m_result_source
 
Kinesis::Vision::VisionSequence m_sequence
 
std::shared_ptr< Buffers::VKBufferm_upload_staging
 
uint32_t m_width {}
 

Detailed Description

DataProcessor executing a Kinesis::Vision pipeline on pixel container data.

Compatible with three container types, each accessed via its native normalised float path:

on_attach throws std::invalid_argument for any other container type. Runs the configured VisionSequence through VisionExecutor and stores the VisionResult as member state for polling via get_result().

Width and height are read from get_structure() at on_attach time. m_float_storage is reused across calls to avoid per-frame allocation.

See also
FrameAccessProcessor, WindowAccessProcessor, VisionExecutor, VisionSequence

Definition at line 33 of file VisionProcessor.hpp.


The documentation for this class was generated from the following files: