# Package com.google.android.exoplayer2.decoder

- Interface Summary
  Interface | Description
  --- | ---
  Decoder<I,​O,​E extends DecoderException> | A media decoder.
  OutputBuffer.Owner<S extends OutputBuffer> | Buffer owner.

- Class Summary
  Class | Description
  --- | ---
  Buffer | Base class for buffers with flags.
  CryptoInfo | Compatibility wrapper for `MediaCodec.CryptoInfo`.
  DecoderCounters | Maintains decoder event counts, for debugging purposes only.
  DecoderInputBuffer | Holds input for a decoder.
  DecoderReuseEvaluation | The result of an evaluation to determine whether a decoder can be reused for a new input format.
  OutputBuffer | Output buffer decoded by a `Decoder`.
  SimpleDecoder<I extends DecoderInputBuffer,​O extends OutputBuffer,​E extends DecoderException> | Base class for `Decoder`s that use their own decode thread and decode each input buffer immediately into a corresponding output buffer.
  SimpleOutputBuffer | Buffer for `SimpleDecoder` output.

- Exception Summary
  Exception | Description
  --- | ---
  DecoderException | Thrown when a `Decoder` error occurs.
  DecoderInputBuffer.InsufficientCapacityException | Thrown when an attempt is made to write into a `DecoderInputBuffer` whose `DecoderInputBuffer.bufferReplacementMode` is `DecoderInputBuffer.BUFFER_REPLACEMENT_MODE_DISABLED` and who `DecoderInputBuffer.data` capacity is smaller than required.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  DecoderInputBuffer.BufferReplacementMode | The buffer replacement mode.
  DecoderReuseEvaluation.DecoderDiscardReasons | Possible reasons why reuse is not possible.
  DecoderReuseEvaluation.DecoderReuseResult | Possible outcomes of the evaluation.