ConstantBitrateSeekMap
@UnstableApi
public class ConstantBitrateSeekMap implements SeekMap
A 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.
Summary
Public fields |
|
|---|---|
final long |
Public constructors |
|---|
ConstantBitrateSeekMap(Creates an instance with |
ConstantBitrateSeekMap(Creates an instance. |
Public methods |
|
|---|---|
long |
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 |
Returns whether seeking is supported. |
Public fields
Public constructors
ConstantBitrateSeekMap
public ConstantBitrateSeekMap(
long inputLength,
long firstFrameBytePosition,
int bitrate,
int frameSize
)
Creates an instance with allowSeeksIfLengthUnknown set to false.
| Parameters | |
|---|---|
long inputLength |
The length of the stream in bytes, or |
long firstFrameBytePosition |
The byte-position of the first frame in the stream. |
int bitrate |
The bitrate (which is assumed to be constant in the stream). |
int frameSize |
The size of each frame in the stream in bytes. May be |
ConstantBitrateSeekMap
public ConstantBitrateSeekMap(
long inputLength,
long firstFrameBytePosition,
int bitrate,
int frameSize,
boolean allowSeeksIfLengthUnknown
)
Creates an instance.
| Parameters | |
|---|---|
long inputLength |
The length of the stream in bytes, or |
long firstFrameBytePosition |
The byte-position of the first frame in the stream. |
int bitrate |
The bitrate (which is assumed to be constant in the stream). |
int frameSize |
The size of each frame in the stream in bytes. May be |
boolean allowSeeksIfLengthUnknown |
Whether to allow seeking even if the length of the content is unknown. |
Public methods
getDurationUs
public long getDurationUs()
Returns the duration of the stream in microseconds.
| Returns | |
|---|---|
long |
The duration of the stream in microseconds, or |
getSeekPoints
public SeekMap.SeekPoints getSeekPoints(long timeUs)
Obtains seek points for the specified seek time in microseconds. The returned 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.
| Parameters | |
|---|---|
long timeUs |
A seek time in microseconds. |
| Returns | |
|---|---|
SeekMap.SeekPoints |
The corresponding seek points. |
getTimeUsAtPosition
public long getTimeUsAtPosition(long position)
Returns the stream time in microseconds for a given position.
| Parameters | |
|---|---|
long position |
The stream byte-position. |
| Returns | |
|---|---|
long |
The stream time in microseconds for the given position. |
isSeekable
public boolean isSeekable()
Returns whether seeking is supported.
| Returns | |
|---|---|
boolean |
Whether seeking is supported. |