/** * Gets a total duration of the given virtual track in milliseconds. * * @param contextProvider a context provider * @param seqType a sequence (virtual track) type * @param seqUuid a sequence (virtual track) UUID * @return a total duration of a virtual track in milliseconds */ public static long getVirtualTrackDurationMS(TemplateParameterContextProvider contextProvider, SequenceType seqType, SequenceUUID seqUuid) { SegmentTemplateParameterContext segmentContext = contextProvider.getSegmentContext(); ResourceTemplateParameterContext resourceContext = contextProvider.getResourceContext(); long sequenceDuration = 0L; for (SegmentUUID segmUuid : segmentContext.getUuids()) { for (ResourceUUID resUuid : resourceContext.getUuids(ResourceKey.create(segmUuid, seqUuid, seqType))) { ContextInfo contextInfo = new ContextInfoBuilder() .setResourceUuid(resUuid) .setSegmentUuid(segmUuid) .setSequenceUuid(seqUuid) .setSequenceType(seqType) .build(); sequenceDuration += getResourceDurationMS(contextProvider, contextInfo); } } return sequenceDuration; }