|
MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
|
BufferProcessor executing a Kinesis::Vision pipeline on a GpuImageSource buffer. More...
#include <ImageCVProcessor.hpp>
Inheritance diagram for MayaFlux::Buffers::ImageCVProcessor< T >:
Collaboration diagram for MayaFlux::Buffers::ImageCVProcessor< T >:Public Member Functions | |
| uint32_t | get_eval_rate () const |
| Get the currently achieved evaluation rate in frames per second. | |
| const Kinesis::Vision::VisionResult & | get_result () const |
| The result of the last successful processing_function call. | |
| std::shared_ptr< Vruta::BroadcastSource< Kinesis::Vision::VisionResult > > | get_result_source () |
| Shared BroadcastSource signalled with each VisionResult after a successful processing_function call. | |
| ImageCVProcessor (Kinesis::Vision::VisionSequence sequence, bool force_cpu=false) | |
| Construct with the vision pipeline to execute each processing_function call. | |
| void | on_attach (const std::shared_ptr< Buffer > &buffer) override |
| Validate the buffer type and reset executor state. | |
| void | on_detach (const std::shared_ptr< Buffer > &) override |
| Clear state and reset executor. | |
| void | processing_function (const std::shared_ptr< Buffer > &) override |
| Download the current GPU image, run the VisionSequence, store the result. | |
| void | set_eval_rate (uint32_t fps) |
| Set how often this processor actually evaluates, relative to the engine's preferred frame rate. | |
| void | set_sequence (Kinesis::Vision::VisionSequence sequence) |
| Replace the pipeline and reset inter-frame executor state. | |
| ~ImageCVProcessor () override=default | |
Public Member Functions inherited from MayaFlux::Buffers::BufferProcessor | |
| virtual ProcessingToken | get_processing_token () const |
| Gets the current processing token for this buffer. | |
| virtual bool | is_compatible_with (const std::shared_ptr< Buffer > &) const |
| Checks if this processor can handle the specified buffer type. | |
| void | process (const std::shared_ptr< Buffer > &buffer) |
| Applies a computational transformation to the data in the provided buffer. | |
| virtual void | set_processing_token (ProcessingToken token) |
| Gets the preferred processing backend for this processor. | |
| virtual | ~BufferProcessor ()=default |
| Virtual destructor for proper cleanup of derived classes. | |
Private Attributes | |
| std::weak_ptr< T > | m_buffer |
| Kinesis::Vision::VisionExecutor | m_cpu_executor |
| uint32_t | m_eval_delta { 1 } |
| std::unique_ptr< Yantra::VisionGpuExecutor > | m_executor |
| std::vector< float > | m_float_work |
| bool | m_force_cpu {} |
| std::shared_ptr< VKBuffer > | m_gpu_staging |
| std::atomic< bool > | m_is_processing { false } |
| std::vector< uint8_t > | m_raw_staging |
| Kinesis::Vision::VisionResult | m_result |
| std::shared_ptr< Vruta::BroadcastSource< Kinesis::Vision::VisionResult > > | m_result_source |
| Kinesis::Vision::VisionSequence | m_sequence |
| uint32_t | m_skipped_frames { 0 } |
Additional Inherited Members | |
Protected Attributes inherited from MayaFlux::Buffers::BufferProcessor | |
| ProcessingToken | m_processing_token { ProcessingToken::AUDIO_BACKEND } |
BufferProcessor executing a Kinesis::Vision pipeline on a GpuImageSource buffer.
Renamed from ImageCVProcessor. ImageCVProcessor makes the domain (computer vision on image data) explicit and avoids collision with VisionProcessor (the Kakshya DataProcessor over pixel containers).
m_gpu_staging is a persistent host-visible VKBuffer allocated once in on_attach, sized to the image footprint. Passed to download_and_normalise on every call so TextureLoom::download_data uses the fenced path rather than waitIdle, avoiding graphics queue stalls on each frame download.
| T | A VKBuffer subclass satisfying GpuImageSource. |
Definition at line 31 of file ImageCVProcessor.hpp.