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 175 of file IOManager.cpp.

176{
177 if (!reader) {
179 "IOManager::register_video_reader called with null reader");
180 return 0;
181 }
182
183 const uint64_t id = m_next_reader_id.fetch_add(1, std::memory_order_relaxed);
184 reader->set_reader_id(id);
185
186 {
187 std::unique_lock lock(m_readers_mutex);
188 m_video_readers.emplace(id, std::move(reader));
189 }
190
192 "IOManager: registered VideoFileReader id={}", id);
193
194 return id;
195}
#define MF_WARN(comp, ctx,...)
#define MF_DEBUG(comp, ctx,...)
uint32_t id
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, id, 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: