private long getCplTotalDurationMs() { // bmx uses the smallest video/audio duration as a total duration when it's not equal long result = Long.MAX_VALUE; SequenceTemplateParameterContext sequenceContext = contextProvider.getSequenceContext(); for (SequenceType seqType : sequenceContext.getSequenceTypes()) { for (SequenceUUID seqUuid : sequenceContext.getUuids(seqType)) { long trackDuration = CplHelper.getVirtualTrackDurationMS(contextProvider, seqType, seqUuid); result = Math.min(result, trackDuration); } } return result; }
public void checkDuration(DestContextTypeMap destContextMap) { DestContextMapWrapper wrapper = new DestContextMapWrapper(destContextMap); long durationMs = CplHelper.getVirtualTrackDurationMS(contextProvider, SequenceType.VIDEO, getSequenceUUID()); Long durationS = Duration.ofMillis(durationMs).getSeconds(); if (wrapper.compareToLong(DURATION.getName(), durationS, true) < 0) { logger.warn("Duration of source in format {} supposed to be less than {} h.", destContextMap.getName(), Duration.ofMillis(wrapper.getValueAsLong(DURATION.getName())).toHours()); } }
@Test public void virtualTrackDurationMS() { // the values as specified in CPL.xml assertEquals(39940L, CplHelper.getVirtualTrackDurationMS( contextProvider, SequenceType.AUDIO, SequenceUUID.create("urn:uuid:63b41d86-c5df-4169-b036-3a25024bd711"))); assertEquals(83820L, CplHelper.getVirtualTrackDurationMS( contextProvider, SequenceType.VIDEO, SequenceUUID.create("urn:uuid:a4f226e7-adac-45a4-adbf-83335cf02d0d"))); }