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

◆ extract_container_metadata()

void MayaFlux::IO::FFmpegDemuxContext::extract_container_metadata ( FileMetadata out_metadata) const

Extract container-level metadata tags into a FileMetadata attributes map.

Parameters
out_metadataTarget metadata struct; attributes field is populated.

Definition at line 158 of file FFmpegDemuxContext.cpp.

159{
160 if (!format_context)
161 return;
162
163 out.format = format_context->iformat->name;
164 out.mime_type = format_context->iformat->mime_type
165 ? format_context->iformat->mime_type
166 : "application/" + std::string(format_context->iformat->name);
167
168 if (format_context->duration != AV_NOPTS_VALUE)
169 out.attributes["duration_seconds"] = (double)format_context->duration / static_cast<double>(AV_TIME_BASE);
170
171 out.attributes["bit_rate"] = static_cast<int64_t>(format_context->bit_rate);
172
173 AVDictionaryEntry* tag = nullptr;
174 while ((tag = av_dict_get(format_context->metadata, "", tag, AV_DICT_IGNORE_SUFFIX)))
175 out.attributes[std::string("tag_") + tag->key] = std::string(tag->value);
176}
AVFormatContext * format_context
Owned; freed in destructor.

References MayaFlux::IO::FileMetadata::attributes, MayaFlux::IO::FileMetadata::format, format_context, and MayaFlux::IO::FileMetadata::mime_type.