/** * Gets a total duration of the given virtual track in edit units (frames or samples). * * @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 edit units (frames or samples). */ public static BigInteger getVirtualTrackDurationEU(TemplateParameterContextProvider contextProvider, SequenceType seqType, SequenceUUID seqUuid) { SegmentTemplateParameterContext segmentContext = contextProvider.getSegmentContext(); ResourceTemplateParameterContext resourceContext = contextProvider.getResourceContext(); BigInteger sequenceDuration = BigInteger.ZERO; 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 = sequenceDuration.add(getResourceDurationEU(contextProvider, contextInfo)); } } return sequenceDuration; }