MayaFlux 0.2.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 149 of file IOManager.cpp.

150{
151 if (!reader) {
153 "IOManager::register_video_reader called with null reader");
154 return 0;
155 }
156
157 const uint64_t id = m_next_reader_id.fetch_add(1, std::memory_order_relaxed);
158 reader->set_reader_id(id);
159
160 {
161 std::unique_lock lock(m_readers_mutex);
162 m_video_readers.emplace(id, std::move(reader));
163 }
164
166 "IOManager: registered VideoFileReader id={}", id);
167
168 return id;
169}
#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: