MayaFlux 0.4.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 196 of file IOManager.cpp.

197{
198 if (!reader) {
200 "IOManager::register_video_reader called with null reader");
201 return 0;
202 }
203
204 const uint64_t id = m_next_reader_id.fetch_add(1, std::memory_order_relaxed);
205 reader->set_reader_id(id);
206
207 {
208 std::unique_lock lock(m_readers_mutex);
209 m_video_readers.emplace(id, std::move(reader));
210 }
211
213 "IOManager: registered VideoFileReader id={}", id);
214
215 return id;
216}
#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: