# IcyDecoder

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

*** ** * ** ***

<br />

```
@UnstableApi
public final class IcyDecoder extends SimpleMetadataDecoder
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.media3.extractor.metadata.SimpleMetadataDecoder](https://developer.android.com/reference/androidx/media3/extractor/metadata/SimpleMetadataDecoder) ||
|   | ↳ | [androidx.media3.extractor.metadata.icy.IcyDecoder](https://developer.android.com/reference/androidx/media3/extractor/metadata/icy/IcyDecoder) |

*** ** * ** ***

Decodes ICY stream information.

## Summary

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

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

### Inherited methods

From [androidx.media3.extractor.metadata.SimpleMetadataDecoder](https://developer.android.com/reference/androidx/media3/extractor/metadata/SimpleMetadataDecoder) `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Metadata` `https://developer.android.com/reference/androidx/media3/extractor/metadata/SimpleMetadataDecoder#decode(androidx.media3.extractor.metadata.MetadataInputBuffer)(https://developer.android.com/reference/androidx/media3/extractor/metadata/MetadataInputBuffer inputBuffer)`

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

## Public constructors

### IcyDecoder

```
public IcyDecoder()
```

## Protected methods

### decode

```
protected Metadata decode(MetadataInputBuffer inputBuffer, ByteBuffer buffer)
```

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

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/extractor/metadata/MetadataInputBuffer inputBuffer` | The input buffer to decode. |
| `https://developer.android.com/reference/java/nio/ByteBuffer.html buffer` | The input buffer's `https://developer.android.com/reference/androidx/media3/decoder/DecoderInputBuffer#data()`, for convenience. Validation by `https://developer.android.com/reference/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/androidx/media3/common/Metadata` | The decoded metadata object, or `null` if the metadata could not be decoded. |