ChunkSampleStream, ChunkSampleStream.EmbeddedSampleStream, EmptySampleStream, FakeSampleStreampublic interface SampleStream
| Modifier and Type | Interface | Description |
|---|---|---|
static interface |
SampleStream.ReadDataResult |
Return values of
readData(FormatHolder, DecoderInputBuffer, boolean). |
| Modifier and Type | Method | Description |
|---|---|---|
boolean |
isReady() |
Returns whether data is available to be read.
|
void |
maybeThrowError() |
Throws an error that's preventing data from being read.
|
int |
readData(FormatHolder formatHolder,
DecoderInputBuffer buffer,
boolean formatRequired) |
Attempts to read from the stream.
|
int |
skipData(long positionUs) |
Attempts to skip to the keyframe before the specified position, or to the end of the stream if
positionUs is beyond it. |
boolean isReady()
Note: If the stream has ended then a buffer with the end of stream flag can always be read from
readData(FormatHolder, DecoderInputBuffer, boolean). Hence an ended stream is always
ready.
void maybeThrowError()
throws IOException
IOException - The underlying error.@ReadDataResult int readData(FormatHolder formatHolder, DecoderInputBuffer buffer, boolean formatRequired)
If the stream has ended then C.BUFFER_FLAG_END_OF_STREAM flag is set on
buffer and C.RESULT_BUFFER_READ is returned. Else if no data is available then C.RESULT_NOTHING_READ is returned. Else if the format of the media is changing or if
formatRequired is set then formatHolder is populated and C.RESULT_FORMAT_READ
is returned. Else buffer is populated and C.RESULT_BUFFER_READ is returned.
formatHolder - A FormatHolder to populate in the case of reading a format.buffer - A DecoderInputBuffer to populate in the case of reading a sample or the
end of the stream. If the end of the stream has been reached, the C.BUFFER_FLAG_END_OF_STREAM flag will be set on the buffer. If a flags-only buffer is passed, then no DecoderInputBuffer.data will be read and the read position of the stream will not change,
but the flags of the buffer will be populated.formatRequired - Whether the caller requires that the format of the stream be read even if
it's not changing. A sample will never be read if set to true, however it is still possible
for the end of stream or nothing to be read.SampleStream.ReadDataResult.int skipData(long positionUs)
positionUs is beyond it.positionUs - The specified time.