# MediaCodec.CodecException

Added in[API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

# CodecException

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/android/media/MediaCodec.CodecException "View this page in Java")  

```
class CodecException : IllegalStateException
```

|---|---|---|---|---|------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)                                                                 ||||||
| ↳ | [kotlin.Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)                                                  |||||
|   | ↳ | [java.lang.Exception](https://developer.android.com/reference/kotlin/java/lang/Exception.html#)                                             ||||
|   |   | ↳ | [java.lang.RuntimeException](https://developer.android.com/reference/kotlin/java/lang/RuntimeException.html#)                            |||
|   |   |   | ↳ | [java.lang.IllegalStateException](https://developer.android.com/reference/kotlin/java/lang/IllegalStateException.html#)               ||
|   |   |   |   | ↳ | [android.media.MediaCodec.CodecException](https://developer.android.com/reference/kotlin/android/media/MediaCodec.CodecException#) |

Thrown when an internal codec error occurs.

## Summary

|                                                                                                                                                   Constants                                                                                                                                                   ||
|----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| static[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | [ERROR_INSUFFICIENT_RESOURCE](https://developer.android.com/reference/kotlin/android/media/MediaCodec.CodecException#ERROR_INSUFFICIENT_RESOURCE:kotlin.Int) This indicates required resource was not able to be allocated. |
| static[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | [ERROR_RECLAIMED](https://developer.android.com/reference/kotlin/android/media/MediaCodec.CodecException#ERROR_RECLAIMED:kotlin.Int) This indicates the resource manager reclaimed the media resource used by the codec.    |

|                                                                                                                                                                                    Public methods                                                                                                                                                                                     ||
|------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)   | [getDiagnosticInfo](https://developer.android.com/reference/kotlin/android/media/MediaCodec.CodecException#getDiagnosticInfo())`()` Retrieve a developer-readable diagnostic information string associated with the exception.                                                                    |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)         | [getErrorCode](https://developer.android.com/reference/kotlin/android/media/MediaCodec.CodecException#getErrorCode())`()` Retrieve the error code associated with a CodecException                                                                                                                |
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) | [isRecoverable](https://developer.android.com/reference/kotlin/android/media/MediaCodec.CodecException#isRecoverable())`()` Returns true if the codec cannot proceed further, but can be recovered by stopping, configuring, and starting again.                                                  |
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) | [isTransient](https://developer.android.com/reference/kotlin/android/media/MediaCodec.CodecException#isTransient())`()` Returns true if the codec exception is a transient issue, perhaps due to resource constraints, and that the method (or encoding/decoding) may be retried at a later time. |

## Constants

### ERROR_INSUFFICIENT_RESOURCE

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
static val ERROR_INSUFFICIENT_RESOURCE: Int
```

This indicates required resource was not able to be allocated.  

    Value: 1100

### ERROR_RECLAIMED

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
static val ERROR_RECLAIMED: Int
```

This indicates the resource manager reclaimed the media resource used by the codec.

With this exception, the codec must be released, as it has moved to terminal state.  

    Value: 1101

## Public methods

### getDiagnosticInfo

Added in[API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
fun getDiagnosticInfo(): String
```

Retrieve a developer-readable diagnostic information string associated with the exception. Do not show this to end-users, since this string will not be localized or generally comprehensible to end-users.

|                                                    Return                                                     ||
|----------------------------------------------------------------------------------|-----------------------------|
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | This value cannot be`null`. |

### getErrorCode

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
fun getErrorCode(): Int
```

Retrieve the error code associated with a CodecException  

### isRecoverable

Added in[API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
fun isRecoverable(): Boolean
```

Returns true if the codec cannot proceed further, but can be recovered by stopping, configuring, and starting again.  

### isTransient

Added in[API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
fun isTransient(): Boolean
```

Returns true if the codec exception is a transient issue, perhaps due to resource constraints, and that the method (or encoding/decoding) may be retried at a later time.