# MetadataDecoder

# MetadataDecoder

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/MetadataDecoder.java+class:androidx.media3.extractor.metadata.MetadataDecoder)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/extractor/metadata/MetadataDecoder "View this page in Java")

<br />

```
@UnstableApi
interface MetadataDecoder
```

<br />

Known direct subclasses  
[SimpleMetadataDecoder](https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/SimpleMetadataDecoder)  

|----------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [SimpleMetadataDecoder](https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/SimpleMetadataDecoder) | A[MetadataDecoder](https://developer.android.com/reference/kotlin/androidx/media3/extractor/metadata/MetadataDecoder)base class that validates input buffers. |

Known indirect 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)  

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

*** ** * ** ***

Decodes metadata from binary data.

## Summary

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

## Public functions

### decode

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

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

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

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

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