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

◆ get_metadata()

std::optional< FileMetadata > MayaFlux::IO::SoundFileReader::get_metadata ( ) const
overridevirtual

Get metadata for the currently open file.

Returns
Optional FileMetadata structure.

Implements MayaFlux::IO::FileReader.

Definition at line 191 of file SoundFileReader.cpp.

192{
193 std::shared_lock<std::shared_mutex> lock(m_context_mutex);
194 if (!m_demux || !m_audio)
195 return std::nullopt;
196
197 {
198 std::lock_guard<std::mutex> ml(m_metadata_mutex);
200 return m_cached_metadata;
201 }
202
204
205 std::lock_guard<std::mutex> ml(m_metadata_mutex);
206 return m_cached_metadata;
207}
void build_metadata(const std::shared_ptr< FFmpegDemuxContext > &demux, const std::shared_ptr< AudioStreamContext > &audio) const
Build and cache FileMetadata from both contexts.
std::shared_ptr< AudioStreamContext > m_audio
Codec + resampler state.
std::shared_mutex m_context_mutex
Guards both context pointers.
std::mutex m_metadata_mutex
Mutex for thread-safe metadata access.
std::optional< FileMetadata > m_cached_metadata
Cached file metadata.
std::shared_ptr< FFmpegDemuxContext > m_demux
Container / format state.

References build_metadata(), m_audio, m_cached_metadata, m_context_mutex, m_demux, and m_metadata_mutex.

+ Here is the call graph for this function: