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

◆ IOManager() [1/3]

MayaFlux::IO::IOManager::IOManager ( uint64_t  sample_rate,
uint32_t  buffer_size,
uint32_t  frame_rate,
const std::shared_ptr< Buffers::BufferManager > &  buffer_manager 
)

Construct IOManager and register the IOService into BackendRegistry.

Must be constructed before any VideoFileReader::load_into_container() call that should participate in managed dispatch.

Definition at line 27 of file IOManager.cpp.

28 : m_sample_rate(sample_rate)
29 , m_buffer_size(buffer_size)
30 , m_frame_rate(frame_rate)
31 , m_buffer_manager(buffer_manager)
32{
33 m_io_service = std::make_shared<Registry::Service::IOService>();
34
35 m_io_service->request_decode = [this](uint64_t reader_id) {
36 dispatch_decode_request(reader_id);
37 };
38
40 .register_service<Registry::Service::IOService>(
41 [svc = m_io_service]() -> void* { return svc.get(); });
42
43 m_io_service->request_frame = [this](uint64_t reader_id) {
44 dispatch_frame_request(reader_id);
45 };
46
48}
#define MF_INFO(comp, ctx,...)
void dispatch_frame_request(uint64_t reader_id)
IOService::request_frame target — shared-lock lookup + pull_frame_all().
void dispatch_decode_request(uint64_t reader_id)
IOService::request_decode target — shared-lock lookup + signal_decode().
std::shared_ptr< Buffers::BufferManager > m_buffer_manager
std::shared_ptr< Registry::Service::IOService > m_io_service
void register_service(ServiceFactory factory)
Register a backend service capability.
static BackendRegistry & instance()
Get the global registry instance.
@ Init
Engine/subsystem initialization.
@ Core
Core engine, backend, subsystems.

References MayaFlux::Journal::Core, dispatch_decode_request(), dispatch_frame_request(), MayaFlux::Journal::Init, MayaFlux::Registry::BackendRegistry::instance(), m_io_service, MF_INFO, MayaFlux::Registry::BackendRegistry::register_service(), and MayaFlux::Registry::Service::IOService::request_frame.

+ Here is the call graph for this function: