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

◆ IOManager() [1/3]

MayaFlux::IO::IOManager::IOManager ( Core::GlobalStreamInfo stream_info,
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 53 of file IOManager.cpp.

54 : m_stream_info(stream_info)
55 , m_frame_rate(frame_rate)
56 , m_buffer_manager(buffer_manager)
57{
58 m_io_service = std::make_shared<Registry::Service::IOService>();
59
60 m_io_service->request_decode = [this](uint64_t reader_id) {
61 dispatch_decode_request(reader_id);
62 };
63
65 .register_service<Registry::Service::IOService>(
66 [svc = m_io_service]() -> void* { return svc.get(); });
67
68 m_io_service->request_frame = [this](uint64_t reader_id) {
69 dispatch_frame_request(reader_id);
70 };
71
74
76}
#define MF_INFO(comp, ctx,...)
static void register_with_registry()
Register this writer with the ImageWriterRegistry.
Definition EXRWriter.cpp:61
Core::GlobalStreamInfo & m_stream_info
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
static void register_with_registry()
Register this writer with the ImageWriterRegistry.
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(), MayaFlux::IO::EXRWriter::register_with_registry(), MayaFlux::IO::STBImageWriter::register_with_registry(), and MayaFlux::Registry::Service::IOService::request_frame.

+ Here is the call graph for this function: