@UnstableApi
public final class ChunkIndex implements SeekMap


Defines chunks of samples within a media stream.

Summary

Public fields

final long
final long[]

The chunk durations, in microseconds.

final int

The number of chunks.

final long[]

The chunk byte offsets.

final int[]

The chunk sizes, in bytes.

final long[]

The start time of each chunk, in microseconds.

Public constructors

ChunkIndex(
    int[] sizes,
    long[] offsets,
    long[] durationsUs,
    long[] timesUs
)

Public methods

int
getChunkIndex(long timeUs)

Obtains the index of the chunk corresponding to a given time.

long

Returns the duration of the stream in microseconds.

SeekMap.SeekPoints
getSeekPoints(long timeUs)

Obtains seek points for the specified seek time in microseconds.

boolean

Returns whether seeking is supported.

String

Public fields

durationUs

public final long durationUs

durationsUs

public final long[] durationsUs

The chunk durations, in microseconds.

length

public final int length

The number of chunks.

offsets

public final long[] offsets

The chunk byte offsets.

sizes

public final int[] sizes

The chunk sizes, in bytes.

timesUs

public final long[] timesUs

The start time of each chunk, in microseconds.

Public constructors

ChunkIndex

public ChunkIndex(
    int[] sizes,
    long[] offsets,
    long[] durationsUs,
    long[] timesUs
)
Parameters
int[] sizes

The chunk sizes, in bytes.

long[] offsets

The chunk byte offsets.

long[] durationsUs

The chunk durations, in microseconds.

long[] timesUs

The start time of each chunk, in microseconds.

Public methods

getChunkIndex

public int getChunkIndex(long timeUs)

Obtains the index of the chunk corresponding to a given time.

Parameters
long timeUs

The time, in microseconds.

Returns
int

The index of the corresponding chunk.

getDurationUs

public long getDurationUs()

Returns the duration of the stream in microseconds.

Returns
long

The duration of the stream in microseconds, or TIME_UNSET if the duration is unknown.

getSeekPoints

public SeekMap.SeekPoints getSeekPoints(long timeUs)

Obtains seek points for the specified seek time in microseconds. The returned 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.

isSeekable

public boolean isSeekable()

Returns whether seeking is supported.

Returns
boolean

Whether seeking is supported.

toString

public String toString()