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

◆ stop_audio_capture()

void MayaFlux::IO::IOManager::stop_audio_capture ( uint32_t  capture_id)

Stop a running audio capture and finalise the file.

Unregisters the AudioBackendService observer, calls writer->close(), and stores the encode future in m_save_tasks. Non-blocking.

Parameters
capture_idHandle returned by capture_output().

Definition at line 575 of file IOManager.cpp.

576{
577 AudioCaptureState state;
578 {
579 std::lock_guard lock(m_audio_captures_mutex);
580 auto it = m_audio_captures.find(capture_id);
581 if (it == m_audio_captures.end()) {
583 "stop_audio_capture: unknown capture_id={}", capture_id);
584 return;
585 }
586 state = std::move(it->second);
587 m_audio_captures.erase(it);
588 }
589
591 .get_service<Registry::Service::AudioBackendService>();
592 if (svc)
593 svc->unregister_output_observer(state.observer_id);
594
595 track_save_task(state.writer->close());
596}
#define MF_WARN(comp, ctx,...)
void track_save_task(std::future< bool > fut)
Retain a save task in m_save_tasks and opportunistically reclaim finished ones.
std::unordered_map< uint32_t, AudioCaptureState > m_audio_captures
std::mutex m_audio_captures_mutex
Interface * get_service()
Query for a backend service.
static BackendRegistry & instance()
Get the global registry instance.
@ FileIO
Filesystem I/O operations.
@ IO
Networking, file handling, streaming.

References MayaFlux::Journal::FileIO, MayaFlux::Registry::BackendRegistry::get_service(), MayaFlux::Registry::BackendRegistry::instance(), MayaFlux::Journal::IO, m_audio_captures, m_audio_captures_mutex, MF_WARN, MayaFlux::IO::IOManager::AudioCaptureState::observer_id, track_save_task(), and MayaFlux::IO::IOManager::AudioCaptureState::writer.

Referenced by stop().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: