# ExtractorInput

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

*** ** * ** ***

<br />

```
@UnstableApi
interface ExtractorInput : DataReader
```

<br />

Known direct subclasses [DefaultExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorInput), [FakeExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeExtractorInput), [ForwardingExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ForwardingExtractorInput)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorInput` | An `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput` that wraps a `https://developer.android.com/reference/kotlin/androidx/media3/common/DataReader`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeExtractorInput` | A fake `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput` capable of simulating various scenarios. |
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ForwardingExtractorInput` | An overridable `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput` implementation forwarding all methods to another input. |

*** ** * ** ***

Provides data to be consumed by an `https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor`.

This interface provides two modes of accessing the underlying input. See the subheadings below for more info about each mode.

- The `read()/peek()` and `skip()` methods provide `https://developer.android.com/reference/java/io/InputStream.html`-like byte-level access operations.
- The `read/skip/peekFully()` and `advancePeekPosition()` methods assume the user wants to read an entire block/frame/header of known length.

## `https://developer.android.com/reference/java/io/InputStream.html`-like methods

The `read()/peek()` and `skip()` methods provide `https://developer.android.com/reference/java/io/InputStream.html`-like byte-level access operations. The `length` parameter is a maximum, and each method returns the number of bytes actually processed. This may be less than `length` because the end of the input was reached, or the method was interrupted, or the operation was aborted early for another reason.

## Block-based methods

The `read/skip/peekFully()` and `advancePeekPosition()` methods assume the user wants to read an entire block/frame/header of known length.

