# ShadowMediaCodecConfig

# ShadowMediaCodecConfig

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

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig "View this page in Java")

<br />

```
@UnstableApi
class ShadowMediaCodecConfig : ExternalResource
```

<br />

|---|---|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)                                                                                                  |||
| ↳ | [org.junit.rules.ExternalResource](https://junit.org/junit4/javadoc/4.12/org/junit/rules/ExternalResource.html)                                                                  ||
|   | ↳ | [androidx.media3.test.utils.robolectric.ShadowMediaCodecConfig](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig) |

*** ** * ** ***

A JUnit @Rule to configure Robolectric's[ShadowMediaCodec](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.html).

Registers a[org.robolectric.shadows.ShadowMediaCodec.CodecConfig](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.CodecConfig.html)for each audio/video MIME type known by ExoPlayer.

## Summary

|                                                                                                                                                                     ### Nested types                                                                                                                                                                     |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `class `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo) Class that holds information about a[CodecImpl](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecImpl)configuration. |

|                                                                             ### Constants                                                                             |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_AAC](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_AAC())             |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_AC3](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_AC3())             |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_AC4](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_AC4())             |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_ALAC](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_ALAC())           |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_AMR_NB](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_AMR_NB())       |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_AV1](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_AV1())             |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_AVC](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_AVC())             |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_E_AC3](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_E_AC3())         |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_E_AC3_JOC](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_E_AC3_JOC()) |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_FLAC](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_FLAC())           |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_HEVC](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_HEVC())           |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_MPEG](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_MPEG())           |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_MPEG2](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_MPEG2())         |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_MPEG_L2](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_MPEG_L2())     |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_OPUS](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_OPUS())           |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_RAW](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_RAW())             |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_VORBIS](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_VORBIS())       |
| `const `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | [CODEC_INFO_VP9](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#CODEC_INFO_VP9())             |

|                                                                  ### Public functions                                                                   |
|---------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                                           | [addCodec](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#addCodec(androidx.media3.test.utils.robolectric.ShadowMediaCodecConfig.CodecInfo,boolean,org.robolectric.shadows.ShadowMediaCodec.CodecConfig))`(` ` codecInfo: `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!,` ` isEncoder: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`,` ` codecConfig: `[ShadowMediaCodec.CodecConfig](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.CodecConfig.html)`!` `)` Configures and publishes a[ShadowMediaCodec](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.html)codec.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                                           | [addDecoders](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#addDecoders(androidx.media3.test.utils.robolectric.ShadowMediaCodecConfig.CodecInfo...))`(decoders: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!>!)` Configures and publishes[shadow decoders](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.html)based on` decoders`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                                           | [addEncoders](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#addEncoders(androidx.media3.test.utils.robolectric.ShadowMediaCodecConfig.CodecInfo...))`(encoders: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!>!)` Configures and publishes[shadow encoders](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.html)based on` encoders`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `java-static `[Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                             | [configureShadowMediaCodec](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#configureShadowMediaCodec(java.lang.String,java.lang.String,boolean,com.google.common.collect.ImmutableList<android.media.MediaCodecInfo.CodecProfileLevel>,com.google.common.collect.ImmutableList<java.lang.Integer>,org.robolectric.shadows.ShadowMediaCodec.CodecConfig))`(` ` codecName: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!,` ` mimeType: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!,` ` isEncoder: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`,` ` profileLevels: `[ImmutableList](https://guava.dev/releases/18.0/api/docs/com/google/common/collect/ImmutableList.html)`<`[MediaCodecInfo.CodecProfileLevel](https://developer.android.com/reference/android/media/MediaCodecInfo.CodecProfileLevel.html)`!>!,` ` colorFormats: `[ImmutableList](https://guava.dev/releases/18.0/api/docs/com/google/common/collect/ImmutableList.html)`<`[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`!>!,` ` codecConfig: `[ShadowMediaCodec.CodecConfig](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.CodecConfig.html)`!` `)` Configures a shadow MediaCodec. |
| `java-static `[ShadowMediaCodecConfig](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig)`!` | ~~[forAllSupportedMimeTypes](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#forAllSupportedMimeTypes())~~`()` **This function is deprecated.** Use[withAllDefaultSupportedCodecs](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#withAllDefaultSupportedCodecs())instead. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `java-static `[ShadowMediaCodecConfig](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig)`!` | [withAllDefaultSupportedCodecs](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#withAllDefaultSupportedCodecs())`()` Returns a[ShadowMediaCodecConfig](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig)instance populated with a default list of supported decoders using a default codec configuration.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `java-static `[ShadowMediaCodecConfig](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig)`!` | [withCodecs](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#withCodecs(java.util.List<androidx.media3.test.utils.robolectric.ShadowMediaCodecConfig.CodecInfo>,java.util.List<androidx.media3.test.utils.robolectric.ShadowMediaCodecConfig.CodecInfo>))`(` ` decoders: (`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)`)`[List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)`<`[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!>!,` ` encoders: (`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)`)`[List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)`<`[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!>!` `)` Returns a[ShadowMediaCodecConfig](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig)instance configured with the provided`decoders`and`encoders`.                                                                                            |
| `java-static `[ShadowMediaCodecConfig](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig)`!` | [withNoDefaultSupportedCodecs](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#withNoDefaultSupportedCodecs())`()` Returns a[ShadowMediaCodecConfig](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig)instance populated with no shadow codecs.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `java-static `[ShadowMediaCodecConfig](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig)`!` | ~~[withNoDefaultSupportedMimeTypes](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#withNoDefaultSupportedMimeTypes())~~`()` **This function is deprecated.** Use[withNoDefaultSupportedCodecs](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#withNoDefaultSupportedCodecs())instead. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |

|                            ### Protected functions                            |
|-------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [after](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#after())`()`   |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [before](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#before())`()` |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ### Inherited functions                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| From[org.junit.rules.ExternalResource](https://junit.org/junit4/javadoc/4.12/org/junit/rules/ExternalResource.html) |----------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Statement](https://junit.org/junit4/javadoc/4.12/org/junit/runners/model/Statement.html)`!` | [apply](https://junit.org/junit4/javadoc/4.12/org/junit/rules/ExternalResource.html#apply-org.junit.runners.model.Statement-org.junit.runner.Description-)`(base: `[Statement](https://junit.org/junit4/javadoc/4.12/org/junit/runners/model/Statement.html)`!, description: `[Description](https://junit.org/junit4/javadoc/4.12/org/junit/runner/Description.html)`!)` | |

## Constants

### CODEC_INFO_AAC

```
const val CODEC_INFO_AAC: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_AC3

```
const val CODEC_INFO_AC3: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_AC4

```
const val CODEC_INFO_AC4: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_ALAC

```
const val CODEC_INFO_ALAC: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_AMR_NB

```
const val CODEC_INFO_AMR_NB: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_AV1

```
const val CODEC_INFO_AV1: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_AVC

```
const val CODEC_INFO_AVC: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_E_AC3

```
const val CODEC_INFO_E_AC3: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_E_AC3_JOC

```
const val CODEC_INFO_E_AC3_JOC: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_FLAC

```
const val CODEC_INFO_FLAC: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_HEVC

```
const val CODEC_INFO_HEVC: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_MPEG

```
const val CODEC_INFO_MPEG: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_MPEG2

```
const val CODEC_INFO_MPEG2: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_MPEG_L2

```
const val CODEC_INFO_MPEG_L2: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_OPUS

```
const val CODEC_INFO_OPUS: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_RAW

```
const val CODEC_INFO_RAW: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_VORBIS

```
const val CODEC_INFO_VORBIS: ShadowMediaCodecConfig.CodecInfo!
```  

### CODEC_INFO_VP9

```
const val CODEC_INFO_VP9: ShadowMediaCodecConfig.CodecInfo!
```  

## Public functions

### addCodec

```
fun addCodec(
    codecInfo: ShadowMediaCodecConfig.CodecInfo!,
    isEncoder: Boolean,
    codecConfig: ShadowMediaCodec.CodecConfig!
): Unit
```

Configures and publishes a[ShadowMediaCodec](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.html)codec.

Input buffers are handled according to the[ShadowMediaCodec.CodecConfig](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.CodecConfig.html)provided.  

|                                                                                 Parameters                                                                                 |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| `codecInfo: `[ShadowMediaCodecConfig.CodecInfo](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig.CodecInfo)`!` | Basic codec information.                                |
| `isEncoder: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                                                           | Whether the codecs registered are encoders or decoders. |
| `codecConfig: `[ShadowMediaCodec.CodecConfig](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.CodecConfig.html)`!`                           | Codec configuration implementation of the shadow.       |

### addDecoders

```
fun addDecoders(decoders: Array<ShadowMediaCodecConfig.CodecInfo!>!): Unit
```

Configures and publishes[shadow decoders](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.html)based on`
decoders`.

This method configures frame-dropping decoders.  

### addEncoders

```
fun addEncoders(encoders: Array<ShadowMediaCodecConfig.CodecInfo!>!): Unit
```

Configures and publishes[shadow encoders](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.html)based on`
encoders`.

This method configures pass-through encoders.  

### configureShadowMediaCodec

```
java-static fun configureShadowMediaCodec(
    codecName: String!,
    mimeType: String!,
    isEncoder: Boolean,
    profileLevels: ImmutableList<MediaCodecInfo.CodecProfileLevel!>!,
    colorFormats: ImmutableList<Int!>!,
    codecConfig: ShadowMediaCodec.CodecConfig!
): Unit
```

Configures a shadow MediaCodec.  

|                                                                                                                           Parameters                                                                                                                           |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `codecName: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!`                                                                                                                                                              | The name of the codec.                                                                                                                                                   |
| `mimeType: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!`                                                                                                                                                               | The MIME type of the codec.                                                                                                                                              |
| `isEncoder: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                                                                                                                                               | Whether the codec is an encoder or a decoder.                                                                                                                            |
| `profileLevels: `[ImmutableList](https://guava.dev/releases/18.0/api/docs/com/google/common/collect/ImmutableList.html)`<`[MediaCodecInfo.CodecProfileLevel](https://developer.android.com/reference/android/media/MediaCodecInfo.CodecProfileLevel.html)`!>!` | A list of profiles and levels supported by the codec.                                                                                                                    |
| `colorFormats: `[ImmutableList](https://guava.dev/releases/18.0/api/docs/com/google/common/collect/ImmutableList.html)`<`[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`!>!`                                                      | A list of color formats supported by the codec.                                                                                                                          |
| `codecConfig: `[ShadowMediaCodec.CodecConfig](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.CodecConfig.html)`!`                                                                                                               | The[ShadowMediaCodec.CodecConfig](https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowMediaCodec.CodecConfig.html)for the codec, specifying its behavior. |

### forAllSupportedMimeTypes

```
java-static fun [forAllSupportedMimeTypes](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#forAllSupportedMimeTypes())(): ShadowMediaCodecConfig!
```
| **This function is deprecated.**   
|
Use[withAllDefaultSupportedCodecs](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#withAllDefaultSupportedCodecs())instead.  

### withAllDefaultSupportedCodecs

```
java-static fun withAllDefaultSupportedCodecs(): ShadowMediaCodecConfig!
```

Returns a[ShadowMediaCodecConfig](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig)instance populated with a default list of supported decoders using a default codec configuration.

The default codec configuration drops all samples on audio decoders and works as passthrough on video decoders.  

### withCodecs

```
java-static fun withCodecs(
    decoders: (Mutable)List<ShadowMediaCodecConfig.CodecInfo!>!,
    encoders: (Mutable)List<ShadowMediaCodecConfig.CodecInfo!>!
): ShadowMediaCodecConfig!
```

Returns a[ShadowMediaCodecConfig](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig)instance configured with the provided`decoders`and`encoders`.

All codecs will work as passthrough, regardless of type.  

### withNoDefaultSupportedCodecs

```
java-static fun withNoDefaultSupportedCodecs(): ShadowMediaCodecConfig!
```

Returns a[ShadowMediaCodecConfig](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig)instance populated with no shadow codecs.  

### withNoDefaultSupportedMimeTypes

```
java-static fun [withNoDefaultSupportedMimeTypes](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#withNoDefaultSupportedMimeTypes())(): ShadowMediaCodecConfig!
```
| **This function is deprecated.**   
|
Use[withNoDefaultSupportedCodecs](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/robolectric/ShadowMediaCodecConfig#withNoDefaultSupportedCodecs())instead.  

## Protected functions

### after

```
protected fun after(): Unit
```  

### before

```
protected fun before(): Unit
```  

|                                         Throws                                          |
|-----------------------------------------------------------------------------------------|---|
| [java.lang.Throwable](https://developer.android.com/reference/java/lang/Throwable.html) |   |