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

◆ extract_cue_regions()

std::vector< FileRegion > MayaFlux::IO::AudioStreamContext::extract_cue_regions ( const FFmpegDemuxContext demux) const

Extract cue/marker regions from stream metadata tags.

Parameters
demuxThe demux context.
Returns
Vector of FileRegion with type="cue" or "marker".

Definition at line 205 of file AudioStreamContext.cpp.

207{
208 std::vector<FileRegion> regions;
209 if (stream_index < 0 || sample_rate == 0)
210 return regions;
211
212 AVStream* stream = demux.get_stream(stream_index);
213 if (!stream)
214 return regions;
215
216 AVDictionaryEntry* tag = nullptr;
217 int idx = 0;
218 while ((tag = av_dict_get(stream->metadata, "cue", tag, AV_DICT_IGNORE_SUFFIX))) {
219 FileRegion r;
220 r.type = "cue";
221 r.name = tag->value;
222 r.start_coordinates = { static_cast<uint64_t>(idx) };
223 r.end_coordinates = { static_cast<uint64_t>(idx) };
224 r.attributes["label"] = std::string(tag->value);
225 regions.push_back(std::move(r));
226 ++idx;
227 }
228 return regions;
229}

References MayaFlux::IO::FileRegion::attributes, MayaFlux::IO::FileRegion::end_coordinates, MayaFlux::IO::FFmpegDemuxContext::get_stream(), MayaFlux::IO::FileRegion::name, sample_rate, MayaFlux::IO::FileRegion::start_coordinates, stream_index, and MayaFlux::IO::FileRegion::type.

+ Here is the call graph for this function: