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

#include <FrameAccessProcessor.hpp>

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

Public Member Functions

 FrameAccessProcessor ()=default
 
 ~FrameAccessProcessor () override=default
 
void on_attach (const std::shared_ptr< SignalSourceContainer > &container) override
 Attach the processor to a video container.
 
void on_detach (const std::shared_ptr< SignalSourceContainer > &container) override
 Detach the processor from its container.
 
void process (const std::shared_ptr< SignalSourceContainer > &container) override
 Extract the current frame(s) into the container's processed_data.
 
bool is_processing () const override
 Query if the processor is currently performing processing.
 
void set_frames_per_batch (uint64_t count)
 Set the number of frames extracted per process() call.
 
void set_auto_advance (bool enable)
 Enable or disable automatic frame advancement after each process() call.
 
bool get_auto_advance () const
 Get the current auto-advance state.
 
void set_current_frame (uint64_t frame)
 Set the current frame index (temporal cursor).
 
uint64_t get_current_frame () const
 Get the current frame index.
 
uint64_t get_frames_per_batch () const
 Get the number of frames per batch.
 
uint64_t get_frame_byte_size () const
 Get the cached frame byte size (width × height × channels).
 
void set_global_fps (double fps)
 
- Public Member Functions inherited from MayaFlux::Kakshya::DataProcessor
virtual ~DataProcessor ()=default
 Virtual destructor for proper cleanup.
 

Private Member Functions

void store_metadata (const std::shared_ptr< SignalSourceContainer > &container)
 Cache dimension metadata and frame geometry from the container.
 
void validate ()
 Validate that the container is suitable for frame-based processing.
 
void advance_frame (uint64_t frames_to_advance)
 Advance the frame cursor, respecting loop boundaries.
 

Private Attributes

std::atomic< bool > m_is_processing { false }
 
bool m_prepared {}
 
bool m_auto_advance { true }
 
std::weak_ptr< SignalSourceContainerm_source_container_weak
 
ContainerDataStructure m_structure
 
uint64_t m_current_frame {}
 
uint64_t m_frames_per_batch { 1 }
 
uint64_t m_total_frames {}
 
uint64_t m_width {}
 
uint64_t m_height {}
 
uint64_t m_channels {}
 
uint64_t m_frame_byte_size {}
 
double m_global_fps { 60.0 }
 
bool m_looping_enabled {}
 
Region m_loop_region
 
std::chrono::steady_clock::time_point m_last_process_time {}
 
double m_frame_accumulator {}
 Sub-frame accumulator for wall-clock-driven advancement.
 
double m_frame_rate {}
 Cached video frame rate in frames per second.
 

Detailed Description

Definition at line 40 of file FrameAccessProcessor.hpp.


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