in src/main/java/com/amazonaws/kinesisvideo/parser/utilities/FragmentMetadataVisitor.java [157:188]
public void visit(MkvEndMasterElement endMasterElement) throws MkvElementVisitException {
switch (state) {
case IN_CLUSTER:
if (MkvTypeInfos.CLUSTER.equals(endMasterElement.getElementMetaData().getTypeInfo())) {
state = State.POST_CLUSTER;
}
break;
case POST_CLUSTER:
if (MkvTypeInfos.SEGMENT.equals(endMasterElement.getElementMetaData().getTypeInfo())) {
log.debug("Segment end {} changing state to NEW", endMasterElement);
state = State.NEW;
}
break;
case PRE_CLUSTER:
if (MkvTypeInfos.SEGMENT.equals(endMasterElement.getElementMetaData().getTypeInfo())) {
log.warn("Segment end {} while in PRE_CLUSTER. Collecting cluster info", endMasterElement);
collectPreClusterInfo();
}
break;
default:
break;
}
// If any tags section finishes, try to update the millisbehind latest and continuation token
// since there can be multiple in the same segment.
if (MkvTypeInfos.TAGS.equals(endMasterElement.getElementMetaData().getTypeInfo())) {
if (log.isDebugEnabled()) {
log.debug("TAGS end {}, potentially updating millisbehindlatest and continuation token",
endMasterElement);
}
setMillisBehindLatestAndContinuationToken();
}
}