MayaFlux 0.2.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 227 of file SoundFileReader.cpp.

230{
231 FileMetadata meta;
232 demux->extract_container_metadata(meta);
233 audio->extract_stream_metadata(*demux, meta);
234
235 meta.file_size = std::filesystem::file_size(m_filepath);
236 auto ftime = std::filesystem::last_write_time(m_filepath);
237 meta.modification_time = std::chrono::system_clock::time_point(
238 std::chrono::seconds(
239 std::chrono::duration_cast<std::chrono::seconds>(ftime.time_since_epoch())));
240
241 std::lock_guard<std::mutex> ml(m_metadata_mutex);
242 m_cached_metadata = std::move(meta);
243}
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: