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

◆ build_metadata()

void MayaFlux::IO::SoundFileReader::build_metadata ( const std::shared_ptr< FFmpegDemuxContext > &  demux,
const std::shared_ptr< AudioStreamContext > &  audio 
) const
private

Build and cache FileMetadata from both contexts.

Definition at line 229 of file SoundFileReader.cpp.

232{
233 FileMetadata meta;
234 demux->extract_container_metadata(meta);
235 audio->extract_stream_metadata(*demux, meta);
236
237 meta.file_size = std::filesystem::file_size(m_filepath);
238 auto ftime = std::filesystem::last_write_time(m_filepath);
239 meta.modification_time = std::chrono::system_clock::time_point(
240 std::chrono::seconds(
241 std::chrono::duration_cast<std::chrono::seconds>(ftime.time_since_epoch())));
242
243 std::lock_guard<std::mutex> ml(m_metadata_mutex);
244 m_cached_metadata = std::move(meta);
245}
std::mutex m_metadata_mutex
Mutex for thread-safe metadata access.
std::optional< FileMetadata > m_cached_metadata
Cached file metadata.
std::string m_filepath
Path to the currently open file.

References MayaFlux::IO::FileMetadata::file_size, m_cached_metadata, m_filepath, m_metadata_mutex, and MayaFlux::IO::FileMetadata::modification_time.

Referenced by get_metadata(), open(), and open_from_demux().

+ Here is the caller graph for this function: