MayaFlux 0.4.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 193 of file SoundFileReader.cpp.

194{
195 std::shared_lock<std::shared_mutex> lock(m_context_mutex);
196 if (!m_demux || !m_audio)
197 return std::nullopt;
198
199 {
200 std::lock_guard<std::mutex> ml(m_metadata_mutex);
202 return m_cached_metadata;
203 }
204
206
207 std::lock_guard<std::mutex> ml(m_metadata_mutex);
208 return m_cached_metadata;
209}
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: