Class BinarySearchSeeker.BinarySearchSeekMap
- java.lang.Object
-
- com.google.android.exoplayer2.extractor.BinarySearchSeeker.BinarySearchSeekMap
-
- All Implemented Interfaces:
SeekMap
- Enclosing class:
- BinarySearchSeeker
public static class BinarySearchSeeker.BinarySearchSeekMap extends Object implements SeekMap
ASeekMap
implementation that returns the estimated byte location fromBinarySearchSeeker.SeekOperationParams.calculateNextSearchBytePosition(long, long, long, long, long, long)
for eachgetSeekPoints(long)
query.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.google.android.exoplayer2.extractor.SeekMap
SeekMap.SeekPoints, SeekMap.Unseekable
-
-
Constructor Summary
Constructors Constructor 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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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)
-
-
-
Constructor Detail
-
BinarySearchSeekMap
public BinarySearchSeekMap(BinarySearchSeeker.SeekTimestampConverter seekTimestampConverter, long durationUs, long floorTimePosition, long ceilingTimePosition, long floorBytePosition, long ceilingBytePosition, long approxBytesPerFrame)
Constructs a new instance of this seek map.
-
-
Method Detail
-
isSeekable
public boolean isSeekable()
Description copied from interface:SeekMap
Returns whether seeking is supported.- Specified by:
isSeekable
in interfaceSeekMap
- Returns:
- Whether seeking is supported.
-
getSeekPoints
public SeekMap.SeekPoints getSeekPoints(long timeUs)
Description copied from interface:SeekMap
Obtains seek points for the specified seek time in microseconds. The returnedSeekMap.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.
- Specified by:
getSeekPoints
in interfaceSeekMap
- Parameters:
timeUs
- A seek time in microseconds.- Returns:
- The corresponding seek points.
-
getDurationUs
public long getDurationUs()
Description copied from interface:SeekMap
Returns the duration of the stream in microseconds.- Specified by:
getDurationUs
in interfaceSeekMap
- Returns:
- The duration of the stream in microseconds, or
C.TIME_UNSET
if the duration is unknown.
-
timeUsToTargetTime
public long timeUsToTargetTime(long timeUs)
-
-