docs: public void seek(final long timestamp) {
      if ((timestamp & 0xFFFFFFFF00000000L) != 0) {  // negative or not 32 bits
        throw new IllegalArgumentException("invalid timestamp: " + timestamp);
      }
      // Do a binary search to find the timestamp given or the one right before.
      short lo = 0;
      short hi = (short) dp.size();
  
      while (lo <= hi) {
        index = (short) ((lo + hi) >>> 1);
        long cmp = dp.timestamp(index) - timestamp;
  
        if (cmp < 0) {
          lo = (short) (index + 1);
        } else if (cmp > 0) {
          hi = (short) (index - 1);
        } else {
          index--;  // 'index' is exactly on the timestamp wanted.
          return;   // So let's go right before that for next().
        }
      }
      // We found the timestamp right before as there was no exact match.
      // We take that position - 1 so the next call to next() returns it.
      index = (short) (lo - 1);
      // If the index we found was not the first or the last point, let's
      // do a small extra sanity check to ensure the position we found makes
      // sense: the timestamp we're at must not be >= what we're looking for.
      if (0 < index && index < dp.size() && dp.timestamp(index) >= timestamp) {
        throw new AssertionError("seeked after the time wanted!"
            + " timestamp=" + timestamp
            + ", index=" + index
            + ", dp.timestamp(index)=" + dp.timestamp(index)
            + ", this=" + this);
      }
    }