public static class BinarySearchSeeker.BinarySearchSeekMap extends Object implements SeekMap
SeekMap
implementation that returns the estimated byte location from BinarySearchSeeker.SeekOperationParams.calculateNextSearchBytePosition(long, long, long, long, long, long)
for
each getSeekPoints(long)
query.SeekMap.SeekPoints, SeekMap.Unseekable
Constructor and Description |
---|
BinarySearchSeekMap(BinarySearchSeeker.SeekTimestampConverter seekTimestampConverter,
long durationUs,
long floorTimePosition,
long ceilingTimePosition,
long floorBytePosition,
long ceilingBytePosition,
long approxBytesPerFrame)
Constructs a new instance of this seek map.
|
Modifier and Type | Method and Description |
---|---|
long |
getDurationUs()
Returns the duration of the stream in microseconds.
|
SeekMap.SeekPoints |
getSeekPoints(long timeUs)
Obtains seek points for the specified seek time in microseconds.
|
boolean |
isSeekable()
Returns whether seeking is supported.
|
long |
timeUsToTargetTime(long timeUs) |
public BinarySearchSeekMap(BinarySearchSeeker.SeekTimestampConverter seekTimestampConverter, long durationUs, long floorTimePosition, long ceilingTimePosition, long floorBytePosition, long ceilingBytePosition, long approxBytesPerFrame)
public boolean isSeekable()
SeekMap
isSeekable
in interface SeekMap
public SeekMap.SeekPoints getSeekPoints(long timeUs)
SeekMap
SeekMap.SeekPoints
will contain one or two distinct seek points.
Two seek points [A, B] are returned in the case that seeking can only be performed to discrete points in time, there does not exist a seek point at exactly the requested time, and there exist seek points on both sides of it. In this case A and B are the closest seek points before and after the requested time. A single seek point is returned in all other cases.
getSeekPoints
in interface SeekMap
timeUs
- A seek time in microseconds.public long getDurationUs()
SeekMap
getDurationUs
in interface SeekMap
C.TIME_UNSET
if the duration is
unknown.public long timeUsToTargetTime(long timeUs)