SampleConsumer
@UnstableApi
interface SampleConsumer
Consumer of encoded media samples, raw audio or raw video frames.
Summary
Nested types |
|---|
@DocumentedSpecifies the result of an input operation. |
Constants |
|
|---|---|
const Int |
The operation of queueing input successful and end of input has been automatically signalled. |
const Int |
The operation of queueing input was successful. |
const Int |
The operation of queueing/registering input was unsuccessful. |
Public functions |
|
|---|---|
DecoderInputBuffer? |
Returns a |
Surface! |
Returns the input |
Int |
Returns the number of input video frames pending in the consumer. |
Int |
@SampleConsumer.InputResultAttempts to provide an input |
Boolean |
Attempts to queue new input to the consumer. |
Int |
@SampleConsumer.InputResultAttempts to provide an input texture to the consumer. |
Boolean |
registerVideoFrame(presentationTimeUs: Long)Attempts to register a video frame to the consumer. |
Unit |
Provides a |
Unit |
setOnInputSurfaceReadyListener(runnable: Runnable!)Sets a listener that's called when the |
Unit |
Informs the consumer that no further input frames will be rendered. |
Constants
INPUT_RESULT_END_OF_STREAM
const val INPUT_RESULT_END_OF_STREAM = 3: Int
The operation of queueing input successful and end of input has been automatically signalled.
The caller should not signal end of input as this has already been done internally.
INPUT_RESULT_SUCCESS
const val INPUT_RESULT_SUCCESS = 1: Int
The operation of queueing input was successful.
The caller can queue more input or signal signal end of input.
INPUT_RESULT_TRY_AGAIN_LATER
const val INPUT_RESULT_TRY_AGAIN_LATER = 2: Int
The operation of queueing/registering input was unsuccessful.
The caller should queue try again later.
Public functions
getInputBuffer
fun getInputBuffer(): DecoderInputBuffer?
Returns a DecoderInputBuffer, if available.
This buffer should be filled with new input data and queued to the consumer.
If this method returns a non-null buffer:
- The buffer's
datais non-null. - The same buffer instance is returned if this method is called multiple times before
queuinginput.
Should only be used for compressed data and raw audio data.
getInputSurface
fun getInputSurface(): Surface!
Returns the input Surface, where the consumer reads input frames from.
Should only be used for raw video data.
getPendingVideoFrameCount
fun getPendingVideoFrameCount(): Int
Returns the number of input video frames pending in the consumer. Pending input frames are frames that have been registered but not processed off the input surface yet.
Should only be used for raw video data.
queueInputBitmap
@SampleConsumer.InputResult
fun queueInputBitmap(
inputBitmap: Bitmap!,
timestampIterator: TimestampIterator!
): Int
Attempts to provide an input Bitmap to the consumer.
Should only be used for image data.
| Parameters | |
|---|---|
inputBitmap: Bitmap! |
The |
timestampIterator: TimestampIterator! |
A |
| Returns | |
|---|---|
Int |
The |
queueInputBuffer
fun queueInputBuffer(): Boolean
Attempts to queue new input to the consumer.
The input buffer from getInputBuffer should be filled with the new input before calling this method.
An input buffer should not be used anymore after it has been successfully queued.
Should only be used for compressed data and raw audio data.
| Returns | |
|---|---|
Boolean |
Whether the input was successfully queued. If |
queueInputTexture
@SampleConsumer.InputResult
fun queueInputTexture(texId: Int, presentationTimeUs: Long): Int
Attempts to provide an input texture to the consumer.
Should only be used for raw video data.
| Parameters | |
|---|---|
texId: Int |
The ID of the texture to queue to the consumer. |
presentationTimeUs: Long |
The presentation time for the texture, in microseconds. |
| Returns | |
|---|---|
Int |
The |
registerVideoFrame
fun registerVideoFrame(presentationTimeUs: Long): Boolean
Attempts to register a video frame to the consumer.
Each frame to consume should be registered using this method. After a frame is successfully registered, it should be rendered to the input surface.
Should only be used for raw video data.
| Parameters | |
|---|---|
presentationTimeUs: Long |
The presentation time of the frame to register, in microseconds. |
| Returns | |
|---|---|
Boolean |
Whether the frame was successfully registered. If |
setOnInputFrameProcessedListener
fun setOnInputFrameProcessedListener(
listener: OnInputFrameProcessedListener!
): Unit
Provides a OnInputFrameProcessedListener to the consumer.
Should only be used for raw video data when input is provided by texture ID.
| Parameters | |
|---|---|
listener: OnInputFrameProcessedListener! |
setOnInputSurfaceReadyListener
fun setOnInputSurfaceReadyListener(runnable: Runnable!): Unit
Sets a listener that's called when the input surface has been configured with a default input size, if applicable.
Should only be used for raw video data when input is provided by the app to a surface.
| Parameters | |
|---|---|
runnable: Runnable! |
Listener that's called when the input surface is ready. |
signalEndOfVideoInput
fun signalEndOfVideoInput(): Unit
Informs the consumer that no further input frames will be rendered.
Should only be used for raw video data.