These methods all have a variant that takes a boolean `allowEndOfInput` parameter. This parameter is intended to be set to true when the caller believes the input might be fully exhausted before the call is made (i.e. they've previously read/skipped/peeked the final block/frame/header). It's **not** intended to allow a partial read (i.e. greater than 0 bytes, but less than `length`) to succeed - this will always throw an `https://developer.android.com/reference/java/io/EOFException.html` from these methods (a partial read is assumed to indicate a malformed block/frame/header - and therefore a malformed file).

The expected behaviour of the block-based methods is therefore:

- Already at end-of-input and `allowEndOfInput=false`: Throw `https://developer.android.com/reference/java/io/EOFException.html`.
- Already at end-of-input and `allowEndOfInput=true`: Return `false`.
- Encounter end-of-input during read/skip/peek/advance: Throw `https://developer.android.com/reference/java/io/EOFException.html` (regardless of `allowEndOfInput`).

## Summary

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#advancePeekPosition(int)(length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Advances the peek position by `length` bytes. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#advancePeekPosition(int,boolean)(length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, allowEndOfInput: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Advances the peek position by `length` bytes. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#getLength()()` Returns the length of the source stream, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#LENGTH_UNSET()` if it is unknown. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#getPeekPosition()()` Returns the current peek position (byte offset) in the stream. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#getPosition()()` Returns the current read position (byte offset) in the stream. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#peek(byte[],int,int)(target: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!, offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Peeks up to `length` bytes from the peek position. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#peekFully(byte[],int,int)(target: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!, offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Equivalent to `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#peekFully(byte[],int,int,boolean)`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#peekFully(byte[],int,int,boolean)( target: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!, offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, allowEndOfInput: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Like `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#peek(byte[],int,int)`, but peeks the requested `length` in full. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#read(byte[],int,int)(buffer: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!, offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Reads up to `length` bytes from the input and resets the peek position. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#readFully(byte[],int,int)(target: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!, offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Equivalent to `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#readFully(byte[],int,int,boolean)`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#readFully(byte[],int,int,boolean)( target: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!, offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, allowEndOfInput: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Like `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#read(byte[],int,int)`, but reads the requested `length` in full. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#resetPeekPosition()()` Resets the peek position to equal the current read position. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `<E : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-throwable/index.html?> https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#setRetryPosition(long,E)(position: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, e: E!)` Called when reading fails and the required retry position is different from the last position. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#skip(int)(length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Like `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#read(byte[],int,int)`, except the data is skipped instead of read. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#skipFully(int)(length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Like `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#readFully(byte[],int,int)`, except the data is skipped instead of read. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#skipFully(int,boolean)(length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, allowEndOfInput: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Like `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#readFully(byte[],int,int,boolean)`, except the data is skipped instead of read. |

## Public functions

### advancePeekPosition

```
fun advancePeekPosition(length: Int): Unit
```

Advances the peek position by `length` bytes. Like `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#peekFully(byte[],int,int)` except the data is skipped instead of read.

| Parameters |
|---|---|
| `length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of bytes to peek from the input. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/EOFException.html` | If the end of input was encountered. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs peeking from the input. |

### advancePeekPosition

```
fun advancePeekPosition(length: Int, allowEndOfInput: Boolean): Boolean
```

Advances the peek position by `length` bytes. Like `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#peekFully(byte[],int,int,boolean)` except the data is skipped instead of read.

| Parameters |
|---|---|
| `length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of bytes by which to advance the peek position. |
| `allowEndOfInput: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if encountering the end of the input before advancing is allowed, and should result in `false` being returned. False if it should be considered an error, causing an `https://developer.android.com/reference/java/io/EOFException.html` to be thrown. See note in class Javadoc. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if advancing the peek position was successful. False if ` allowEndOfInput=true` and the end of the input was encountered before advancing over any data. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/EOFException.html` | If the end of input was encountered having partially advanced (i.e. having advanced by at least one byte, but fewer than `length`), or if the end of input was encountered before advancing and `allowEndOfInput` is false. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs advancing the peek position. |

### getLength

```
fun getLength(): Long
```

Returns the length of the source stream, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#LENGTH_UNSET()` if it is unknown.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The length of the source stream, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#LENGTH_UNSET()`. |

### getPeekPosition

```
fun getPeekPosition(): Long
```

Returns the current peek position (byte offset) in the stream.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The peek position (byte offset) in the stream. |

### getPosition

```
fun getPosition(): Long
```

Returns the current read position (byte offset) in the stream.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The read position (byte offset) in the stream. |

### peek

```
fun peek(target: ByteArray<Byte>!, offset: Int, length: Int): Int
```

Peeks up to `length` bytes from the peek position. The current read position is left unchanged.

This method blocks until at least one byte of data can be peeked, the end of the input is detected, or an exception is thrown.

Calling `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#resetPeekPosition()` resets the peek position to equal the current read position, so the caller can peek the same data again. Reading or skipping also resets the peek position.

| Parameters |
|---|---|
| `target: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!` | A target array into which data should be written. |
| `offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The offset into the target array at which to write. |
| `length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The maximum number of bytes to peek from the input. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of bytes peeked, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#RESULT_END_OF_INPUT()` if the input has ended. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs peeking from the input. |

### peekFully

```
fun peekFully(target: ByteArray<Byte>!, offset: Int, length: Int): Unit
```

Equivalent to `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#peekFully(byte[],int,int,boolean)`.

| Parameters |
|---|---|
| `target: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!` | A target array into which data should be written. |
| `offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The offset into the target array at which to write. |
| `length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of bytes to peek from the input. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/EOFException.html` | If the end of input was encountered. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs peeking from the input. |

### peekFully

```
fun peekFully(
    target: ByteArray<Byte>!,
    offset: Int,
    length: Int,
    allowEndOfInput: Boolean
): Boolean
```

Like `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#peek(byte[],int,int)`, but peeks the requested `length` in full.

| Parameters |
|---|---|
| `target: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!` | A target array into which data should be written. |
| `offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The offset into the target array at which to write. |
| `length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of bytes to peek from the input. |
| `allowEndOfInput: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if encountering the end of the input having peeked no data is allowed, and should result in `false` being returned. False if it should be considered an error, causing an `https://developer.android.com/reference/java/io/EOFException.html` to be thrown. See note in class Javadoc. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if the peek was successful. False if `allowEndOfInput=true` and the end of the input was encountered having peeked no data. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/EOFException.html` | If the end of input was encountered having partially satisfied the peek (i.e. having peeked at least one byte, but fewer than `length`), or if no bytes were peeked and `allowEndOfInput` is false. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs peeking from the input. |

### read

```
fun read(buffer: ByteArray<Byte>!, offset: Int, length: Int): Int
```

Reads up to `length` bytes from the input and resets the peek position.

This method blocks until at least one byte of data can be read, the end of the input is detected, or an exception is thrown.

| Parameters |
|---|---|
| `buffer: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!` | A target array into which data should be written. |
| `offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The offset into the target array at which to write. |
| `length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The maximum number of bytes to read from the input. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of bytes read, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#RESULT_END_OF_INPUT()` if the input has ended. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs reading from the input. |

### readFully

```
fun readFully(target: ByteArray<Byte>!, offset: Int, length: Int): Unit
```

Equivalent to `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#readFully(byte[],int,int,boolean)`.

| Parameters |
|---|---|
| `target: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!` | A target array into which data should be written. |
| `offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The offset into the target array at which to write. |
| `length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of bytes to read from the input. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/EOFException.html` | If the end of input was encountered. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs reading from the input. |

### readFully

```
fun readFully(
    target: ByteArray<Byte>!,
    offset: Int,
    length: Int,
    allowEndOfInput: Boolean
): Boolean
```

Like `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#read(byte[],int,int)`, but reads the requested `length` in full.

| Parameters |
|---|---|
| `target: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!` | A target array into which data should be written. |
| `offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The offset into the target array at which to write. |
| `length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of bytes to read from the input. |
| `allowEndOfInput: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if encountering the end of the input having read no data is allowed, and should result in `false` being returned. False if it should be considered an error, causing an `https://developer.android.com/reference/java/io/EOFException.html` to be thrown. See note in class Javadoc. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if the read was successful. False if `allowEndOfInput=true` and the end of the input was encountered having read no data. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/EOFException.html` | If the end of input was encountered having partially satisfied the read (i.e. having read at least one byte, but fewer than `length`), or if no bytes were read and `allowEndOfInput` is false. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs reading from the input. |

### resetPeekPosition

```
fun resetPeekPosition(): Unit
```

Resets the peek position to equal the current read position.

### setRetryPosition

```
fun <E : Throwable?> setRetryPosition(position: Long, e: E!): Unit
```

Called when reading fails and the required retry position is different from the last position. After setting the retry position it throws the given `https://developer.android.com/reference/java/lang/Throwable.html`.

| Parameters |
|---|---|
| `<E : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-throwable/index.html?>` | Type of `https://developer.android.com/reference/java/lang/Throwable.html` to be thrown. |
| `position: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The required retry position. |
| `e: E!` | `https://developer.android.com/reference/java/lang/Throwable.html` to be thrown. |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#setRetryPosition(long,E)` | The given `https://developer.android.com/reference/java/lang/Throwable.html` object. |

### skip

```
fun skip(length: Int): Int
```

Like `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#read(byte[],int,int)`, except the data is skipped instead of read.

| Parameters |
|---|---|
| `length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The maximum number of bytes to skip from the input. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of bytes skipped, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#RESULT_END_OF_INPUT()` if the input has ended. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs reading from the input. |

### skipFully

```
fun skipFully(length: Int): Unit
```

Like `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#readFully(byte[],int,int)`, except the data is skipped instead of read.

Encountering the end of input is always considered an error, and will result in an `https://developer.android.com/reference/java/io/EOFException.html` being thrown.

| Parameters |
|---|---|
| `length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of bytes to skip from the input. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/EOFException.html` | If the end of input was encountered. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs reading from the input. |

### skipFully

```
fun skipFully(length: Int, allowEndOfInput: Boolean): Boolean
```

Like `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#readFully(byte[],int,int,boolean)`, except the data is skipped instead of read.

| Parameters |
|---|---|
| `length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of bytes to skip from the input. |
| `allowEndOfInput: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if encountering the end of the input having skipped no data is allowed, and should result in `false` being returned. False if it should be considered an error, causing an `https://developer.android.com/reference/java/io/EOFException.html` to be thrown. See note in class Javadoc. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if the skip was successful. False if `allowEndOfInput=true` and the end of the input was encountered having skipped no data. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/EOFException.html` | If the end of input was encountered having partially satisfied the skip (i.e. having skipped at least one byte, but fewer than `length`), or if no bytes were skipped and `allowEndOfInput` is false. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs reading from the input. |