@Override public byte[] combineTimelines(final List<byte[]> timesList, final Integer sampleCount) { final byte[] timeBytes = combineTimelines(timesList); final int combinedSampleCount = countTimeBytesSamples(timeBytes); if (sampleCount != null && sampleCount != combinedSampleCount) { final StringBuilder builder = new StringBuilder(); builder.append("In compressTimelineTimes(), combined sample count is ") .append(combinedSampleCount) .append(", but sample count is ") .append(sampleCount) .append(", combined TimeBytes ") .append(Hex.encodeHex(timeBytes)) .append(", ") .append(timesList.size()) .append(" chunks"); for (final byte[] bytes : timesList) { builder.append(", ") .append(Hex.encodeHex(bytes)); } log.error(builder.toString()); } return timeBytes; }
if (lastTime == 0) { lastTime = newTime; writeTime(0, lastTime, dataStream); continue; } else if (newTime < lastTime) { repeatCount++; if (repeatCount == MAX_SHORT_REPEAT_COUNT) { writeRepeatedDelta(delta, repeatCount, dataStream); repeatCount = 0; writeRepeatedDelta(lastDelta, repeatCount, dataStream); } else { if (repeatCount > 0) { writeRepeatedDelta(lastDelta, repeatCount, dataStream); writeTime(0, newTime, dataStream); repeatCount = 0; lastDelta = 0; writeRepeatedDelta(lastDelta, repeatCount, dataStream);
public TimelineLoadGenerator() { this.timelineCoder = new DefaultTimelineCoder();
writeTime(0, newTime, dataStream); lastTime = newTime; lastDelta = 0; lastTime = newTime; } else { writeRepeatedDelta(lastDelta, repeatCount, dataStream); if (useNewDelta) { lastDelta = newDelta; lastTime = newTime; } else { writeTime(lastTime, newTime, dataStream); lastTime = newTime; lastDelta = 0; writeTime(lastTime, newTime, dataStream); lastTime = newTime; lastDelta = 0; writeRepeatedDelta(lastDelta, repeatCount, dataStream);