private VirtualTrackInfo doBuild(ContextInfo contextInfo, VirtualTrackInfo prevVirtualTrack)
throws IOException, XmlParsingException, MediaInfoException {
String essence = contextProvider.getResourceContext().getParameterValue(
ResourceContextParameters.ESSENCE, contextInfo);
String trackFileId = contextProvider.getResourceContext().getParameterValue(
ResourceContextParameters.TRACK_FILE_ID, contextInfo);
ImmutablePair<SequenceType, String> key = ImmutablePair.of(contextInfo.getSequenceType(), trackFileId);
VirtualTrackInfo processedInfo = processedMediaInfo.get(key);
if (processedInfo == null) {
File outputFile = getMediaInfo(contextInfo.getSequenceType(), essence);
processedInfo = getTrackInfo(outputFile, contextInfo, essence);
processedMediaInfo.put(key, processedInfo);
}
validateSequenceHomogeneous(prevVirtualTrack, processedInfo);
buildResourceContext(processedInfo, contextInfo);
return processedInfo;
}