public class ConstantBitrateSeekMap extends java.lang.Object implements SeekMap
SeekMap implementation that assumes the stream has a constant bitrate and consists of
multiple independent frames of the same size. Seek points are calculated to be at frame
boundaries.SeekMap.SeekPoints, SeekMap.Unseekable| Constructor and Description |
|---|
ConstantBitrateSeekMap(long inputLength,
long firstFrameBytePosition,
int bitrate,
int frameSize)
Constructs a new instance from a stream.
|
| 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.
|
long |
getTimeUsAtPosition(long position)
Returns the stream time in microseconds for a given position.
|
boolean |
isSeekable()
Returns whether seeking is supported.
|
public ConstantBitrateSeekMap(long inputLength,
long firstFrameBytePosition,
int bitrate,
int frameSize)
inputLength - The length of the stream in bytes, or C.LENGTH_UNSET if unknown.firstFrameBytePosition - The byte-position of the first frame in the stream.bitrate - The bitrate (which is assumed to be constant in the stream).frameSize - The size of each frame in the stream in bytes. May be C.LENGTH_UNSET
if unknown.public boolean isSeekable()
SeekMapisSeekable in interface SeekMappublic SeekMap.SeekPoints getSeekPoints(long timeUs)
SeekMapSeekMap.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 SeekMaptimeUs - A seek time in microseconds.public long getDurationUs()
SeekMapgetDurationUs in interface SeekMapC.TIME_UNSET if the duration is
unknown.public long getTimeUsAtPosition(long position)
position - The stream byte-position.