# SimpleMetadataDecoder

Artifact: [androidx.media3:media3-extractor](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/extractor/metadata/SimpleMetadataDecoder.java+class:androidx.media3.extractor.metadata.SimpleMetadataDecoder)

*** ** * ** ***

<br />

```
@UnstableApi
abstract class SimpleMetadataDecoder : MetadataDecoder
```

<br />

Known direct subclasses [AppInfoTableDecoder](https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/dvbsi/AppInfoTableDecoder), [EventMessageDecoder](https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/emsg/EventMessageDecoder), [IcyDecoder](https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/icy/IcyDecoder), [Id3Decoder](https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/id3/Id3Decoder), [SpliceInfoDecoder](https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/scte35/SpliceInfoDecoder)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/dvbsi/AppInfoTableDecoder` | Decoder for the DVB Application Information Table (AIT). |
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/emsg/EventMessageDecoder` | Decodes data encoded by `https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/emsg/EventMessageEncoder`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/icy/IcyDecoder` | Decodes ICY stream information. |
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/id3/Id3Decoder` | Decodes ID3 tags. |
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/scte35/SpliceInfoDecoder` | Decodes splice info sections and produces splice commands. |

*** ** * ** ***

A `https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/MetadataDecoder` base class that validates input buffers.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/SimpleMetadataDecoder#SimpleMetadataDecoder()()` |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Metadata?` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/SimpleMetadataDecoder#decode(androidx.media3.extractor.metadata.MetadataInputBuffer)(inputBuffer: https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/MetadataInputBuffer!)` Decodes a `https://developer.android.com/reference/kotlin/androidx/media3/common/Metadata` element from the provided input buffer. |

| ### Protected functions |
|---|---|
| `abstract https://developer.android.com/reference/kotlin/androidx/media3/common/Metadata?` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/SimpleMetadataDecoder#decode(androidx.media3.extractor.metadata.MetadataInputBuffer,java.nio.ByteBuffer)(inputBuffer: https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/MetadataInputBuffer!, buffer: https://developer.android.com/reference/java/nio/ByteBuffer.html!)` Called by `https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/SimpleMetadataDecoder#decode(androidx.media3.extractor.metadata.MetadataInputBuffer)` after input buffer validation has been performed. |

## Public constructors

### SimpleMetadataDecoder

```
SimpleMetadataDecoder()
```

## Public functions

### decode

```
fun decode(inputBuffer: MetadataInputBuffer!): Metadata?
```

Decodes a `https://developer.android.com/reference/kotlin/androidx/media3/common/Metadata` element from the provided input buffer.

Respects `https://developer.android.com/reference/java/nio/Buffer.html#limit()` of `inputBuffer.data`, but assumes `https://developer.android.com/reference/java/nio/Buffer.html#position()` and `https://developer.android.com/reference/java/nio/ByteBuffer.html#arrayOffset()` are both zero and `https://developer.android.com/reference/java/nio/ByteBuffer.html#hasArray()` is true.

| Parameters |
|---|---|
| `inputBuffer: https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/MetadataInputBuffer!` | The input buffer to decode. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Metadata?` | The decoded metadata object, or `null` if the metadata could not be decoded. |

## Protected functions

### decode

```
protected abstract fun decode(inputBuffer: MetadataInputBuffer!, buffer: ByteBuffer!): Metadata?
```

Called by `https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/SimpleMetadataDecoder#decode(androidx.media3.extractor.metadata.MetadataInputBuffer)` after input buffer validation has been performed.

| Parameters |
|---|---|
| `inputBuffer: https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/MetadataInputBuffer!` | The input buffer to decode. |
| `buffer: https://developer.android.com/reference/java/nio/ByteBuffer.html!` | The input buffer's `https://developer.android.com/reference/kotlin/androidx/media3/decoder/DecoderInputBuffer#data()`, for convenience. Validation by `https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/SimpleMetadataDecoder#decode(androidx.media3.extractor.metadata.MetadataInputBuffer)` guarantees that `https://developer.android.com/reference/java/nio/ByteBuffer.html#hasArray()`, `https://developer.android.com/reference/java/nio/Buffer.html#position()` and `https://developer.android.com/reference/java/nio/ByteBuffer.html#arrayOffset()` are `true`, `0` and `0` respectively. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Metadata?` | The decoded metadata object, or `null` if the metadata could not be decoded. |