|
MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
|
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::VisionResult & | get_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::VisionGpuExecutor > | m_executor |
| std::vector< float > | m_float_storage |
| bool | m_force_cpu {} |
| std::shared_ptr< Core::VKImage > | m_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::VKBuffer > | m_upload_staging |
| uint32_t | m_width {} |
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.
Definition at line 33 of file VisionProcessor.hpp.