ContainerMediaChunk


@UnstableApi
class ContainerMediaChunk : BaseMediaChunk


A BaseMediaChunk that uses an Extractor to decode sample data.

Summary

Public constructors

ContainerMediaChunk(
    dataSource: DataSource!,
    dataSpec: DataSpec!,
    trackFormat: Format!,
    @C.SelectionReason trackSelectionReason: Int,
    trackSelectionData: Any?,
    startTimeUs: Long,
    endTimeUs: Long,
    clippedStartTimeUs: Long,
    clippedEndTimeUs: Long,
    chunkIndex: Long,
    chunkCount: Int,
    sampleOffsetUs: Long,
    chunkExtractor: ChunkExtractor!
)

Public functions

Unit

Cancels the load.

Long

Returns the next chunk index or INDEX_UNSET if it is not known.

Boolean

Returns whether the chunk has been fully loaded.

Unit

Performs the load, returning on completion or cancellation.

Protected functions

ChunkExtractor.TrackOutputProvider!

Returns the TrackOutputProvider to be used by the wrapped extractor.

Inherited functions

From androidx.media3.exoplayer.source.chunk.BaseMediaChunk
Int
getFirstSampleIndex(trackIndex: Int)

Returns the index of the first sample in the specified track of the output that will originate from this chunk.

Unit

Initializes the chunk for loading, setting the BaseMediaChunkOutput that will receive samples as they are loaded.

From androidx.media3.exoplayer.source.chunk.Chunk
Long

Returns the number of bytes that have been loaded.

Long

Returns the duration of the chunk in microseconds.

(Mutable)Map<String!, (Mutable)List<String!>!>!

Returns the response headers associated with the last open call.

Uri!

Returns the Uri associated with the last open call.

Inherited properties

From androidx.media3.exoplayer.source.chunk.BaseMediaChunk
Long

The time from which output will end, or TIME_UNSET if output will end at the end of the chunk.

Long

The time from which output will begin, or TIME_UNSET if output will begin from the start of the chunk.

@MonotonicNonNull BaseMediaChunkOutput!
From androidx.media3.exoplayer.source.chunk.Chunk
StatsDataSource!
DataSpec!

The DataSpec that defines the data to be loaded.

Long

The end time of the media contained by the chunk, or TIME_UNSET if the data being loaded does not contain media samples.

Long

Identifies the load task for this loadable.

Long

The start time of the media contained by the chunk, or TIME_UNSET if the data being loaded does not contain media samples.

Format!

The format of the track to which this chunk belongs.

Any?

Optional data associated with the selection of the track to which this chunk belongs.

Int

One of the selection reasons if the chunk belongs to a track.

Int

The data type of the chunk.

From androidx.media3.exoplayer.source.chunk.MediaChunk
Long

The chunk index, or INDEX_UNSET if it is not known.

Public constructors

ContainerMediaChunk

ContainerMediaChunk(
    dataSource: DataSource!,
    dataSpec: DataSpec!,
    trackFormat: Format!,
    @C.SelectionReason trackSelectionReason: Int,
    trackSelectionData: Any?,
    startTimeUs: Long,
    endTimeUs: Long,
    clippedStartTimeUs: Long,
    clippedEndTimeUs: Long,
    chunkIndex: Long,
    chunkCount: Int,
    sampleOffsetUs: Long,
    chunkExtractor: ChunkExtractor!
)
Parameters
dataSource: DataSource!

The source from which the data should be loaded.

dataSpec: DataSpec!

Defines the data to be loaded.

trackFormat: Format!

See trackFormat.

@C.SelectionReason trackSelectionReason: Int

See trackSelectionReason.

trackSelectionData: Any?

See trackSelectionData.

startTimeUs: Long

The start time of the media contained by the chunk, in microseconds.

endTimeUs: Long

The end time of the media contained by the chunk, in microseconds.

clippedStartTimeUs: Long

The time in the chunk from which output will begin, or TIME_UNSET to output from the start of the chunk.

clippedEndTimeUs: Long

The time in the chunk from which output will end, or TIME_UNSET to output to the end of the chunk.

chunkIndex: Long

The index of the chunk, or INDEX_UNSET if it is not known.

chunkCount: Int

The number of chunks in the underlying media that are spanned by this instance. Normally equal to one, but may be larger if multiple chunks as defined by the underlying media are being merged into a single load.

sampleOffsetUs: Long

An offset to add to the sample timestamps parsed by the extractor.

chunkExtractor: ChunkExtractor!

A wrapped extractor to use for parsing the data.

Public functions

cancelLoad

fun cancelLoad(): Unit

Cancels the load.

Loadable implementations should ensure that a currently executing load call will exit reasonably quickly after this method is called. The load call may exit either by returning or by throwing an IOException.

If there is a currently executing load call, then the thread on which that call is being made will be interrupted immediately after the call to this method. Hence implementations do not need to (and should not attempt to) interrupt the loading thread themselves.

Although the loading thread will be interrupted, Loadable implementations should not use the interrupted status of the loading thread in load to determine whether the load has been canceled. This approach is not robust [Internal ref: b/79223737]. Instead, implementations should use their own flag to signal cancelation (for example, using ).

getNextChunkIndex

fun getNextChunkIndex(): Long

Returns the next chunk index or INDEX_UNSET if it is not known.

isLoadCompleted

fun isLoadCompleted(): Boolean

Returns whether the chunk has been fully loaded.

load

fun load(): Unit

Performs the load, returning on completion or cancellation.

Throws
java.io.IOException

If the input could not be loaded.

Protected functions

getTrackOutputProvider

protected fun getTrackOutputProvider(baseMediaChunkOutput: BaseMediaChunkOutput!): ChunkExtractor.TrackOutputProvider!

Returns the TrackOutputProvider to be used by the wrapped extractor.

Parameters
baseMediaChunkOutput: BaseMediaChunkOutput!

The BaseMediaChunkOutput most recently passed to init.

Returns
ChunkExtractor.TrackOutputProvider!

A TrackOutputProvider to be used by the wrapped extractor.