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

◆ ~IOManager()

MayaFlux::IO::IOManager::~IOManager ( )

Unregisters IOService, releases all owned readers, clears stored buffers.

Definition at line 78 of file IOManager.cpp.

79{
80 {
81 std::vector<uint32_t> ids;
82 {
83 std::lock_guard lock(m_audio_captures_mutex);
84 ids.reserve(m_audio_captures.size());
85 for (const auto& [id, _] : m_audio_captures)
86 ids.push_back(id);
87 }
88 for (auto id : ids)
89 stop_capture(id);
90 }
91
92 for (auto& w : m_writers) {
93 if (w->is_open()) {
94 auto fut = w->close();
95 fut.wait();
96 }
97 }
98
100 .unregister_service<Registry::Service::IOService>();
101
102 m_io_service.reset();
103
104 {
105 std::unique_lock lock(m_readers_mutex);
106 m_video_readers.clear();
107 }
108
109 {
110 std::unique_lock lock(m_camera_mutex);
111 m_camera_readers.clear();
112 }
113
114 {
115 std::unique_lock lock(m_buffers_mutex);
116 m_video_buffers.clear();
117 m_audio_buffers.clear();
118 }
119
121}
#define MF_INFO(comp, ctx,...)
std::unordered_map< uint64_t, std::shared_ptr< CameraReader > > m_camera_readers
std::unordered_map< std::shared_ptr< Kakshya::SoundFileContainer >, std::vector< std::shared_ptr< Buffers::SoundContainerBuffer > > > m_audio_buffers
std::unordered_map< uint32_t, AudioCaptureState > m_audio_captures
void stop_capture(uint32_t capture_id)
Stop a running capture and finalise the file.
std::vector< std::shared_ptr< SoundFileWriter > > m_writers
std::shared_mutex m_camera_mutex
std::shared_mutex m_buffers_mutex
std::shared_ptr< Registry::Service::IOService > m_io_service
std::shared_mutex m_readers_mutex
std::mutex m_audio_captures_mutex
std::unordered_map< uint64_t, std::shared_ptr< VideoFileReader > > m_video_readers
std::unordered_map< std::shared_ptr< Kakshya::VideoFileContainer >, std::shared_ptr< Buffers::VideoContainerBuffer > > m_video_buffers
static BackendRegistry & instance()
Get the global registry instance.
void unregister_service()
Unregister a service.
@ Init
Engine/subsystem initialization.
@ Core
Core engine, backend, subsystems.

References MayaFlux::Journal::Core, MayaFlux::Journal::Init, MayaFlux::Registry::BackendRegistry::instance(), m_audio_buffers, m_audio_captures, m_audio_captures_mutex, m_buffers_mutex, m_camera_mutex, m_camera_readers, m_io_service, m_readers_mutex, m_video_buffers, m_video_readers, m_writers, MF_INFO, stop_capture(), and MayaFlux::Registry::BackendRegistry::unregister_service().

+ Here is the call graph for this function: