# androidx.media3.test.utils

*** ** * ** ***

## Annotations

|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/BindCanaryMode` | Binds a boolean test parameter field to Media3 canary mode. |
| `https://developer.android.com/reference/androidx/media3/test/utils/BindFlag` | Binds a boolean test parameter field to a Media3 feature flag. |

## Interfaces

|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/ActionSchedule.Callback` | Callback to notify listener that the action schedule has finished. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ActionSchedule.PlayerTarget.Callback` | Callback to be called when message arrives. |
| `https://developer.android.com/reference/androidx/media3/test/utils/CapturingFrameProcessor.Event` | Marker interface for ordering frames and EOS signals. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DecodeOneFrameUtil.Listener` | Listener for decoding events. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread.TestRunnable` | `https://developer.android.com/reference/java/lang/Runnable.html` variant which can throw a checked exception. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Dumper.Dumpable` | Provides custom dump method. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ExtractorAsserts.ExtractorFactory` | A factory for `https://developer.android.com/reference/androidx/media3/extractor/Extractor` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaPeriod.TrackDataFactory` | A factory to create the test data for a particular track. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackOutput.Factory` | Factory for `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackOutput` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/HostActivity.HostedTest` | Interface for tests that run inside of a `https://developer.android.com/reference/androidx/media3/test/utils/HostActivity`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/MediaPeriodAsserts.FilterableManifestMediaPeriodFactory` | Interface to create media periods for testing based on a `https://developer.android.com/reference/androidx/media3/exoplayer/offline/FilterableManifest`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/VideoFrameProcessorTestRunner.BitmapReader` | Reads a `https://developer.android.com/reference/android/graphics/Bitmap.html` from `https://developer.android.com/reference/androidx/media3/common/VideoFrameProcessor` output. |
| `https://developer.android.com/reference/androidx/media3/test/utils/VideoFrameProcessorTestRunner.OnOutputFrameAvailableForRenderingListener` |   |
| `https://developer.android.com/reference/androidx/media3/test/utils/VideoFrameProcessorTestRunner.OnVideoFrameProcessingEndedListener` |   |

## Classes

|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/Action` | Base class for actions to perform during playback tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.AddMediaItems` | Calls `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#addMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.ClearMediaItems` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#clearMediaItems()`}. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.ClearVideoSurface` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#clearVideoSurface()`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.ExecuteRunnable` | Calls `Runnable.run()`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.MoveMediaItem` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#moveMediaItem(int,int)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.PlayUntilPosition` | Schedules a play action to be executed, waits until the player reaches the specified position, and pauses the player again. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.Prepare` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#prepare()`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.RemoveMediaItem` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#removeMediaItem(int)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.RemoveMediaItems` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#removeMediaItems(int,int)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.Seek` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#seekTo(long)` or `https://developer.android.com/reference/androidx/media3/common/Player#seekTo(int,long)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.SendMessages` | Calls `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)` and `https://developer.android.com/reference/androidx/media3/exoplayer/PlayerMessage#send()`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.SetAudioAttributes` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#setAudioAttributes(androidx.media3.common.AudioAttributes,boolean)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.SetMediaItems` | Calls `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#setMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>,int,long)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.SetMediaItemsResetPosition` | Calls `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#setMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>,boolean)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.SetPlayWhenReady` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#setPlayWhenReady(boolean)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.SetPlaybackParameters` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#setPlaybackParameters(androidx.media3.common.PlaybackParameters)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.SetRendererDisabled` | Updates the `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.Parameters` of a `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/DefaultTrackSelector` to specify whether the renderer at a given index should be disabled. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.SetRepeatMode` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#setRepeatMode(int)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.SetShuffleModeEnabled` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#setShuffleModeEnabled(boolean)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.SetShuffleOrder` | Calls `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#setShuffleOrder(androidx.media3.exoplayer.source.ShuffleOrder)` . |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.SetVideoSurface` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#setVideoSurface(android.view.Surface)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.Stop` | Calls `https://developer.android.com/reference/androidx/media3/common/Player#stop()`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.ThrowPlaybackException` | Throws a playback exception on the playback thread. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.WaitForIsLoading` | Waits for a specified loading state, returning either immediately or after a call to `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onIsLoadingChanged(boolean)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.WaitForMessage` | Waits for a player message to arrive. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.WaitForPendingPlayerCommands` | Waits until the player acknowledged all pending player commands. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.WaitForPlayWhenReady` | Waits for a specified playWhenReady value, returning either immediately or after a call to `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onPlayWhenReadyChanged(boolean,int)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.WaitForPlaybackState` | Waits for a specified playback state, returning either immediately or after a call to `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onPlaybackStateChanged(int)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.WaitForPositionDiscontinuity` | Waits for `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onPositionDiscontinuity(androidx.media3.common.Player.PositionInfo,androidx.media3.common.Player.PositionInfo,int)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Action.WaitForTimelineChanged` | Waits for `https://developer.android.com/reference/androidx/media3/common/Player.Listener#onTimelineChanged(androidx.media3.common.Timeline,int)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ActionSchedule` | Schedules a sequence of `https://developer.android.com/reference/androidx/media3/test/utils/Action`s for execution during a test. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ActionSchedule.Builder` | A builder for `https://developer.android.com/reference/androidx/media3/test/utils/ActionSchedule` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ActionSchedule.PlayerRunnable` | Provides a wrapper for a `https://developer.android.com/reference/java/lang/Runnable.html` which has access to the player. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ActionSchedule.PlayerTarget` | Provides a wrapper for a `https://developer.android.com/reference/androidx/media3/exoplayer/PlayerMessage.Target` which has access to the player when handling messages. |
| `https://developer.android.com/reference/androidx/media3/test/utils/AdditionalFailureInfo` | A JUnit `https://junit.org/junit4/javadoc/latest/org/junit/Rule.html` that attaches additional info to any errors/exceptions thrown by the test. |
| `https://developer.android.com/reference/androidx/media3/test/utils/AssetContentProvider` | A `https://developer.android.com/reference/android/content/ContentProvider.html` for reading asset data. |
| `https://developer.android.com/reference/androidx/media3/test/utils/AssetInfo` | Information about a test asset. |
| `https://developer.android.com/reference/androidx/media3/test/utils/BinderStressCreator` | A utility for creating artificial stress on the system process binder. |
| `https://developer.android.com/reference/androidx/media3/test/utils/BitmapPixelTestUtil` | Utilities for pixel tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/BitmapPixelTestUtil.ImageBuffer` | Represents a `https://developer.android.com/reference/java/nio/ByteBuffer.html` read from an `https://developer.android.com/reference/android/media/Image.html`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/CacheAsserts` | Assertion methods for `https://developer.android.com/reference/androidx/media3/datasource/cache/Cache`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/CacheAsserts.RequestSet` | Defines a set of data requests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/CapturingAudioSink` | An `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink` forwarding to `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink` that captures configuration, discontinuity and buffer events. |
| `https://developer.android.com/reference/androidx/media3/test/utils/CapturingAudioSink.InterceptingBufferSink` |   |
| `https://developer.android.com/reference/androidx/media3/test/utils/CapturingAudioSink.SampleInterceptingBufferSink` |   |
| `https://developer.android.com/reference/androidx/media3/test/utils/CapturingFrameProcessor` | A `https://developer.android.com/reference/androidx/media3/common/video/FrameProcessor` that delegates to an underlying `https://developer.android.com/reference/androidx/media3/common/video/FrameProcessor` and records queued frames and EOS signals for testing. |
| `https://developer.android.com/reference/androidx/media3/test/utils/CapturingFrameProcessor.EosEvent` | Marker class representing a `https://developer.android.com/reference/androidx/media3/test/utils/CapturingFrameProcessor#signalEndOfStream()` call. |
| `https://developer.android.com/reference/androidx/media3/test/utils/CapturingFrameProcessor.Factory` | A factory for `https://developer.android.com/reference/androidx/media3/test/utils/CapturingFrameProcessor` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/CapturingFrameProcessor.FramesEvent` | Holds the frames queued in a `https://developer.android.com/reference/androidx/media3/test/utils/CapturingFrameProcessor#queue(java.util.List<androidx.media3.common.video.AsyncFrame>)` call. |
| `https://developer.android.com/reference/androidx/media3/test/utils/CapturingImageOutput` | A `https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageOutput` that captures image availability events. |
| `https://developer.android.com/reference/androidx/media3/test/utils/CompositionAssetInfo` | Test assets that describe various `https://developer.android.com/reference/androidx/media3/transformer/Composition` configurations. |
| `https://developer.android.com/reference/androidx/media3/test/utils/CountDownFuture` | A `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html` that completes when `https://developer.android.com/reference/androidx/media3/test/utils/CountDownFuture#countDown()` has been called a specified number of times. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest` | A collection of contract tests for `https://developer.android.com/reference/androidx/media3/datasource/DataSource` implementations. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.FakeTransferListener` | A `https://developer.android.com/reference/androidx/media3/datasource/TransferListener` that only keeps track of the transferred bytes. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource` | Information about a resource that can be used to test the `https://developer.android.com/reference/androidx/media3/datasource/DataSource` instance. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | Builder for `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DecodeOneFrameUtil` | Utilities for decoding a video frame for tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DecoderCountersUtil` | Assertions for `https://developer.android.com/reference/androidx/media3/exoplayer/DecoderCounters`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DefaultRenderersFactoryAsserts` | Assertions for `https://developer.android.com/reference/androidx/media3/exoplayer/DefaultRenderersFactory`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | Builder for `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread` | Helper class to simulate main/UI thread in tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DumpFileAsserts` | Helper class to enable assertions based on golden-data dump files. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DumpableFormat` | Wraps a `https://developer.android.com/reference/androidx/media3/common/Format` to allow dumping it. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DumpableMp4Box` | Wraps an Mp4 box to allow dumping it. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Dumper` | Helper utility to dump field values. |
| `https://developer.android.com/reference/androidx/media3/test/utils/EditedMediaItemAssetInfo` | Information about an `https://developer.android.com/reference/androidx/media3/transformer/EditedMediaItem` and its associated `https://developer.android.com/reference/androidx/media3/test/utils/AssetInfo`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/EmptyMediaSource` | MediaSource producing an empty `https://developer.android.com/reference/androidx/media3/common/Timeline`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ExoHostedTest` | A `https://developer.android.com/reference/androidx/media3/test/utils/HostActivity.HostedTest` for `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer` playback tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ExoPlayerTestRunner` | Helper class to run an ExoPlayer test. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ExoPlayerTestRunner.Builder` | Builder to set-up an `https://developer.android.com/reference/androidx/media3/test/utils/ExoPlayerTestRunner`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ExtractorAsserts` | Assertion methods for `https://developer.android.com/reference/androidx/media3/extractor/Extractor`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ExtractorAsserts.AssertionConfig` | A config for the assertions made (e.g. dump file location). |
| `https://developer.android.com/reference/androidx/media3/test/utils/ExtractorAsserts.AssertionConfig.Builder` | Builder for `https://developer.android.com/reference/androidx/media3/test/utils/ExtractorAsserts.AssertionConfig` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ExtractorAsserts.ConfigProvider` | A `https://google.github.io/TestParameterInjector/docs/latest/com/google/testing/junit/testparameterinjector/TestParameterValuesProvider.html` that provides `https://developer.android.com/reference/androidx/media3/test/utils/ExtractorAsserts.SimulationConfig` objects from `https://developer.android.com/reference/androidx/media3/test/utils/ExtractorAsserts#configs()` to exercise different extractor paths. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ExtractorAsserts.SimulationConfig` | A config of different environments to simulate and extractor behaviours to test. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FailOnCloseDataSink` | A `https://developer.android.com/reference/androidx/media3/datasource/DataSink` that can simulate caching the bytes being written to it, and then failing to persist them when `https://developer.android.com/reference/androidx/media3/test/utils/FailOnCloseDataSink#close()` is called. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FailOnCloseDataSink.Factory` | Factory to create a `https://developer.android.com/reference/androidx/media3/test/utils/FailOnCloseDataSink`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeAdaptiveDataSet` | Fake data set emulating the data of an adaptive media source. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeAdaptiveDataSet.Factory` | Factory for `https://developer.android.com/reference/androidx/media3/test/utils/FakeAdaptiveDataSet`s. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeAdaptiveDataSet.Iterator` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/MediaChunkIterator` for the chunks defined by a fake adaptive data set. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeAdaptiveMediaPeriod` | Fake `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaPeriod` that provides tracks from the given `https://developer.android.com/reference/androidx/media3/exoplayer/source/TrackGroupArray`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeAdaptiveMediaSource` | Fake `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource` that provides a given timeline. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeAdsLoader` | A fake implementation of `https://developer.android.com/reference/androidx/media3/exoplayer/source/ads/AdsLoader`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeAudioRenderer` | A `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer` that supports `https://developer.android.com/reference/androidx/media3/common/C#TRACK_TYPE_AUDIO()`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeChunkSource` | Fake `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/ChunkSource` with adaptive media chunks of a given duration. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeChunkSource.Factory` | Factory for a `https://developer.android.com/reference/androidx/media3/test/utils/FakeChunkSource`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeClock` | Fake `https://developer.android.com/reference/androidx/media3/common/util/Clock` implementation that allows to `https://developer.android.com/reference/androidx/media3/test/utils/FakeClock#advanceTime(long)` manually to trigger pending timed messages. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeClock.Builder` | A builder for `https://developer.android.com/reference/androidx/media3/test/utils/FakeClock` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeClock.HandlerMessage` | Message data saved to send messages or execute runnables at a later time on a Handler. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeCryptoConfig` | Fake `https://developer.android.com/reference/androidx/media3/decoder/CryptoConfig`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeDataSet` | Collection of `https://developer.android.com/reference/androidx/media3/test/utils/FakeDataSet.FakeData` to be served by a `https://developer.android.com/reference/androidx/media3/test/utils/FakeDataSource`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeDataSet.FakeData` | Container of fake data to be served by a `https://developer.android.com/reference/androidx/media3/test/utils/FakeDataSource`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeDataSet.FakeData.Segment` | A segment of `https://developer.android.com/reference/androidx/media3/test/utils/FakeDataSet.FakeData`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeDataSource` | A fake `https://developer.android.com/reference/androidx/media3/datasource/DataSource` capable of simulating various scenarios. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeDataSource.Factory` | Factory to create a `https://developer.android.com/reference/androidx/media3/test/utils/FakeDataSource`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm` | A fake implementation of `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm` for use in tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.Builder` | Builder for `https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer` | An license server implementation to interact with `https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer.Builder` | Builder for `https://developer.android.com/reference/androidx/media3/test/utils/FakeExoMediaDrm.LicenseServer` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeExtractorInput` | A fake `https://developer.android.com/reference/androidx/media3/extractor/ExtractorInput` capable of simulating various scenarios. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeExtractorInput.Builder` | Builder of `https://developer.android.com/reference/androidx/media3/test/utils/FakeExtractorInput` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeExtractorOutput` | A fake `https://developer.android.com/reference/androidx/media3/extractor/ExtractorOutput`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeFrameProcessor` | A fake `https://developer.android.com/reference/androidx/media3/common/video/FrameProcessor` implementation. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeFrameProcessor.Factory` | A factory for `https://developer.android.com/reference/androidx/media3/test/utils/FakeFrameProcessor` implementations. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeFrameProcessor.Listener` | A fake `https://developer.android.com/reference/androidx/media3/common/video/FrameProcessor.Listener` implementation for tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeFrameWriter` | A fake `https://developer.android.com/reference/androidx/media3/common/video/FrameWriter` implementation for testing. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeHardwareBufferNativeHelpers` | Fake class to simulate `https://developer.android.com/reference/androidx/media3/common/video/HardwareBufferNativeHelpers`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaChunk` | Fake `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/MediaChunk`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaChunkIterator` | Fake `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/MediaChunkIterator`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaClockRenderer` | Fake abstract `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` which is also a `https://developer.android.com/reference/androidx/media3/exoplayer/MediaClock`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaPeriod` | Fake `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaPeriod` that provides tracks from the given `https://developer.android.com/reference/androidx/media3/exoplayer/source/TrackGroupArray`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaSource` | Fake `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource` that provides a given timeline. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaSource.Builder` | A builder for `https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaSource` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaSource.InitialTimeline` | A forwarding timeline to provide an initial timeline for fake multi window sources. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaSourceFactory` | Fake `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceFactory` that creates a `https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaSource`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeMetadataEntry` | A fake `https://developer.android.com/reference/androidx/media3/common/Metadata.Entry`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeMultiPeriodLiveTimeline` | A fake `https://developer.android.com/reference/androidx/media3/common/Timeline` that produces a live window with periods according to the available time range. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakePlayer` | A fake `https://developer.android.com/reference/androidx/media3/common/Player` that uses `https://developer.android.com/reference/androidx/media3/common/SimpleBasePlayer`'s minimal number of default methods implementations to build upon to simulate realistic playback scenarios for testing. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer` | Fake `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` that supports any format with the matching track type. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeSampleStream` | Fake `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream` that outputs a given `https://developer.android.com/reference/androidx/media3/common/Format` and any amount of `https://developer.android.com/reference/androidx/media3/test/utils/FakeSampleStream.FakeSampleStreamItem`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeSampleStream.FakeSampleStreamItem` | Item to customize a return value of `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream#readData(androidx.media3.exoplayer.FormatHolder,androidx.media3.decoder.DecoderInputBuffer,int)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeShuffleOrder` | Fake `https://developer.android.com/reference/androidx/media3/exoplayer/source/ShuffleOrder` which returns a reverse order. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeTimeline` | Fake `https://developer.android.com/reference/androidx/media3/common/Timeline` which can be setup to return custom `https://developer.android.com/reference/androidx/media3/test/utils/FakeTimeline.TimelineWindowDefinition`s. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeTimeline.TimelineWindowDefinition` | Definition used to define a `https://developer.android.com/reference/androidx/media3/test/utils/FakeTimeline`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeTimeline.TimelineWindowDefinition.Builder` | A builder to build instances of `https://developer.android.com/reference/androidx/media3/test/utils/FakeTimeline.TimelineWindowDefinition`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackOutput` | A fake `https://developer.android.com/reference/androidx/media3/extractor/TrackOutput`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelection` | A fake `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/ExoTrackSelection` that supports selecting a subset of tracks within a `https://developer.android.com/reference/androidx/media3/common/TrackGroup`, returns 1 fixed track, and tracks the number of calls to its methods. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelector` | A fake `https://developer.android.com/reference/androidx/media3/exoplayer/trackselection/MappingTrackSelector` that returns `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelection`s. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelector.FakeTrackSelectionFactory` | A factory for the `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelection` instances requested by the `https://developer.android.com/reference/androidx/media3/test/utils/FakeTrackSelector`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeVideoRenderer` | A `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer` that supports `https://developer.android.com/reference/androidx/media3/common/C#TRACK_TYPE_VIDEO()`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FormatSupportAssumptions` | Utility methods for checking and assuming format support in instrumentation tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FrameProcessorTestUtil` | Test utilities for asserting `https://developer.android.com/reference/androidx/media3/common/video/FrameProcessor` inputs. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FrameProcessorTestUtil.ExpectedFrame` | Represents a frame that is expected to be presented. |
| `https://developer.android.com/reference/androidx/media3/test/utils/HdrCapabilitiesUtil` | Utility class for checking HDR capabilities. |
| `https://developer.android.com/reference/androidx/media3/test/utils/HostActivity` | A host activity for performing playback tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/HttpDataSourceTestEnv` | A JUnit `https://junit.org/junit4/javadoc/latest/org/junit/Rule.html` that creates test resources for `https://developer.android.com/reference/androidx/media3/datasource/HttpDataSource` contract tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ImageReaderSurfaceHolder` | An implementation of `https://developer.android.com/reference/android/view/SurfaceHolder.html` which is backed by an `https://developer.android.com/reference/android/media/ImageReader.html`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ImmutableByteArray` | `byte` version of `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/primitives/ImmutableIntArray.html`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ImmutableByteArray.Builder` | Builder for `https://developer.android.com/reference/androidx/media3/test/utils/ImmutableByteArray` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/InMemoryDatabaseRule` | A JUnit `https://junit.org/junit4/javadoc/latest/org/junit/Rule.html` that creates (and cleans up) in-memory databases and `https://developer.android.com/reference/androidx/media3/datasource/cache/SimpleCache` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/MalformedParcelable` | A `https://developer.android.com/reference/android/os/Parcelable.html` that throws a `https://developer.android.com/reference/java/lang/RuntimeException.html` during deserialization. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Media3FlagsRule` | A JUnit `https://junit.org/junit4/javadoc/latest/org/junit/rules/TestRule.html` for managing `https://developer.android.com/reference/androidx/media3/common/Flags` states in tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/MediaPeriodAsserts` | Assertion methods for `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaPeriod`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/MediaSourceTestRunner` | A runner for `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource` tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/MediaSourceTestRunner.MediaSourceListener` |   |
| `https://developer.android.com/reference/androidx/media3/test/utils/MssimCalculator` | Image comparison tool that calculates the Mean Structural Similarity (MSSIM) of two images, developed by Wang, Bovik, Sheikh, and Simoncelli. |
| `https://developer.android.com/reference/androidx/media3/test/utils/OggFileAudioBufferSink` | A sink for audio buffers that writes output audio as .ogg files with a given path prefix. |
| `https://developer.android.com/reference/androidx/media3/test/utils/PassthroughAudioProcessor` | A `https://developer.android.com/reference/androidx/media3/common/audio/BaseAudioProcessor` implementation that accepts all input formats and copies all input buffers onto the output without modifications. |
| `https://developer.android.com/reference/androidx/media3/test/utils/PlayerFence` | A Java-compatible fluent API for waiting for certain `https://developer.android.com/reference/androidx/media3/common/Player` conditions. |
| `https://developer.android.com/reference/androidx/media3/test/utils/PlayerFenceKt` |   |
| `https://developer.android.com/reference/androidx/media3/test/utils/RecordingPacketConsumer` | A `https://developer.android.com/reference/androidx/media3/effect/PacketConsumer` implementation that holds a reference to all queued packets, and optionally releases the underlying frames. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ReleaseListener` | A shared `https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsListener` implementation for waiting until `https://developer.android.com/reference/androidx/media3/test/utils/ReleaseListener#onPlayerReleased(androidx.media3.exoplayer.analytics.AnalyticsListener.EventTime)` is called and all background events have been delivered. |
| `https://developer.android.com/reference/androidx/media3/test/utils/SequenceAssetInfo` | Test assets that describe various `https://developer.android.com/reference/androidx/media3/transformer/EditedMediaItemSequence` configurations. |
| `https://developer.android.com/reference/androidx/media3/test/utils/SsimHelper` | A helper for calculating SSIM score for transcoded videos. |
| `https://developer.android.com/reference/androidx/media3/test/utils/StubExoPlayer` | An abstract `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer` implementation that throws `https://developer.android.com/reference/java/lang/UnsupportedOperationException.html` from every method. |
| `https://developer.android.com/reference/androidx/media3/test/utils/StubPlayer` | An abstract `https://developer.android.com/reference/androidx/media3/common/Player` implementation that throws `https://developer.android.com/reference/java/lang/UnsupportedOperationException.html` from every method. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestExoPlayerBuilder` | A builder of `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer` instances for testing. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestSpeedProvider` | `https://developer.android.com/reference/androidx/media3/common/audio/SpeedProvider` for tests |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestSummaryLogger` | Utilities for logging test summaries in instrumentation tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestTransformerBuilder` | A builder of `https://developer.android.com/reference/androidx/media3/transformer/Transformer` instances for testing with Robolectric. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TestUtil` | Utility methods for tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TextureBitmapReader` | Reads from an OpenGL texture. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ThreadTestUtil` | Static utility to coordinate threads in testing environments. |
| `https://developer.android.com/reference/androidx/media3/test/utils/ThrowingSubtitleParserFactory` | A `https://developer.android.com/reference/androidx/media3/extractor/text/SubtitleParser.Factory` for `https://developer.android.com/reference/androidx/media3/extractor/text/SubtitleParser` instances that throw an exception on every call to `https://developer.android.com/reference/androidx/media3/extractor/text/SubtitleParser#parse(byte[],androidx.media3.extractor.text.SubtitleParser.OutputOptions,java.util.function.Consumer<androidx.media3.extractor.text.CuesWithTiming>)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/TimelineAsserts` | Assertion methods for `https://developer.android.com/reference/androidx/media3/common/Timeline`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/VideoDecodingWrapper` | A wrapper for decoding a video using `https://developer.android.com/reference/android/media/MediaCodec.html`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/VideoFrameProcessorTestRunner` | A test runner for `https://developer.android.com/reference/androidx/media3/common/VideoFrameProcessor` tests. |
| `https://developer.android.com/reference/androidx/media3/test/utils/VideoFrameProcessorTestRunner.Builder` | A builder for `https://developer.android.com/reference/androidx/media3/test/utils/VideoFrameProcessorTestRunner` instances. |
| `https://developer.android.com/reference/androidx/media3/test/utils/VideoFrameProcessorTestRunner.SurfaceBitmapReader` | Reads from a `https://developer.android.com/reference/android/view/Surface.html`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/WebServerDispatcher` | A Dispatcher for okhttp3.mockwebserver.MockWebServer that allows per-path customisation of the static data served. |
| `https://developer.android.com/reference/androidx/media3/test/utils/WebServerDispatcher.Resource` | A resource served by `https://developer.android.com/reference/androidx/media3/test/utils/WebServerDispatcher`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder` | Builder for `https://developer.android.com/reference/androidx/media3/test/utils/WebServerDispatcher.Resource`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/utilitiesKt` |   |

## Exceptions

|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeExtractorInput.SimulatedIOException` | Thrown when simulating an `https://developer.android.com/reference/java/io/IOException.html`. |