ChunkSource
@UnstableApi
public interface ChunkSource
DashChunkSource |
A |
FakeChunkSource |
Fake |
SsChunkSource |
A |
DefaultDashChunkSource |
A default |
DefaultSsChunkSource |
A default |
A provider of Chunks for a ChunkSampleStream to load.
Summary
Public methods |
|
|---|---|
abstract long |
getAdjustedSeekPositionUs(Adjusts a seek position given the specified |
abstract void |
getNextChunk(Returns the next chunk to load. |
abstract int |
getPreferredQueueSize(long playbackPositionUs, List<MediaChunk> queue)Evaluates whether |
abstract void |
If the source is currently having difficulty providing chunks, then this method throws the underlying error. |
abstract void |
onChunkLoadCompleted(Chunk chunk)Called when the |
abstract boolean |
onChunkLoadError(Called when the |
abstract void |
release()Releases any held resources. |
abstract boolean |
shouldCancelLoad(Returns whether an ongoing load of a chunk should be canceled. |
Public methods
getAdjustedSeekPositionUs
abstract long getAdjustedSeekPositionUs(
long positionUs,
SeekParameters seekParameters
)
Adjusts a seek position given the specified SeekParameters. Chunk boundaries are used as sync points.
| Parameters | |
|---|---|
long positionUs |
The seek position in microseconds. |
SeekParameters seekParameters |
Parameters that control how the seek is performed. |
| Returns | |
|---|---|
long |
The adjusted seek position, in microseconds. |
getNextChunk
abstract void getNextChunk(
LoadingInfo loadingInfo,
long loadPositionUs,
List<MediaChunk> queue,
ChunkHolder out
)
Returns the next chunk to load.
If a chunk is available then chunk is set. If the end of the stream has been reached then endOfStream is set. If a chunk is not available but the end of the stream has not been reached, the ChunkHolder is not modified.
| Parameters | |
|---|---|
LoadingInfo loadingInfo |
The |
long loadPositionUs |
The current load position in microseconds. If |
List<MediaChunk> queue |
The queue of buffered |
ChunkHolder out |
A holder to populate. |
getPreferredQueueSize
abstract int getPreferredQueueSize(long playbackPositionUs, List<MediaChunk> queue)
Evaluates whether MediaChunks should be removed from the back of the queue.
Removing MediaChunks from the back of the queue can be useful if they could be replaced with chunks of a significantly higher quality (e.g. because the available bandwidth has substantially increased).
Will only be called if no MediaChunk in the queue is currently loading.
| Parameters | |
|---|---|
long playbackPositionUs |
The current playback position, in microseconds. |
List<MediaChunk> queue |
The queue of buffered |
| Returns | |
|---|---|
int |
The preferred queue size. |
maybeThrowError
abstract void maybeThrowError()
If the source is currently having difficulty providing chunks, then this method throws the underlying error. Otherwise does nothing.
| Throws | |
|---|---|
java.io.IOException |
The underlying error. |
onChunkLoadCompleted
abstract void onChunkLoadCompleted(Chunk chunk)
Called when the ChunkSampleStream has finished loading a chunk obtained from this source.
| Parameters | |
|---|---|
Chunk chunk |
The chunk whose load has been completed. |
onChunkLoadError
abstract boolean onChunkLoadError(
Chunk chunk,
boolean cancelable,
LoadErrorHandlingPolicy.LoadErrorInfo loadErrorInfo,
LoadErrorHandlingPolicy loadErrorHandlingPolicy
)
Called when the ChunkSampleStream encounters an error loading a chunk obtained from this source.
| Parameters | |
|---|---|
Chunk chunk |
The chunk whose load encountered the error. |
boolean cancelable |
Whether the load can be canceled. |
LoadErrorHandlingPolicy.LoadErrorInfo loadErrorInfo |
The load error info. |
LoadErrorHandlingPolicy loadErrorHandlingPolicy |
The load error handling policy to customize the behaviour of handling the load error. |
| Returns | |
|---|---|
boolean |
Whether the load should be canceled so that a replacement chunk can be loaded instead. Must be |
shouldCancelLoad
abstract boolean shouldCancelLoad(
long playbackPositionUs,
Chunk loadingChunk,
List<MediaChunk> queue
)
Returns whether an ongoing load of a chunk should be canceled.
| Parameters | |
|---|---|
long playbackPositionUs |
The current playback position, in microseconds. |
Chunk loadingChunk |
The currently loading |
List<MediaChunk> queue |
The queue of buffered |
| Returns | |
|---|---|
boolean |
Whether the ongoing load of |