@UnstableApi
interface Decoder<I, O, E : DecoderException?>

Known direct subclasses
ImageDecoder

A Decoder implementation for images.

SimpleDecoder

Base class for Decoders that use their own decode thread and decode each input buffer immediately into a corresponding output buffer.

SubtitleDecoder

Decodes Subtitles from SubtitleInputBuffers.

Known indirect subclasses
BitmapFactoryImageDecoder

An image decoder that uses BitmapFactory to decode images.

Cea608Decoder

A SubtitleDecoder for CEA-608 (also known as "line 21 captions" and "EIA-608").

Cea708Decoder

A SubtitleDecoder for CEA-708 (also known as "EIA-708").

SimpleSubtitleDecoder

Base class for subtitle parsers that use their own decode thread.


A media decoder.

Parameters
<I>

The type of buffer input to the decoder.

<O>

The type of buffer output from the decoder.

<E : DecoderException?>

The type of exception thrown from the decoder.

Summary

Public functions

I?

Dequeues the next input buffer to be filled and queued to the decoder.

O?

Dequeues the next output buffer from the decoder.

Unit

Flushes the decoder.

String!

Returns the name of the decoder.

Unit
queueInputBuffer(inputBuffer: I!)

Queues an input buffer to the decoder.

Unit

Releases the decoder.

Unit
setOutputStartTimeUs(outputStartTimeUs: Long)

Sets the timestamp from which output buffers should be produced, in microseconds.

Public functions

dequeueInputBuffer

fun dequeueInputBuffer(): I?

Dequeues the next input buffer to be filled and queued to the decoder.

Returns
I?

The input buffer, which will have been cleared, or null if a buffer isn't available.

Throws
E

If a decoder error has occurred.

dequeueOutputBuffer

fun dequeueOutputBuffer(): O?

Dequeues the next output buffer from the decoder.

Returns
O?

The output buffer, or null if an output buffer isn't available.

Throws
E

If a decoder error has occurred.

flush

fun flush(): Unit

Flushes the decoder. Ownership of dequeued input buffers is returned to the decoder. The caller is still responsible for releasing any dequeued output buffers.

getName

fun getName(): String!

Returns the name of the decoder.

Returns
String!

The name of the decoder.

queueInputBuffer

fun queueInputBuffer(inputBuffer: I!): Unit

Queues an input buffer to the decoder.

Parameters
inputBuffer: I!

The input buffer.

Throws
E

If a decoder error has occurred.

release

fun release(): Unit

Releases the decoder. Must be called when the decoder is no longer needed.

setOutputStartTimeUs

fun setOutputStartTimeUs(outputStartTimeUs: Long): Unit

Sets the timestamp from which output buffers should be produced, in microseconds.

Any decoded buffer with a timestamp less than outputStartTimeUs should be skipped by the implementation and not made available via dequeueOutputBuffer.

This method must only be called before queuing the first input buffer initially or after flush.

Parameters
outputStartTimeUs: Long

The time from which output buffer should be produced, in microseconds.