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

◆ register_video_reader()

uint64_t MayaFlux::IO::IOManager::register_video_reader ( std::shared_ptr< VideoFileReader >  reader)

Assign a globally unique reader_id and take ownership of a reader.

Called internally by load_video(). Advanced users who open a VideoFileReader manually can call this before load_into_container() to participate in managed dispatch and lifetime tracking.

Calls reader->set_reader_id(id) before returning.

Parameters
readerFully-opened VideoFileReader.
Returns
Globally unique reader_id assigned to this reader.

Definition at line 315 of file IOManager.cpp.

316{
317 if (!reader) {
319 "IOManager::register_video_reader called with null reader");
320 return 0;
321 }
322
323 const uint64_t id = m_next_reader_id.fetch_add(1, std::memory_order_relaxed);
324 reader->set_reader_id(id);
325
326 {
327 std::unique_lock lock(m_readers_mutex);
328 m_video_readers.emplace(id, std::move(reader));
329 }
330
332 "IOManager: registered VideoFileReader id={}", id);
333
334 return id;
335}
#define MF_WARN(comp, ctx,...)
#define MF_DEBUG(comp, ctx,...)
std::atomic< uint64_t > m_next_reader_id
std::shared_mutex m_readers_mutex
std::unordered_map< uint64_t, std::shared_ptr< VideoFileReader > > m_video_readers
@ FileIO
Filesystem I/O operations.
@ Core
Core engine, backend, subsystems.

References MayaFlux::Journal::Core, MayaFlux::Journal::FileIO, m_next_reader_id, m_readers_mutex, m_video_readers, MF_DEBUG, and MF_WARN.

Referenced by load_video().

+ Here is the caller graph for this function: