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

◆ on_attach()

void FrameAccessProcessor::on_attach ( const std::shared_ptr< SignalSourceContainer > &  container)
overridevirtual

Attach the processor to a video container.

Reads dimension metadata (TIME, SPATIAL_Y, SPATIAL_X, CHANNEL), caches frame geometry, initialises the temporal cursor, and marks the container ready for processing.

Parameters
containerThe SignalSourceContainer to attach to.

Implements MayaFlux::Kakshya::DataProcessor.

Definition at line 13 of file FrameAccessProcessor.cpp.

14{
15 if (!container) {
16 return;
17 }
18
19 m_source_container_weak = container;
20
21 try {
22 store_metadata(container);
23 validate();
24
25 m_prepared = true;
26 container->mark_ready_for_processing(true);
27
28 m_last_process_time = std::chrono::steady_clock::now();
30
32 "FrameAccessProcessor attached: {}×{}×{} frames={}, frame_bytes={}, batch={}",
35
36 } catch (const std::exception& e) {
37 m_prepared = false;
39 std::source_location::current(),
40 "Failed to attach FrameAccessProcessor: {}",
41 e.what());
42 }
43}
#define MF_INFO(comp, ctx,...)
std::chrono::steady_clock::time_point m_last_process_time
std::weak_ptr< SignalSourceContainer > m_source_container_weak
void validate()
Validate that the container is suitable for frame-based processing.
double m_frame_accumulator
Sub-frame accumulator for wall-clock-driven advancement.
void store_metadata(const std::shared_ptr< SignalSourceContainer > &container)
Cache dimension metadata and frame geometry from the container.
@ ContainerProcessing
Container operations (Kakshya - file/stream/region processing)
void error_rethrow(Component component, Context context, std::source_location location=std::source_location::current(), std::string_view additional_context="")
Catch and log an exception, then rethrow it.
@ Kakshya
Containers[Signalsource, Stream, File], Regions, DataProcessors.

References MayaFlux::Journal::ContainerProcessing, MayaFlux::Journal::Kakshya, m_channels, m_frame_accumulator, m_frame_byte_size, m_frames_per_batch, m_height, m_last_process_time, m_prepared, m_source_container_weak, m_total_frames, m_width, MF_INFO, store_metadata(), and validate().

+ Here is the call graph for this function: