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 |
|
final boolean |
Public constructors |
|---|
ConstantBitrateSeekMap(Creates an instance with |
ConstantBitrateSeekMap(Creates an instance. |
Protected constructors |
|---|
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 this |
boolean |
Returns whether seeking is supported. |
Protected methods |
|
|---|---|
final int |
Returns the bitrate of the stream (as passed to the constructor). |
final long |
Returns the byte position of the first frame in the stream (as passed to the constructor). |
final int |
Returns the size of each frame in the stream in bytes, or |
final boolean |
Returns whether seeking is permitted if the stream length is unknown (as passed to the constructor). |
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. |
Protected constructors
ConstantBitrateSeekMap
protected ConstantBitrateSeekMap(
long inputLength,
long firstFrameBytePosition,
int bitrate,
int frameSize,
boolean allowSeeksIfLengthUnknown,
boolean isEstimated
)
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. |
boolean isEstimated |
Whether this |
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. |
isEstimated
public boolean isEstimated()
Returns whether this SeekMap is based on estimations. The default value is
false.
An example of this is depending on the declared byte length of a stream or file, rather than a media byte length derived from metadata from within the stream itself.
isSeekable
public boolean isSeekable()
Returns whether seeking is supported.
| Returns | |
|---|---|
boolean |
Whether seeking is supported. |
Protected methods
getBitrate
protected final int getBitrate()
Returns the bitrate of the stream (as passed to the constructor).
getFirstFramePosition
protected final long getFirstFramePosition()
Returns the byte position of the first frame in the stream (as passed to the constructor).
getFrameSize
protected final int getFrameSize()
Returns the size of each frame in the stream in bytes, or 1 if LENGTH_UNSET was passed to the constructor.
shouldAllowSeeksIfLengthUnknown
protected final boolean shouldAllowSeeksIfLengthUnknown()
Returns whether seeking is permitted if the stream length is unknown (as passed to the constructor).