# All Classes

- All Classes Interface Summary Class Summary Exception Summary Annotation Types Summary
  Class | Description
  --- | ---
  AacUtil | Utility methods for handling AAC audio streams.
  AacUtil.AacAudioObjectType | Valid AAC Audio object types.
  AacUtil.Config | Holds sample format information for AAC audio.
  AbstractConcatenatedTimeline | Abstract base class for the concatenation of one or more `Timeline`s.
  Ac3Extractor | Extracts data from (E-)AC-3 bitstreams.
  Ac3Reader | Parses a continuous (E-)AC-3 byte stream and extracts individual samples.
  Ac3Util | Utility methods for parsing Dolby TrueHD and (E-)AC-3 syncframes.
  Ac3Util.SyncFrameInfo | Holds sample format information as presented by a syncframe header.
  Ac3Util.SyncFrameInfo.StreamType | AC3 stream types.
  Ac4Extractor | Extracts data from AC-4 bitstreams.
  Ac4Reader | Parses a continuous AC-4 byte stream and extracts individual samples.
  Ac4Util | Utility methods for parsing AC-4 frames, which are access units in AC-4 bitstreams.
  Ac4Util.SyncFrameInfo | Holds sample format information as presented by a syncframe header.
  Action | Base class for actions to perform during playback tests.
  Action.AddMediaItems | Calls `ExoPlayer.addMediaSources(List)`.
  Action.ClearMediaItems | Calls `Player.clearMediaItems()`}.
  Action.ClearVideoSurface | Calls `Player.clearVideoSurface()`.
  Action.ExecuteRunnable | Calls `Runnable.run()`.
  Action.MoveMediaItem | Calls `Player.moveMediaItem(int, int)`.
  Action.PlayUntilPosition | Schedules a play action to be executed, waits until the player reaches the specified position, and pauses the player again.
  Action.Prepare | Calls `Player.prepare()`.
  Action.RemoveMediaItem | Calls `Player.removeMediaItem(int)`.
  Action.RemoveMediaItems | Calls `Player.removeMediaItems(int, int)`.
  Action.Seek | Calls `Player.seekTo(long)` or `Player.seekTo(int, long)`.
  Action.SendMessages | Calls `ExoPlayer.createMessage(Target)` and `PlayerMessage.send()`.
  Action.SetAudioAttributes | Calls `ExoPlayer.setAudioAttributes(AudioAttributes, boolean)`.
  Action.SetMediaItems | Calls `ExoPlayer.setMediaSources(List, int, long)`.
  Action.SetMediaItemsResetPosition | Calls `ExoPlayer.setMediaSources(List, boolean)`.
  Action.SetPlaybackParameters | Calls `Player.setPlaybackParameters(PlaybackParameters)`.
  Action.SetPlayWhenReady | Calls `Player.setPlayWhenReady(boolean)`.
  Action.SetRendererDisabled | Updates the `DefaultTrackSelector.Parameters` of a `DefaultTrackSelector` to specify whether the renderer at a given index should be disabled.
  Action.SetRepeatMode | Calls `Player.setRepeatMode(int)`.
  Action.SetShuffleModeEnabled | Calls `Player.setShuffleModeEnabled(boolean)`.
  Action.SetShuffleOrder | Calls `ExoPlayer.setShuffleOrder(ShuffleOrder)` .
  Action.SetVideoSurface | Calls `Player.setVideoSurface(Surface)`.
  Action.Stop | Calls `Player.stop()` or `Player.stop(boolean)`.
  Action.ThrowPlaybackException | Throws a playback exception on the playback thread.
  Action.WaitForIsLoading | Waits for a specified loading state, returning either immediately or after a call to `Player.Listener.onIsLoadingChanged(boolean)`.
  Action.WaitForMessage | Waits for a player message to arrive.
  Action.WaitForPendingPlayerCommands | Waits until the player acknowledged all pending player commands.
  Action.WaitForPlaybackState | Waits for a specified playback state, returning either immediately or after a call to `Player.Listener.onPlaybackStateChanged(int)`.
  Action.WaitForPlayWhenReady | Waits for a specified playWhenReady value, returning either immediately or after a call to `Player.Listener.onPlayWhenReadyChanged(boolean, int)`.
  Action.WaitForPositionDiscontinuity | Waits for `Player.Listener.onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int)`.
  Action.WaitForTimelineChanged | Waits for `Player.Listener.onTimelineChanged(Timeline, int)`.
  ActionSchedule | Schedules a sequence of `Action`s for execution during a test.
  ActionSchedule.Builder | A builder for `ActionSchedule` instances.
  ActionSchedule.Callback | Callback to notify listener that the action schedule has finished.
  ActionSchedule.PlayerRunnable | Provides a wrapper for a `Runnable` which has access to the player.
  ActionSchedule.PlayerTarget | Provides a wrapper for a `PlayerMessage.Target` which has access to the player when handling messages.
  ActionSchedule.PlayerTarget.Callback | Callback to be called when message arrives.
  AdaptationSet | Represents a set of interchangeable encoded versions of a media content component.
  AdaptiveTrackSelection | A bandwidth based adaptive `ExoTrackSelection`, whose selected track is updated to be the one of highest quality given the current network conditions and the state of the buffer.
  AdaptiveTrackSelection.AdaptationCheckpoint | Checkpoint to determine allocated bandwidth.
  AdaptiveTrackSelection.Factory | Factory for `AdaptiveTrackSelection` instances.
  AdditionalFailureInfo | A JUnit `Rule` that attaches additional info to any errors/exceptions thrown by the test.
  AdOverlayInfo | Provides information about an overlay view shown on top of an ad view group.
  AdOverlayInfo.Builder | A builder for `AdOverlayInfo` instances.
  AdOverlayInfo.Purpose | The purpose of the overlay.
  AdPlaybackState | Represents ad group times and information on the state and URIs of ads within each ad group.
  AdPlaybackState.AdGroup | Represents a group of ads, with information about their states.
  AdPlaybackState.AdState | Represents the state of an ad in an ad group.
  AdsLoader | Interface for loaders of ads, which can be used with `AdsMediaSource`.
  AdsLoader.EventListener | Listener for ads loader events.
  AdsLoader.Provider | Provides `AdsLoader` instances for media items that have `ad tag URIs`.
  AdsMediaSource | A `MediaSource` that inserts ads linearly into a provided content media source.
  AdsMediaSource.AdLoadException | Wrapper for exceptions that occur while loading ads, which are notified via `MediaSourceEventListener.onLoadError(int, MediaPeriodId, LoadEventInfo, MediaLoadData, IOException, boolean)`.
  AdsMediaSource.AdLoadException.Type | Types of ad load exceptions.
  AdtsExtractor | Extracts data from AAC bit streams with ADTS framing.
  AdtsExtractor.Flags | Flags controlling the behavior of the extractor.
  AdtsReader | Parses a continuous ADTS byte stream and extracts individual frames.
  AdViewProvider | Provides information about views for the ad playback UI.
  AesCipherDataSink | A wrapping `DataSink` that encrypts the data being consumed.
  AesCipherDataSource | A `DataSource` that decrypts the data read from an upstream source.
  AesFlushingCipher | A flushing variant of a AES/CTR/NoPadding `Cipher`.
  Allocation | An allocation within a byte array.
  Allocator | A source of allocations.
  Allocator.AllocationNode | A node in a chain of `Allocations`.
  AmrExtractor | Extracts data from the AMR containers format (either AMR or AMR-WB).
  AmrExtractor.Flags | Flags controlling the behavior of the extractor.
  AnalyticsCollector | Interface for data collectors that forward analytics events to `AnalyticsListeners`.
  AnalyticsListener | A listener for analytics events.
  AnalyticsListener.EventFlags | Events that can be reported via `AnalyticsListener.onEvents(Player, Events)`.
  AnalyticsListener.Events | A set of `AnalyticsListener.EventFlags`.
  AnalyticsListener.EventTime | Time information of an event.
  ApicFrame | APIC (Attached Picture) ID3 frame.
  AppInfoTable | A representation of a DVB Application Information Table (AIT).
  AppInfoTableDecoder | Decoder for the DVB Application Information Table (AIT).
  AspectRatioFrameLayout | A `FrameLayout` that resizes itself to match a specified aspect ratio.
  AspectRatioFrameLayout.AspectRatioListener | Listener to be notified about changes of the aspect ratios of this view.
  AspectRatioFrameLayout.ResizeMode | Resize modes for `AspectRatioFrameLayout`.
  Assertions | Provides methods for asserting the truth of expressions and properties.
  AssetContentProvider | A `ContentProvider` for reading asset data.
  AssetDataSource | A `DataSource` for reading from a local asset.
  AssetDataSource.AssetDataSourceException | Thrown when an `IOException` is encountered reading a local asset.
  AtomicFile | A helper class for performing atomic operations on a file by creating a backup file until a write has successfully completed.
  AudioAttributes | Attributes for audio playback, which configure the underlying platform `AudioTrack`.
  AudioAttributes.AudioAttributesV21 | A direct wrapper around `AudioAttributes`.
  AudioAttributes.Builder | Builder for `AudioAttributes`.
  AudioCapabilities | Represents the set of audio formats that a device is capable of playing.
  AudioCapabilitiesReceiver | Receives broadcast events indicating changes to the device's audio capabilities, notifying a `AudioCapabilitiesReceiver.Listener` when audio capability changes occur.
  AudioCapabilitiesReceiver.Listener | Listener notified when audio capabilities change.
  AudioProcessor | Interface for audio processors, which take audio data as input and transform it, potentially modifying its channel count, encoding and/or sample rate.
  AudioProcessor.AudioFormat | PCM audio format that may be handled by an audio processor.
  AudioProcessor.UnhandledAudioFormatException | Exception thrown when a processor can't be configured for a given input audio format.
  AudioProcessorChain | Provides a chain of audio processors, which are used for any user-defined processing and applying playback parameters (if supported).
  AudioRendererEventListener | Listener of audio `Renderer` events.
  AudioRendererEventListener.EventDispatcher | Dispatches events to an `AudioRendererEventListener`.
  AudioSink | A sink that consumes audio data.
  AudioSink.ConfigurationException | Thrown when a failure occurs configuring the sink.
  AudioSink.InitializationException | Thrown when a failure occurs initializing the sink.
  AudioSink.Listener | Listener for audio sink events.
  AudioSink.SinkFormatSupport | The level of support the sink provides for a format.
  AudioSink.UnexpectedDiscontinuityException | Thrown when the sink encounters an unexpected timestamp discontinuity.
  AudioSink.WriteException | Thrown when a failure occurs writing to the sink.
  AuxEffectInfo | Represents auxiliary effect information, which can be used to attach an auxiliary effect to an underlying `AudioTrack`.
  AvcConfig | AVC configuration data.
  AviExtractor | Extracts data from the AVI container format.
  BandwidthMeter | Provides estimates of the currently available bandwidth.
  BandwidthMeter.EventListener | A listener of `BandwidthMeter` events.
  BandwidthMeter.EventListener.EventDispatcher | Event dispatcher which allows listener registration.
  BaseAudioProcessor | Base class for audio processors that keep an output buffer and an internal buffer that is reused whenever input is queued.
  BaseDataSource | Base `DataSource` implementation to keep a list of `TransferListener`s.
  BaseMediaChunk | A base implementation of `MediaChunk` that outputs to a `BaseMediaChunkOutput`.
  BaseMediaChunkIterator | Base class for `MediaChunkIterator`s.
  BaseMediaChunkOutput | A `ChunkExtractor.TrackOutputProvider` that provides `TrackOutputs` based on a predefined mapping from track type to output.
  BaseMediaSource | Base `MediaSource` implementation to handle parallel reuse and to keep a list of `MediaSourceEventListener`s.
  BasePlayer | Abstract base `Player` which implements common implementation independent methods.
  BaseRenderer | An abstract base class suitable for most `Renderer` implementations.
  BaseTrackSelection | An abstract base class suitable for most `ExoTrackSelection` implementations.
  BaseUrl | A base URL, as defined by ISO 23009-1, 2nd edition, 5.6.
  BaseUrlExclusionList | Holds the state of `excluded` base URLs to be used to `select` a base URL based on these exclusions.
  BehindLiveWindowException | Thrown when a live playback falls behind the available media window.
  BinaryFrame | Binary ID3 frame.
  BinarySearchSeeker | A seeker that supports seeking within a stream by searching for the target frame using binary search.
  BinarySearchSeeker.BinarySearchSeekMap | A `SeekMap` implementation that returns the estimated byte location from `BinarySearchSeeker.SeekOperationParams.calculateNextSearchBytePosition(long, long, long, long, long, long)` for each `BinarySearchSeeker.BinarySearchSeekMap.getSeekPoints(long)` query.
  BinarySearchSeeker.DefaultSeekTimestampConverter | A `BinarySearchSeeker.SeekTimestampConverter` implementation that returns the seek time itself as the timestamp for a seek time position.
  BinarySearchSeeker.SeekOperationParams | Contains parameters for a pending seek operation by `BinarySearchSeeker`.
  BinarySearchSeeker.SeekTimestampConverter | A converter that converts seek time in stream time into target timestamp for the `BinarySearchSeeker`.
  BinarySearchSeeker.TimestampSearchResult | Represents possible search results for `BinarySearchSeeker.TimestampSeeker.searchForTimestamp(ExtractorInput, long)`.
  BinarySearchSeeker.TimestampSeeker | A seeker that looks for a given timestamp from an input.
  Buffer | Base class for buffers with flags.
  Bundleable | Interface for classes whose instance can be stored in a `Bundle` by `Bundleable.toBundle()` and can be restored from the `Bundle` by using the static `CREATOR` field that implements `Bundleable.Creator`.
  Bundleable.Creator<T extends Bundleable> | Interface for the static `CREATOR` field of `Bundleable` classes.
  BundleableUtil | Utilities for `Bundleable`.
  BundledChunkExtractor | `ChunkExtractor` implementation that uses ExoPlayer app-bundled `Extractors`.
  BundledExtractorsAdapter | `ProgressiveMediaExtractor` built on top of `Extractor` instances, whose implementation classes are bundled in the app.
  BundledHlsMediaChunkExtractor | `HlsMediaChunkExtractor` implementation that uses ExoPlayer app-bundled `Extractors`.
  BundleListRetriever | A `Binder` to transfer a list of `Bundles` across processes by splitting the list into multiple transactions.
  BundleUtil | Utilities for `Bundle`.
  ByteArrayDataSink | A `DataSink` for writing to a byte array.
  ByteArrayDataSource | A `DataSource` for reading from a byte array.
  C | Defines constants used by the library.
  C.AudioAllowedCapturePolicy | Capture policies for audio attributes.
  C.AudioContentType | Content types for audio attributes.
  C.AudioFlags | Flags for audio attributes.
  C.AudioUsage | Usage types for audio attributes.
  C.BufferFlags | Flags which can apply to a buffer containing a media sample.
  C.ColorRange | Video color range.
  C.ColorSpace | Video colorspaces.
  C.ColorTransfer | Video color transfer characteristics.
  C.ContentType | Represents a streaming or other media type.
  C.CryptoMode | Crypto modes for a codec.
  C.CryptoType | Types of crypto implementation.
  C.DataType | Represents a type of data.
  C.Encoding | Represents an audio encoding, or an invalid or unset value.
  C.FormatSupport | Level of renderer support for a format.
  C.NetworkType | Network connection type.
  C.PcmEncoding | Represents a PCM audio encoding, or an invalid or unset value.
  C.Projection | Video projection types.
  C.RoleFlags | Track role flags.
  C.SelectionFlags | Track selection flags.
  C.SelectionReason | Represents a reason for selection.
  C.SpatializationBehavior | Represents the behavior affecting whether spatialization will be used.
  C.StereoMode | The stereo mode for 360/3D/VR videos.
  C.StreamType | Stream types for an `AudioTrack`.
  C.TrackType | Represents a type of media track.
  C.VideoChangeFrameRateStrategy | Strategies for calling `Surface.setFrameRate(float, int, int)`.
  C.VideoOutputMode | Video decoder output modes.
  C.VideoScalingMode | Video scaling modes for `MediaCodec`-based renderers.
  C.WakeMode | Mode specifying whether the player should hold a WakeLock and a WifiLock.
  Cache | A cache that supports partial caching of resources.
  Cache.CacheException | Thrown when an error is encountered when writing data.
  Cache.Listener | Listener of `Cache` events.
  CacheAsserts | Assertion methods for `Cache`.
  CacheAsserts.RequestSet | Defines a set of data requests.
  CacheDataSink | Writes data into a cache.
  CacheDataSink.CacheDataSinkException | Thrown when an `IOException` is encountered when writing data to the sink.
  CacheDataSink.Factory | `DataSink.Factory` for `CacheDataSink` instances.
  CacheDataSource | A `DataSource` that reads and writes a `Cache`.
  CacheDataSource.CacheIgnoredReason | Reasons the cache may be ignored.
  CacheDataSource.EventListener | Listener of `CacheDataSource` events.
  CacheDataSource.Factory | `DataSource.Factory` for `CacheDataSource` instances.
  CacheDataSource.Flags | Flags controlling the CacheDataSource's behavior.
  CachedRegionTracker | Utility class for efficiently tracking regions of data that are stored in a `Cache` for a given cache key.
  CacheEvictor | Evicts data from a `Cache`.
  CacheKeyFactory | Factory for cache keys.
  CacheSpan | Defines a span of data that may or may not be cached (as indicated by `CacheSpan.isCached`).
  CacheWriter | Caching related utility methods.
  CacheWriter.ProgressListener | Receives progress updates during cache operations.
  CameraMotionListener | Listens camera motion.
  CameraMotionRenderer | A `Renderer` that parses the camera motion track.
  CaptionStyleCompat | A compatibility wrapper for `CaptioningManager.CaptionStyle`.
  CaptionStyleCompat.EdgeType | The type of edge, which may be none.
  CapturingAudioSink | A `ForwardingAudioSink` that captures configuration, discontinuity and buffer events.
  CapturingRenderersFactory | A `RenderersFactory` that captures interactions with the audio and video `MediaCodecAdapter` instances.
  CastPlayer | `Player` implementation that communicates with a Cast receiver app.
  Cea608Decoder | A `SubtitleDecoder` for CEA-608 (also known as "line 21 captions" and "EIA-608").
  Cea708Decoder | A `SubtitleDecoder` for CEA-708 (also known as "EIA-708").
  CeaUtil | Utility methods for handling CEA-608/708 messages.
  ChapterFrame | Chapter information ID3 frame.
  ChapterTocFrame | Chapter table of contents ID3 frame.
  Chunk | An abstract base class for `Loader.Loadable` implementations that load chunks of data required for the playback of streams.
  ChunkExtractor | Extracts samples and track `Formats` from chunks.
  ChunkExtractor.Factory | Creates `ChunkExtractor` instances.
  ChunkExtractor.TrackOutputProvider | Provides `TrackOutput` instances to be written to during extraction.
  ChunkHolder | Holds a chunk or an indication that the end of the stream has been reached.
  ChunkIndex | Defines chunks of samples within a media stream.
  ChunkSampleStream<T extends ChunkSource> | A `SampleStream` that loads media in `Chunk`s, obtained from a `ChunkSource`.
  ChunkSampleStream.ReleaseCallback<T extends ChunkSource> | A callback to be notified when a sample stream has finished being released.
  ChunkSource | A provider of `Chunk`s for a `ChunkSampleStream` to load.
  ClippingMediaPeriod | Wraps a `MediaPeriod` and clips its `SampleStream`s to provide a subsequence of their samples.
  ClippingMediaSource | `MediaSource` that wraps a source and clips its timeline based on specified start/end positions.
  ClippingMediaSource.IllegalClippingException | Thrown when a `ClippingMediaSource` cannot clip its wrapped source.
  ClippingMediaSource.IllegalClippingException.Reason | The reason clipping failed.
  Clock | An interface through which system clocks can be read and `HandlerWrapper`s created.
  Codec | Provides a layer of abstraction for interacting with decoders and encoders.
  Codec.DecoderFactory | A factory for decoder instances.
  Codec.EncoderFactory | A factory for encoder instances.
  CodecSpecificDataUtil | Provides utilities for handling various types of codec-specific data.
  ColorInfo | Stores color info.
  ColorLut | Specifies color transformations using color lookup tables to apply to each frame in the fragment shader.
  ColorParser | Parser for color expressions found in styling formats, e.g.
  CommentFrame | Comment ID3 frame.
  CompositeMediaSource<T> | Composite `MediaSource` consisting of multiple child sources.
  CompositeSequenceableLoader | A `SequenceableLoader` that encapsulates multiple other `SequenceableLoader`s.
  CompositeSequenceableLoaderFactory | A factory to create composite `SequenceableLoader`s.
  ConcatenatingMediaSource | Concatenates multiple `MediaSource`s.
  ConcatenatingMediaSource2 | Concatenates multiple `MediaSources`, combining everything in one single `Timeline.Window`.
  ConcatenatingMediaSource2.Builder | A builder for `ConcatenatingMediaSource2` instances.
  ConditionVariable | An interruptible condition variable.
  ConstantBitrateSeekMap | A `SeekMap` implementation that assumes the stream has a constant bitrate and consists of multiple independent frames of the same size.
  Consumer<T> | Represents an operation that accepts a single input argument and returns no result.
  ContainerMediaChunk | A `BaseMediaChunk` that uses an `Extractor` to decode sample data.
  ContentDataSource | A `DataSource` for reading from a content URI.
  ContentDataSource.ContentDataSourceException | Thrown when an `IOException` is encountered reading from a content URI.
  ContentMetadata | Interface for an immutable snapshot of keyed metadata.
  ContentMetadataMutations | Defines multiple mutations on metadata value which are applied atomically.
  Contrast | A `GlEffect` to control the contrast of video frames.
  CopyOnWriteMultiset<E> | An unordered collection of elements that allows duplicates, but also allows access to a set of unique elements.
  CronetDataSource | DataSource without intermediate buffer based on Cronet API set using UrlRequest.
  CronetDataSource.Factory | `DataSource.Factory` for `CronetDataSource` instances.
  CronetDataSource.OpenException | Thrown when an error is encountered when trying to open a `CronetDataSource`.
  CronetDataSourceFactory | Deprecated. Use `CronetDataSource.Factory` instead.
  CronetEngineWrapper | Deprecated. Use `CronetEngine` directly.
  CronetUtil | Cronet utility methods.
  Crop | Specifies a crop to apply in the vertex shader.
  CryptoConfig | Configuration for a decoder to allow it to decode encrypted media data.
  CryptoException | Thrown when a non-platform component fails to decrypt data.
  CryptoInfo | Metadata describing the structure of an encrypted input sample.
  Cue | Contains information about a specific cue, including textual content and formatting data.
  Cue.AnchorType | The type of anchor, which may be unset.
  Cue.Builder | A builder for `Cue` objects.
  Cue.LineType | The type of line, which may be unset.
  Cue.TextSizeType | The type of default text size for this cue, which may be unset.
  Cue.VerticalType | The type of vertical layout for this cue, which may be unset (i.e.
  CueDecoder | Decodes data encoded by `CueEncoder`.
  CueEncoder | Encodes data that can be decoded by `CueDecoder`.
  CueGroup | Class to represent the state of active `Cues` at a particular time.
  DashChunkSource | A `ChunkSource` for DASH streams.
  DashChunkSource.Factory | Factory for `DashChunkSource`s.
  DashDownloader | A downloader for DASH streams.
  DashManifest | Represents a DASH media presentation description (mpd), as defined by ISO/IEC 23009-1:2014 Section 5.3.1.2.
  DashManifestParser | A parser of media presentation description files.
  DashManifestParser.RepresentationInfo | A parsed Representation element.
  DashManifestStaleException | Thrown when a live playback's manifest is stale and a new manifest could not be loaded.
  DashMediaSource | A DASH `MediaSource`.
  DashMediaSource.Factory | Factory for `DashMediaSource`s.
  DashSegmentIndex | Indexes the segments within a media stream.
  DashUtil | Utility methods for DASH streams.
  DashWrappingSegmentIndex | An implementation of `DashSegmentIndex` that wraps a `ChunkIndex` parsed from a media stream.
  DatabaseIOException | An `IOException` whose cause is an `SQLException`.
  DatabaseProvider | Provides `SQLiteDatabase` instances to media library components, which may read and write tables prefixed with `DatabaseProvider.TABLE_PREFIX`.
  DataChunk | A base class for `Chunk` implementations where the data should be loaded into a `byte[]` before being consumed.
  DataReader | Reads bytes from a data stream.
  DataSchemeDataSource | A `DataSource` for reading data URLs, as defined by RFC 2397.
  DataSink | A component to which streams of data can be written.
  DataSink.Factory | A factory for `DataSink` instances.
  DataSource | Reads data from URI-identified resources.
  DataSource.Factory | A factory for `DataSource` instances.
  DataSourceContractTest | A collection of contract tests for `DataSource` implementations.
  DataSourceContractTest.FakeTransferListener | A `TransferListener` that only keeps track of the transferred bytes.
  DataSourceContractTest.TestResource | Information about a resource that can be used to test the `DataSource` instance.
  DataSourceContractTest.TestResource.Builder | Builder for `DataSourceContractTest.TestResource` instances.
  DataSourceException | Used to specify reason of a DataSource error.
  DataSourceInputStream | Allows data corresponding to a given `DataSpec` to be read from a `DataSource` and consumed through an `InputStream`.
  DataSourceUtil | Utility methods for `DataSource`.
  DataSpec | Defines a region of data in a resource.
  DataSpec.Builder | Builds `DataSpec` instances.
  DataSpec.Flags | The flags that apply to any request for data.
  DataSpec.HttpMethod | HTTP methods supported by ExoPlayer `HttpDataSource`s.
  DebugTextViewHelper | A helper class for periodically updating a `TextView` with debug information obtained from an `ExoPlayer`.
  DebugViewProvider | Provider for views to show diagnostic information during a transformation, for debugging.
  DecodeOneFrameUtil | Utilities for decoding a frame for tests.
  DecodeOneFrameUtil.Listener | Listener for decoding events.
  Decoder<I,​O,​E extends DecoderException> | A media decoder.
  DecoderAudioRenderer<T extends Decoder<DecoderInputBuffer,​? extends SimpleDecoderOutputBuffer,​? extends DecoderException>> | Decodes and renders audio using a `Decoder`.
  DecoderCounters | Maintains decoder event counts, for debugging purposes only.
  DecoderCountersUtil | Assertions for `DecoderCounters`.
  DecoderException | Thrown when a `Decoder` error occurs.
  DecoderInputBuffer | Holds input for a decoder.
  DecoderInputBuffer.BufferReplacementMode | The buffer replacement mode.
  DecoderInputBuffer.InsufficientCapacityException | Thrown when an attempt is made to write into a `DecoderInputBuffer` whose `DecoderInputBuffer.bufferReplacementMode` is `DecoderInputBuffer.BUFFER_REPLACEMENT_MODE_DISABLED` and who `DecoderInputBuffer.data` capacity is smaller than required.
  DecoderOutputBuffer | Output buffer decoded by a `Decoder`.
  DecoderOutputBuffer.Owner<S extends DecoderOutputBuffer> | Buffer owner.
  DecoderReuseEvaluation | The result of an evaluation to determine whether a decoder can be reused for a new input format.
  DecoderReuseEvaluation.DecoderDiscardReasons | Possible reasons why reuse is not possible.
  DecoderReuseEvaluation.DecoderReuseResult | Possible outcomes of the evaluation.
  DecoderVideoRenderer | Decodes and renders video using a `Decoder`.
  DefaultAllocator | Default implementation of `Allocator`.
  DefaultAnalyticsCollector | Data collector that forwards analytics events to `AnalyticsListeners`.
  DefaultAudioSink | Plays audio data.
  DefaultAudioSink.AudioProcessorChain | Deprecated. Use `AudioProcessorChain`.
  DefaultAudioSink.AudioTrackBufferSizeProvider | Provides the buffer size to use when creating an `AudioTrack`.
  DefaultAudioSink.Builder | A builder to create `DefaultAudioSink` instances.
  DefaultAudioSink.DefaultAudioProcessorChain | The default audio processor chain, which applies a (possibly empty) chain of user-defined audio processors followed by `SilenceSkippingAudioProcessor` and `SonicAudioProcessor`.
  DefaultAudioSink.InvalidAudioTrackTimestampException | Thrown when the audio track has provided a spurious timestamp, if `DefaultAudioSink.failOnSpuriousAudioTimestamp` is set.
  DefaultAudioSink.OffloadMode | Audio offload mode configuration.
  DefaultAudioSink.OutputMode | Output mode of the audio sink.
  DefaultAudioTrackBufferSizeProvider | Provide the buffer size to use when creating an `AudioTrack`.
  DefaultAudioTrackBufferSizeProvider.Builder | A builder to create `DefaultAudioTrackBufferSizeProvider` instances.
  DefaultBandwidthMeter | Estimates bandwidth by listening to data transfers.
  DefaultBandwidthMeter.Builder | Builder for a bandwidth meter.
  DefaultCastOptionsProvider | A convenience `OptionsProvider` to target the default cast receiver app.
  DefaultCodec | A default `Codec` implementation that uses `MediaCodec`.
  DefaultCompositeSequenceableLoaderFactory | Default implementation of `CompositeSequenceableLoaderFactory`.
  DefaultContentMetadata | Default implementation of `ContentMetadata`.
  DefaultDashChunkSource | A default `DashChunkSource` implementation.
  DefaultDashChunkSource.Factory |
  DefaultDashChunkSource.RepresentationHolder | Holds information about a snapshot of a single `Representation`.
  DefaultDashChunkSource.RepresentationSegmentIterator | `MediaChunkIterator` wrapping a `DefaultDashChunkSource.RepresentationHolder`.
  DefaultDatabaseProvider | A `DatabaseProvider` that provides instances obtained from a `SQLiteOpenHelper`.
  DefaultDataSource | A `DataSource` that supports multiple URI schemes.
  DefaultDataSource.Factory | `DataSource.Factory` for `DefaultDataSource` instances.
  DefaultDataSourceFactory | Deprecated. Use `DefaultDataSource.Factory` instead.
  DefaultDownloaderFactory | Default `DownloaderFactory`, supporting creation of progressive, DASH, HLS and SmoothStreaming downloaders.
  DefaultDownloadIndex | A `DownloadIndex` that uses SQLite to persist `Downloads`.
  DefaultDrmSessionManager | A `DrmSessionManager` that supports playbacks using `ExoMediaDrm`.
  DefaultDrmSessionManager.Builder | Builder for `DefaultDrmSessionManager` instances.
  DefaultDrmSessionManager.MissingSchemeDataException | Signals that the `Format.drmInitData` passed to `DefaultDrmSessionManager.acquireSession(com.google.android.exoplayer2.drm.DrmSessionEventListener.EventDispatcher, com.google.android.exoplayer2.Format)` does not contain scheme data for the required UUID.
  DefaultDrmSessionManager.Mode | Determines the action to be done after a session acquired.
  DefaultDrmSessionManagerProvider | Default implementation of `DrmSessionManagerProvider`.
  DefaultEncoderFactory | A default implementation of `Codec.EncoderFactory`.
  DefaultEncoderFactory.Builder | A builder for `DefaultEncoderFactory` instances.
  DefaultExtractorInput | An `ExtractorInput` that wraps a `DataReader`.
  DefaultExtractorsFactory | An `ExtractorsFactory` that provides an array of extractors for the following formats: MP4, including M4A (`Mp4Extractor`) fMP4 (`FragmentedMp4Extractor`) Matroska and WebM (`MatroskaExtractor`) Ogg Vorbis/FLAC (`OggExtractor` MP3 (`Mp3Extractor`) AAC (`AdtsExtractor`) MPEG TS (`TsExtractor`) MPEG PS (`PsExtractor`) FLV (`FlvExtractor`) WAV (`WavExtractor`) AC3 (`Ac3Extractor`) AC4 (`Ac4Extractor`) AMR (`AmrExtractor`) FLAC If available, the FLAC extension's `com.google.android.exoplayer2.ext.flac.FlacExtractor` is used.
  DefaultHlsDataSourceFactory | Default implementation of `HlsDataSourceFactory`.
  DefaultHlsExtractorFactory | Default `HlsExtractorFactory` implementation.
  DefaultHlsPlaylistParserFactory | Default implementation for `HlsPlaylistParserFactory`.
  DefaultHlsPlaylistTracker | Default implementation for `HlsPlaylistTracker`.
  DefaultHttpDataSource | An `HttpDataSource` that uses Android's `HttpURLConnection`.
  DefaultHttpDataSource.Factory | `DataSource.Factory` for `DefaultHttpDataSource` instances.
  DefaultLivePlaybackSpeedControl | A `LivePlaybackSpeedControl` that adjusts the playback speed using a proportional controller.
  DefaultLivePlaybackSpeedControl.Builder | Builder for a `DefaultLivePlaybackSpeedControl`.
  DefaultLoadControl | The default `LoadControl` implementation.
  DefaultLoadControl.Builder | Builder for `DefaultLoadControl`.
  DefaultLoadErrorHandlingPolicy | Default implementation of `LoadErrorHandlingPolicy`.
  DefaultMediaCodecAdapterFactory | The default `MediaCodecAdapter.Factory`.
  DefaultMediaDescriptionAdapter | Default implementation of `PlayerNotificationManager.MediaDescriptionAdapter`.
  DefaultMediaItemConverter | Default `MediaItemConverter` implementation.
  DefaultMediaItemConverter | Default implementation of `MediaItemConverter`.
  DefaultMediaSourceFactory | The default `MediaSource.Factory` implementation.
  DefaultMediaSourceFactory.AdsLoaderProvider | Deprecated. Use `AdsLoader.Provider` instead.
  DefaultMuxer | A default `Muxer` implementation.
  DefaultMuxer.Factory | A `Muxer.Factory` for `DefaultMuxer`.
  DefaultPlaybackSessionManager | Default `PlaybackSessionManager` which instantiates a new session for each window in the timeline and also for each ad within the windows.
  DefaultRenderersFactory | Default `RenderersFactory` implementation.
  DefaultRenderersFactory.ExtensionRendererMode | Modes for using extension renderers.
  DefaultRenderersFactoryAsserts | Assertions for `DefaultRenderersFactory`.
  DefaultRtpPayloadReaderFactory | Default `RtpPayloadReader.Factory` implementation.
  DefaultSsChunkSource | A default `SsChunkSource` implementation.
  DefaultSsChunkSource.Factory |
  DefaultTimeBar | A time bar that shows a current position, buffered position, duration and ad markers.
  DefaultTrackNameProvider | A default `TrackNameProvider`.
  DefaultTrackSelector | A default `TrackSelector` suitable for most use cases.
  DefaultTrackSelector.Parameters | Extends `DefaultTrackSelector.Parameters` by adding fields that are specific to `DefaultTrackSelector`.
  DefaultTrackSelector.Parameters.Builder | A builder for `DefaultTrackSelector.Parameters`.
  DefaultTrackSelector.ParametersBuilder | Deprecated. Use `DefaultTrackSelector.Parameters.Builder` instead.
  DefaultTrackSelector.SelectionEligibility | The extent to which tracks are eligible for selection.
  DefaultTrackSelector.SelectionOverride | A track selection override.
  DefaultTsPayloadReaderFactory | Default `TsPayloadReader.Factory` implementation.
  DefaultTsPayloadReaderFactory.Flags | Flags controlling elementary stream readers' behavior.
  Descriptor | A descriptor, as defined by ISO 23009-1, 2nd edition, 5.8.2.
  DeviceInfo | Information about the playback device.
  DeviceInfo.PlaybackType | Types of playback.
  DeviceMappedEncoderBitrateProvider | Provides encoder bitrates that should target 0.95 SSIM or higher, accounting for device used.
  DolbyVisionConfig | Dolby Vision configuration data.
  Download | Represents state of a download.
  Download.FailureReason | Failure reasons.
  Download.State | Download states.
  DownloadBuilder | Builder for `Download`.
  DownloadCursor | Provides random read-write access to the result set returned by a database query.
  Downloader | Downloads and removes a piece of content.
  Downloader.ProgressListener | Receives progress updates during download operations.
  DownloaderFactory | Creates `Downloaders` for given `DownloadRequests`.
  DownloadException | Thrown on an error during downloading.
  DownloadHelper | A helper for initializing and removing downloads.
  DownloadHelper.Callback | A callback to be notified when the `DownloadHelper` is prepared.
  DownloadHelper.LiveContentUnsupportedException | Thrown at an attempt to download live content.
  DownloadIndex | An index of `Downloads`.
  DownloadManager | Manages downloads.
  DownloadManager.Listener | Listener for `DownloadManager` events.
  DownloadNotificationHelper | Helper for creating download notifications.
  DownloadProgress | Mutable `Download` progress.
  DownloadRequest | Defines content to be downloaded.
  DownloadRequest.Builder | A builder for download requests.
  DownloadRequest.UnsupportedRequestException | Thrown when the encoded request data belongs to an unsupported request type.
  DownloadService | A `Service` for downloading media.
  DrmInitData | Initialization data for one or more DRM schemes.
  DrmInitData.SchemeData | Scheme initialization data.
  DrmSession | A DRM session.
  DrmSession.DrmSessionException | Wraps the throwable which is the cause of the error state.
  DrmSession.State | The state of the DRM session.
  DrmSessionEventListener | Listener of `DrmSessionManager` events.
  DrmSessionEventListener.EventDispatcher | Dispatches events to `DrmSessionEventListeners`.
  DrmSessionManager | Manages a DRM session.
  DrmSessionManager.DrmSessionReference | Represents a single reference count of a `DrmSession`, while deliberately not giving access to the underlying session.
  DrmSessionManagerProvider | A provider to obtain a `DrmSessionManager` suitable for playing the content described by a `MediaItem`.
  DrmUtil | DRM-related utility methods.
  DrmUtil.ErrorSource | Identifies the operation which caused a DRM-related error.
  DtsReader | Parses a continuous DTS byte stream and extracts individual samples.
  DtsUtil | Utility methods for parsing DTS frames.
  DummyExoMediaDrm | An `ExoMediaDrm` that does not support any protection schemes.
  DummyExtractorOutput | A fake `ExtractorOutput` implementation.
  DummyMainThread | Helper class to simulate main/UI thread in tests.
  DummyMainThread.TestRunnable | `Runnable` variant which can throw a checked exception.
  DummyTrackOutput | A fake `TrackOutput` implementation.
  DumpableFormat | Wraps a `Format` to allow dumping it.
  Dumper | Helper utility to dump field values.
  Dumper.Dumpable | Provides custom dump method.
  DumpFileAsserts | Helper class to enable assertions based on golden-data dump files.
  DvbDecoder | A `SimpleSubtitleDecoder` for DVB subtitles.
  DvbSubtitleReader | Parses DVB subtitle data and extracts individual frames.
  EbmlProcessor | Defines EBML element IDs/types and processes events.
  EbmlProcessor.ElementType | EBML element types.
  Effect | Marker interface for a video frame effect.
  EGLSurfaceTexture | Generates a `SurfaceTexture` using EGL/GLES functions.
  EGLSurfaceTexture.SecureMode | Secure mode to be used by the EGL surface and context.
  EGLSurfaceTexture.TextureImageListener | Listener to be called when the texture image on `SurfaceTexture` has been updated.
  ElementaryStreamReader | Extracts individual samples from an elementary media stream, preserving original order.
  EmptySampleStream | An empty `SampleStream`.
  EncoderBitrateProvider | Provides bitrates for encoders to use as a target.
  EncoderSelector | Selector of `MediaCodec` encoder instances.
  EncoderUtil | Utility methods for `MediaCodec` encoders.
  ErrorMessageProvider<T extends Throwable> | Converts throwables into error codes and user readable error messages.
  ErrorStateDrmSession | A `DrmSession` that's in a terminal error state.
  EventLogger | Logs events from `Player` and other core components using `Log`.
  EventMessage | An Event Message (emsg) as defined in ISO 23009-1.
  EventMessageDecoder | Decodes data encoded by `EventMessageEncoder`.
  EventMessageEncoder | Encodes data that can be decoded by `EventMessageDecoder`.
  EventStream | A DASH in-MPD EventStream element, as defined by ISO/IEC 23009-1, 2nd edition, section 5.10.
  ExoDatabaseProvider | Deprecated. Use `StandaloneDatabaseProvider`.
  ExoHostedTest | A `HostActivity.HostedTest` for `ExoPlayer` playback tests.
  ExoMediaDrm | Used to obtain keys for decrypting protected media streams.
  ExoMediaDrm.AppManagedProvider | Provides an `ExoMediaDrm` instance owned by the app.
  ExoMediaDrm.KeyRequest | Contains data used to request keys from a license server.
  ExoMediaDrm.KeyRequest.RequestType | Key request types.
  ExoMediaDrm.KeyStatus | Defines the status of a key.
  ExoMediaDrm.OnEventListener | Called when a DRM event occurs.
  ExoMediaDrm.OnExpirationUpdateListener | Called when a session expiration update occurs.
  ExoMediaDrm.OnKeyStatusChangeListener | Called when the keys in a DRM session change state.
  ExoMediaDrm.Provider | Provider for `ExoMediaDrm` instances.
  ExoMediaDrm.ProvisionRequest | Contains data to request a certificate from a provisioning server.
  ExoPlaybackException | Thrown when a non locally recoverable playback failure occurs.
  ExoPlaybackException.Type | The type of source that produced the error.
  ExoPlayer | An extensible media player that plays `MediaSource`s.
  ExoPlayer.AudioComponent | Deprecated. Use `ExoPlayer`, as the `ExoPlayer.AudioComponent` methods are defined by that interface.
  ExoPlayer.AudioOffloadListener | A listener for audio offload events.
  ExoPlayer.Builder | A builder for `ExoPlayer` instances.
  ExoPlayer.DeviceComponent | Deprecated. Use `Player`, as the `ExoPlayer.DeviceComponent` methods are defined by that interface.
  ExoPlayer.TextComponent | Deprecated. Use `Player`, as the `ExoPlayer.TextComponent` methods are defined by that interface.
  ExoPlayer.VideoComponent | Deprecated. Use `ExoPlayer`, as the `ExoPlayer.VideoComponent` methods are defined by that interface.
  ExoplayerCuesDecoder | A `SubtitleDecoder` that decodes subtitle samples of type `MimeTypes.TEXT_EXOPLAYER_CUES`
  ExoPlayerLibraryInfo | Information about the media libraries.
  ExoPlayerTestRunner | Helper class to run an ExoPlayer test.
  ExoPlayerTestRunner.Builder | Builder to set-up an `ExoPlayerTestRunner`.
  ExoTimeoutException | A timeout of an operation on the ExoPlayer playback thread.
  ExoTimeoutException.TimeoutOperation | The operation which produced the timeout error.
  ExoTrackSelection | A `TrackSelection` that can change the individually selected track as a result of calling `ExoTrackSelection.updateSelectedTrack(long, long, long, List, MediaChunkIterator[])` or `ExoTrackSelection.evaluateQueueSize(long, List)`.
  ExoTrackSelection.Definition | Contains of a subset of selected tracks belonging to a `TrackGroup`.
  ExoTrackSelection.Factory | Factory for `ExoTrackSelection` instances.
  Extractor | Extracts media data from a container format.
  Extractor.ReadResult | Result values that can be returned by `Extractor.read(ExtractorInput, PositionHolder)`.
  ExtractorAsserts | Assertion methods for `Extractor`.
  ExtractorAsserts.AssertionConfig | A config for the assertions made (e.g.
  ExtractorAsserts.AssertionConfig.Builder | Builder for `ExtractorAsserts.AssertionConfig` instances.
  ExtractorAsserts.ExtractorFactory | A factory for `Extractor` instances.
  ExtractorAsserts.SimulationConfig | A config of different environments to simulate and extractor behaviours to test.
  ExtractorInput | Provides data to be consumed by an `Extractor`.
  ExtractorOutput | Receives stream level data extracted by an `Extractor`.
  ExtractorsFactory | Factory for arrays of `Extractor` instances.
  ExtractorUtil | Extractor related utility methods.
  FailOnCloseDataSink | A `DataSink` that can simulate caching the bytes being written to it, and then failing to persist them when `FailOnCloseDataSink.close()` is called.
  FailOnCloseDataSink.Factory | Factory to create a `FailOnCloseDataSink`.
  FakeAdaptiveDataSet | Fake data set emulating the data of an adaptive media source.
  FakeAdaptiveDataSet.Factory | Factory for `FakeAdaptiveDataSet`s.
  FakeAdaptiveDataSet.Iterator | `MediaChunkIterator` for the chunks defined by a fake adaptive data set.
  FakeAdaptiveMediaPeriod | Fake `MediaPeriod` that provides tracks from the given `TrackGroupArray`.
  FakeAdaptiveMediaSource | Fake `MediaSource` that provides a given timeline.
  FakeAudioRenderer | A `FakeRenderer` that supports `C.TRACK_TYPE_AUDIO`.
  FakeChunkSource | Fake `ChunkSource` with adaptive media chunks of a given duration.
  FakeChunkSource.Factory | Factory for a `FakeChunkSource`.
  FakeClock | Fake `Clock` implementation that allows to `advance the time` manually to trigger pending timed messages.
  FakeCryptoConfig | Fake `CryptoConfig`.
  FakeDataSet | Collection of `FakeDataSet.FakeData` to be served by a `FakeDataSource`.
  FakeDataSet.FakeData | Container of fake data to be served by a `FakeDataSource`.
  FakeDataSet.FakeData.Segment | A segment of `FakeDataSet.FakeData`.
  FakeDataSource | A fake `DataSource` capable of simulating various scenarios.
  FakeDataSource.Factory | Factory to create a `FakeDataSource`.
  FakeExoMediaDrm | A fake implementation of `ExoMediaDrm` for use in tests.
  FakeExoMediaDrm.Builder | Builder for `FakeExoMediaDrm` instances.
  FakeExoMediaDrm.LicenseServer | An license server implementation to interact with `FakeExoMediaDrm`.
  FakeExtractorInput | A fake `ExtractorInput` capable of simulating various scenarios.
  FakeExtractorInput.Builder | Builder of `FakeExtractorInput` instances.
  FakeExtractorInput.SimulatedIOException | Thrown when simulating an `IOException`.
  FakeExtractorOutput | A fake `ExtractorOutput`.
  FakeMediaChunk | Fake `MediaChunk`.
  FakeMediaChunkIterator | Fake `MediaChunkIterator`.
  FakeMediaClockRenderer | Fake abstract `Renderer` which is also a `MediaClock`.
  FakeMediaPeriod | Fake `MediaPeriod` that provides tracks from the given `TrackGroupArray`.
  FakeMediaPeriod.TrackDataFactory | A factory to create the test data for a particular track.
  FakeMediaSource | Fake `MediaSource` that provides a given timeline.
  FakeMediaSource.InitialTimeline | A forwarding timeline to provide an initial timeline for fake multi window sources.
  FakeMediaSourceFactory | Fake `MediaSourceFactory` that creates a `FakeMediaSource`.
  FakeMetadataEntry | A fake `Metadata.Entry`.
  FakeRenderer | Fake `Renderer` that supports any format with the matching track type.
  FakeSampleStream | Fake `SampleStream` that outputs a given `Format` and any amount of `items`.
  FakeSampleStream.FakeSampleStreamItem | Item to customize a return value of `SampleStream.readData(com.google.android.exoplayer2.FormatHolder, com.google.android.exoplayer2.decoder.DecoderInputBuffer, @com.google.android.exoplayer2.source.SampleStream.ReadFlags int)`.
  FakeShuffleOrder | Fake `ShuffleOrder` which returns a reverse order.
  FakeTimeline | Fake `Timeline` which can be setup to return custom `FakeTimeline.TimelineWindowDefinition`s.
  FakeTimeline.TimelineWindowDefinition | Definition used to define a `FakeTimeline`.
  FakeTrackOutput | A fake `TrackOutput`.
  FakeTrackOutput.Factory | Factory for `FakeTrackOutput` instances.
  FakeTrackSelection | A fake `ExoTrackSelection` that only returns 1 fixed track, and allows querying the number of calls to its methods.
  FakeTrackSelector | A fake `MappingTrackSelector` that returns `FakeTrackSelection`s.
  FakeVideoRenderer | A `FakeRenderer` that supports `C.TRACK_TYPE_VIDEO`.
  FfmpegAudioRenderer | Decodes and renders audio using FFmpeg.
  FfmpegDecoderException | Thrown when an FFmpeg decoder error occurs.
  FfmpegLibrary | Configures and queries the underlying native library.
  FileDataSource | A `DataSource` for reading local files.
  FileDataSource.Factory | `DataSource.Factory` for `FileDataSource` instances.
  FileDataSource.FileDataSourceException | Thrown when a `FileDataSource` encounters an error reading a file.
  FileTypes | Defines common file type constants and helper methods.
  FileTypes.Type | File types.
  FilterableManifest<T> | A manifest that can generate copies of itself including only the streams specified by the given keys.
  FilteringHlsPlaylistParserFactory | A `HlsPlaylistParserFactory` that includes only the streams identified by the given stream keys.
  FilteringManifestParser<T extends FilterableManifest<T>> | A manifest parser that includes only the streams identified by the given stream keys.
  FixedTrackSelection | A `TrackSelection` consisting of a single track.
  FlacConstants | Defines constants used by the FLAC extractor.
  FlacDecoder | Flac decoder.
  FlacDecoderException | Thrown when an Flac decoder error occurs.
  FlacExtractor | Facilitates the extraction of data from the FLAC container format.
  FlacExtractor | Extracts data from FLAC container format.
  FlacExtractor.Flags | Flags controlling the behavior of the extractor.
  FlacExtractor.Flags | Flags controlling the behavior of the extractor.
  FlacFrameReader | Reads and peeks FLAC frame elements according to the FLAC format specification.
  FlacFrameReader.SampleNumberHolder | Holds a sample number.
  FlacLibrary | Configures and queries the underlying native library.
  FlacMetadataReader | Reads and peeks FLAC stream metadata elements according to the FLAC format specification.
  FlacMetadataReader.FlacStreamMetadataHolder | Holds a `FlacStreamMetadata`.
  FlacSeekTableSeekMap | A `SeekMap` implementation for FLAC streams that contain a seek table.
  FlacStreamMetadata | Holder for FLAC metadata.
  FlacStreamMetadata.SeekTable | A FLAC seek table.
  FlagSet | A set of integer flags.
  FlagSet.Builder | A builder for `FlagSet` instances.
  FlvExtractor | Extracts data from the FLV container format.
  Format | Represents a media format.
  Format.Builder | Builds `Format` instances.
  FormatHolder | Holds a `Format`.
  ForwardingAudioSink | An overridable `AudioSink` implementation forwarding all methods to another sink.
  ForwardingExtractorInput | An overridable `ExtractorInput` implementation forwarding all methods to another input.
  ForwardingPlayer | A `Player` that forwards operations to another `Player`.
  ForwardingTimeline | An overridable `Timeline` implementation forwarding all methods to another timeline.
  FragmentedMp4Extractor | Extracts data from the FMP4 container format.
  FragmentedMp4Extractor.Flags | Flags controlling the behavior of the extractor.
  FrameInfo | Value class specifying information about a decoded video frame.
  FrameProcessingException | Thrown when an exception occurs while applying effects to video frames.
  FrameProcessor | Interface for a frame processor that applies changes to individual video frames.
  FrameProcessor.Factory | A factory for `FrameProcessor` instances.
  FrameProcessor.Listener | Listener for asynchronous frame processing events.
  FrameworkCryptoConfig | A `CryptoConfig` for `C.CRYPTO_TYPE_FRAMEWORK`.
  FrameworkMediaDrm | An `ExoMediaDrm` implementation that wraps the framework `MediaDrm`.
  GaplessInfoHolder | Holder for gapless playback information.
  Gav1Decoder | Gav1 decoder.
  Gav1DecoderException | Thrown when a libgav1 decoder error occurs.
  Gav1Library | Configures and queries the underlying native library.
  GeobFrame | GEOB (General Encapsulated Object) ID3 frame.
  GlEffect | Interface for a video frame effect with a `GlTextureProcessor` implementation.
  GlEffectsFrameProcessor | A `FrameProcessor` implementation that applies `GlEffect` instances using OpenGL on a background thread.
  GlEffectsFrameProcessor.Factory | A factory for `GlEffectsFrameProcessor` instances.
  GlMatrixTransformation | Specifies a 4x4 transformation `Matrix` to apply in the vertex shader for each frame.
  GlProgram | Represents a GLSL shader program.
  GlTextureProcessor | Processes frames from one OpenGL 2D texture to another.
  GlTextureProcessor.ErrorListener | Listener for frame processing errors.
  GlTextureProcessor.InputListener | Listener for input-related frame processing events.
  GlTextureProcessor.OutputListener | Listener for output-related frame processing events.
  GlUtil | OpenGL ES utilities.
  GlUtil.GlException | Thrown when an OpenGL error occurs.
  H262Reader | Parses a continuous H262 byte stream and extracts individual frames.
  H263Reader | Parses an ISO/IEC 14496-2 (MPEG-4 Part 2) or ITU-T Recommendation H.263 byte stream and extracts individual frames.
  H264Reader | Parses a continuous H264 byte stream and extracts individual frames.
  H265Reader | Parses a continuous H.265 byte stream and extracts individual frames.
  HandlerWrapper | An interface to call through to a `Handler`.
  HandlerWrapper.Message | A message obtained from the handler.
  HeartRating | A rating expressed as "heart" or "no heart".
  HevcConfig | HEVC configuration data.
  HlsDataSourceFactory | Creates `DataSource`s for HLS playlists, encryption and media chunks.
  HlsDownloader | A downloader for HLS streams.
  HlsExtractorFactory | Factory for HLS media chunk extractors.
  HlsManifest | Holds a multivariant playlist along with a snapshot of one of its media playlists.
  HlsMasterPlaylist | Deprecated. Use `HlsMultivariantPlaylist` instead.
  HlsMediaChunkExtractor | Extracts samples and track `Formats` from `HlsMediaChunks`.
  HlsMediaPeriod | A `MediaPeriod` that loads an HLS stream.
  HlsMediaPlaylist | Represents an HLS media playlist.
  HlsMediaPlaylist.Part | A media part.
  HlsMediaPlaylist.PlaylistType | Type of the playlist, as defined by #EXT-X-PLAYLIST-TYPE.
  HlsMediaPlaylist.RenditionReport | A rendition report for an alternative rendition defined in another media playlist.
  HlsMediaPlaylist.Segment | Media segment reference.
  HlsMediaPlaylist.SegmentBase | The base for a `HlsMediaPlaylist.Segment` or a `HlsMediaPlaylist.Part` required for playback.
  HlsMediaPlaylist.ServerControl | Server control attributes.
  HlsMediaSource | An HLS `MediaSource`.
  HlsMediaSource.Factory | Factory for `HlsMediaSource`s.
  HlsMediaSource.MetadataType | The types of metadata that can be extracted from HLS streams.
  HlsMultivariantPlaylist | Represents an HLS multivariant playlist.
  HlsMultivariantPlaylist.Rendition | A rendition (i.e.
  HlsMultivariantPlaylist.Variant | A variant (i.e.
  HlsPlaylist | Represents an HLS playlist.
  HlsPlaylistParser | HLS playlists parsing logic.
  HlsPlaylistParser.DeltaUpdateException | Exception thrown when merging a delta update fails.
  HlsPlaylistParserFactory | Factory for `HlsPlaylist` parsers.
  HlsPlaylistTracker | Tracks playlists associated to an HLS stream and provides snapshots.
  HlsPlaylistTracker.Factory | Factory for `HlsPlaylistTracker` instances.
  HlsPlaylistTracker.PlaylistEventListener | Called on playlist loading events.
  HlsPlaylistTracker.PlaylistResetException | Thrown when the media sequence of a new snapshot indicates the server has reset.
  HlsPlaylistTracker.PlaylistStuckException | Thrown when a playlist is considered to be stuck due to a server side error.
  HlsPlaylistTracker.PrimaryPlaylistListener | Listener for primary playlist changes.
  HlsTrackMetadataEntry | Holds metadata associated to an HLS media track.
  HlsTrackMetadataEntry.VariantInfo | Holds attributes defined in an EXT-X-STREAM-INF tag.
  HorizontalTextInVerticalContextSpan | A styling span for horizontal text in a vertical context.
  HostActivity | A host activity for performing playback tests.
  HostActivity.HostedTest | Interface for tests that run inside of a `HostActivity`.
  HslAdjustment | Adjusts the HSL (Hue, Saturation, and Lightness) of a frame.
  HslAdjustment.Builder | A builder for `HslAdjustment` instances.
  HttpDataSource | An HTTP `DataSource`.
  HttpDataSource.BaseFactory | Base implementation of `HttpDataSource.Factory` that sets default request properties.
  HttpDataSource.CleartextNotPermittedException | Thrown when cleartext HTTP traffic is not permitted.
  HttpDataSource.Factory | A factory for `HttpDataSource` instances.
  HttpDataSource.HttpDataSourceException | Thrown when an error is encountered when trying to read from a `HttpDataSource`.
  HttpDataSource.HttpDataSourceException.Type | The type of operation that produced the error.
  HttpDataSource.InvalidContentTypeException | Thrown when the content type is invalid.
  HttpDataSource.InvalidResponseCodeException | Thrown when an attempt to open a connection results in a response code not in the 2xx range.
  HttpDataSource.RequestProperties | Stores HTTP request properties (aka HTTP headers) and provides methods to modify the headers in a thread safe way to avoid the potential of creating snapshots of an inconsistent or unintended state.
  HttpDataSourceTestEnv | A JUnit `Rule` that creates test resources for `HttpDataSource` contract tests.
  HttpMediaDrmCallback | A `MediaDrmCallback` that makes requests using `DataSource` instances.
  HttpUtil | Utility methods for HTTP.
  IcyDecoder | Decodes ICY stream information.
  IcyHeaders | ICY headers.
  IcyInfo | ICY in-stream information.
  Id3Decoder | Decodes ID3 tags.
  Id3Decoder.FramePredicate | A predicate for determining whether individual frames should be decoded.
  Id3Frame | Base class for ID3 frames.
  Id3Peeker | Peeks data from the beginning of an `ExtractorInput` to determine if there is any ID3 tag.
  Id3Reader | Parses ID3 data and extracts individual text information frames.
  IllegalSeekPositionException | Thrown when an attempt is made to seek to a position that does not exist in the player's `Timeline`.
  ImaAdsLoader | `AdsLoader` using the IMA SDK.
  ImaAdsLoader.Builder | Builder for `ImaAdsLoader`.
  ImaServerSideAdInsertionMediaSource | MediaSource for IMA server side inserted ad streams.
  ImaServerSideAdInsertionMediaSource.AdsLoader | An ads loader for IMA server side ad insertion streams.
  ImaServerSideAdInsertionMediaSource.AdsLoader.Builder | Builder for building an `ImaServerSideAdInsertionMediaSource.AdsLoader`.
  ImaServerSideAdInsertionMediaSource.AdsLoader.State | The state of the `ImaServerSideAdInsertionMediaSource.AdsLoader` that can be used when resuming from the background.
  ImaServerSideAdInsertionMediaSource.Factory | Factory for creating `ImaServerSideAdInsertionMediaSources`.
  ImaServerSideAdInsertionUriBuilder | Builder for URI for IMA DAI streams.
  IndexSeekMap | A `SeekMap` implementation based on a mapping between times and positions in the input stream.
  InitializationChunk | A `Chunk` that uses an `Extractor` to decode initialization data for single track.
  InputReaderAdapterV30 | `MediaParser.SeekableInputReader` implementation wrapping a `DataReader`.
  InternalFrame | Internal ID3 frame that is intended for use by the player.
  JpegExtractor | Extracts JPEG image using the Exif format.
  KeysExpiredException | Thrown when the drm keys loaded into an open session expire.
  LanguageFeatureSpan | Marker interface for span classes that carry language features rather than style information.
  LatmReader | Parses and extracts samples from an AAC/LATM elementary stream.
  LeanbackPlayerAdapter | Leanback `PlayerAdapter` implementation for `Player`.
  LeastRecentlyUsedCacheEvictor | Evicts least recently used cache files first.
  LegacyMediaPlayerWrapper | A `Player` wrapper for the legacy Android platform `MediaPlayer`.
  LibflacAudioRenderer | Decodes and renders audio using the native Flac decoder.
  Libgav1VideoRenderer | Decodes and renders video using libgav1 decoder.
  LibopusAudioRenderer | Decodes and renders audio using the native Opus decoder.
  LibraryLoader | Configurable loader for native libraries.
  LibvpxVideoRenderer | Decodes and renders video using the native VP9 decoder.
  ListenerSet<T extends @NonNull Object> | A set of listeners.
  ListenerSet.Event<T> | An event sent to a listener.
  ListenerSet.IterationFinishedEvent<T> | An event sent to a listener when all other events sent during one `Looper` message queue iteration were handled by the listener.
  LivePlaybackSpeedControl | Controls the playback speed while playing live content in order to maintain a steady target live offset.
  LoadControl | Controls buffering of media.
  Loader | Manages the background loading of `Loader.Loadable`s.
  Loader.Callback<T extends Loader.Loadable> | A callback to be notified of `Loader` events.
  Loader.Loadable | An object that can be loaded using a `Loader`.
  Loader.LoadErrorAction | Action that can be taken in response to `Loader.Callback.onLoadError(Loadable, long, long, IOException, int)`.
  Loader.ReleaseCallback | A callback to be notified when a `Loader` has finished being released.
  Loader.UnexpectedLoaderException | Thrown when an unexpected exception or error is encountered during loading.
  LoaderErrorThrower | Conditionally throws errors affecting a `Loader`.
  LoaderErrorThrower.Dummy | A `LoaderErrorThrower` that never throws.
  LoadErrorHandlingPolicy | A policy that defines how load errors are handled.
  LoadErrorHandlingPolicy.FallbackOptions | Holds information about the available fallback options.
  LoadErrorHandlingPolicy.FallbackSelection | A selected fallback option.
  LoadErrorHandlingPolicy.FallbackType | Fallback type.
  LoadErrorHandlingPolicy.LoadErrorInfo | Holds information about a load task error.
  LoadEventInfo | `MediaSource` load event information.
  LocalMediaDrmCallback | A `MediaDrmCallback` that provides a fixed response to key requests.
  Log | Wrapper around `Log` which allows to set the log level and to specify a custom log output.
  Log.Logger | Interface for a logger that can output messages with a tag.
  Log.LogLevel | Log level for ExoPlayer logcat logging.
  LongArray | An append-only, auto-growing `long[]`.
  LoopingMediaSource | Deprecated. To loop a `MediaSource` indefinitely, use `Player.setRepeatMode(int)` instead of this class.
  MappingTrackSelector | Base class for `TrackSelector`s that first establish a mapping between `TrackGroup`s and `Renderer`s, and then from that mapping create a `ExoTrackSelection` for each renderer.
  MappingTrackSelector.MappedTrackInfo | Provides mapped track information for each renderer.
  MappingTrackSelector.MappedTrackInfo.RendererSupport | Levels of renderer support.
  MaskingMediaPeriod | Media period that defers calling `MediaSource.createPeriod(MediaPeriodId, Allocator, long)` on a given source until `MaskingMediaPeriod.createPeriod(MediaPeriodId)` has been called.
  MaskingMediaPeriod.PrepareListener | Listener for preparation events.
  MaskingMediaSource | A `MediaSource` that masks the `Timeline` with a placeholder until the actual media structure is known.
  MaskingMediaSource.PlaceholderTimeline | A timeline with one dynamic window with a period of indeterminate duration.
  MatrixTransformation | Specifies a 3x3 transformation `Matrix` to apply in the vertex shader for each frame.
  MatroskaExtractor | Extracts data from the Matroska and WebM container formats.
  MatroskaExtractor.Flags | Flags controlling the behavior of the extractor.
  MatroskaExtractor.Track | Holds data corresponding to a single track.
  MdtaMetadataEntry | Stores extensible metadata with handler type 'mdta'.
  MediaChunk | An abstract base class for `Chunk`s that contain media samples.
  MediaChunkIterator | Iterator for media chunk sequences.
  MediaClock | Tracks the progression of media time.
  MediaCodecAdapter | Abstracts `MediaCodec` operations.
  MediaCodecAdapter.Configuration | Configuration parameters for a `MediaCodecAdapter`.
  MediaCodecAdapter.Factory | A factory for `MediaCodecAdapter` instances.
  MediaCodecAdapter.OnFrameRenderedListener | Listener to be called when an output frame has rendered on the output surface.
  MediaCodecAudioRenderer | Decodes and renders audio using `MediaCodec` and an `AudioSink`.
  MediaCodecDecoderException | Thrown when a failure occurs in a `MediaCodec` decoder.
  MediaCodecInfo | Information about a `MediaCodec` for a given mime type.
  MediaCodecRenderer | An abstract renderer that uses `MediaCodec` to decode samples for rendering.
  MediaCodecRenderer.DecoderInitializationException | Thrown when a failure occurs instantiating a decoder.
  MediaCodecSelector | Selector of `MediaCodec` instances.
  MediaCodecUtil | A utility class for querying the available codecs.
  MediaCodecUtil.DecoderQueryException | Thrown when an error occurs querying the device for its underlying media capabilities.
  MediaCodecVideoDecoderException | Thrown when a failure occurs in a `MediaCodec` video decoder.
  MediaCodecVideoRenderer | Decodes and renders video using `MediaCodec`.
  MediaCodecVideoRenderer.CodecMaxValues |
  MediaDrmCallback | Performs `ExoMediaDrm` key and provisioning requests.
  MediaDrmCallbackException | Thrown when an error occurs while executing a DRM `key` or `provisioning` request.
  MediaFormatUtil | Helper class containing utility methods for managing `MediaFormat` instances.
  MediaItem | Representation of a media item.
  MediaItem.AdsConfiguration | Configuration for playing back linear ads with a media item.
  MediaItem.AdsConfiguration.Builder | Builder for `MediaItem.AdsConfiguration` instances.
  MediaItem.Builder | A builder for `MediaItem` instances.
  MediaItem.ClippingConfiguration | Optionally clips the media item to a custom start and end position.
  MediaItem.ClippingConfiguration.Builder | Builder for `MediaItem.ClippingConfiguration` instances.
  MediaItem.ClippingProperties | Deprecated. Use `MediaItem.ClippingConfiguration` instead.
  MediaItem.DrmConfiguration | DRM configuration for a media item.
  MediaItem.DrmConfiguration.Builder | Builder for `MediaItem.DrmConfiguration`.
  MediaItem.LiveConfiguration | Live playback configuration.
  MediaItem.LiveConfiguration.Builder | Builder for `MediaItem.LiveConfiguration` instances.
  MediaItem.LocalConfiguration | Properties for local playback.
  MediaItem.PlaybackProperties | Deprecated. Use `MediaItem.LocalConfiguration`.
  MediaItem.RequestMetadata | Metadata that helps the player to understand a playback request represented by a `MediaItem`.
  MediaItem.RequestMetadata.Builder | Builder for `MediaItem.RequestMetadata` instances.
  MediaItem.Subtitle | Deprecated. Use `MediaItem.SubtitleConfiguration` instead
  MediaItem.SubtitleConfiguration | Properties for a text track.
  MediaItem.SubtitleConfiguration.Builder | Builder for `MediaItem.SubtitleConfiguration` instances.
  MediaItemConverter | Converts between `MediaItem` and the Cast SDK's `MediaQueueItem`.
  MediaItemConverter | Converts between `Media2 MediaItem` and `ExoPlayer MediaItem`.
  MediaLoadData | Descriptor for data being loaded or selected by a `MediaSource`.
  MediaMetadata | Metadata of a `MediaItem`, playlist, or a combination of multiple sources of `Metadata`.
  MediaMetadata.Builder | A builder for `MediaMetadata` instances.
  MediaMetadata.FolderType | The folder type of the media item.
  MediaMetadata.MediaType | The type of content described by the media item.
  MediaMetadata.PictureType | The picture type of the artwork.
  MediaMetricsListener | An `AnalyticsListener` that interacts with the Android `MediaMetricsManager`.
  MediaParserChunkExtractor | `ChunkExtractor` implemented on top of the platform's `MediaParser`.
  MediaParserExtractorAdapter | `ProgressiveMediaExtractor` implemented on top of the platform's `MediaParser`.
  MediaParserHlsMediaChunkExtractor | `HlsMediaChunkExtractor` implemented on top of the platform's `MediaParser`.
  MediaParserUtil | Miscellaneous constants and utility methods related to the `MediaParser` integration.
  MediaPeriod | Loads media corresponding to a `Timeline.Period`, and allows that media to be read.
  MediaPeriod.Callback | A callback to be notified of `MediaPeriod` events.
  MediaPeriodAsserts | Assertion methods for `MediaPeriod`.
  MediaPeriodAsserts.FilterableManifestMediaPeriodFactory<T extends FilterableManifest<T>> | Interface to create media periods for testing based on a `FilterableManifest`.
  MediaPeriodId | Identifies a specific playback of a `Timeline.Period`.
  MediaSessionConnector | Connects a `MediaSessionCompat` to a `Player`.
  MediaSessionConnector.CaptionCallback | Handles requests for enabling or disabling captions.
  MediaSessionConnector.CommandReceiver | Receiver of media commands sent by a media controller.
  MediaSessionConnector.CustomActionProvider | Provides a `PlaybackStateCompat.CustomAction` to be published and handles the action when sent by a media controller.
  MediaSessionConnector.DefaultMediaMetadataProvider | Provides a default `MediaMetadataCompat` with properties and extras taken from the `MediaDescriptionCompat` of the `MediaSessionCompat.QueueItem` of the active queue item.
  MediaSessionConnector.MediaButtonEventHandler | Handles a media button event.
  MediaSessionConnector.MediaMetadataProvider | Provides a `MediaMetadataCompat` for a given player state.
  MediaSessionConnector.PlaybackActions | Playback actions supported by the connector.
  MediaSessionConnector.PlaybackPreparer | Interface to which playback preparation and play actions are delegated.
  MediaSessionConnector.QueueEditor | Handles media session queue edits.
  MediaSessionConnector.QueueNavigator | Handles queue navigation actions, and updates the media session queue by calling `MediaSessionCompat.setQueue()`.
  MediaSessionConnector.RatingCallback | Callback receiving a user rating for the active media item.
  MediaSource | Defines and provides media to be played by an `ExoPlayer`.
  MediaSource.Factory | Factory for creating `MediaSources` from `MediaItems`.
  MediaSource.MediaPeriodId | Identifier for a `MediaPeriod`.
  MediaSource.MediaSourceCaller | A caller of media sources, which will be notified of source events.
  MediaSourceEventListener | Interface for callbacks to be notified of `MediaSource` events.
  MediaSourceEventListener.EventDispatcher | Dispatches events to `MediaSourceEventListeners`.
  MediaSourceFactory | Deprecated. Use `MediaSource.Factory`.
  MediaSourceTestRunner | A runner for `MediaSource` tests.
  MergingMediaSource | Merges multiple `MediaSource`s.
  MergingMediaSource.IllegalMergeException | Thrown when a `MergingMediaSource` cannot merge its sources.
  MergingMediaSource.IllegalMergeException.Reason | The reason the merge failed.
  Metadata | A collection of metadata entries.
  Metadata.Entry | A metadata entry.
  MetadataDecoder | Decodes metadata from binary data.
  MetadataDecoderFactory | A factory for `MetadataDecoder` instances.
  MetadataInputBuffer | A `DecoderInputBuffer` for a `MetadataDecoder`.
  MetadataOutput | Receives metadata output.
  MetadataRenderer | A renderer for metadata.
  MetadataRetriever | Retrieves the static metadata of `MediaItems`.
  MimeTypes | Defines common MIME types and helper methods.
  MlltFrame | MPEG location lookup table frame.
  MotionPhotoMetadata | Metadata of a motion photo file.
  Mp3Extractor | Extracts data from the MP3 container format.
  Mp3Extractor.Flags | Flags controlling the behavior of the extractor.
  Mp4Extractor | Extracts data from the MP4 container format.
  Mp4Extractor.Flags | Flags controlling the behavior of the extractor.
  Mp4WebvttDecoder | A `SimpleSubtitleDecoder` for Webvtt embedded in a Mp4 container file.
  MpegAudioReader | Parses a continuous MPEG Audio byte stream and extracts individual frames.
  MpegAudioUtil | Utility methods for handling MPEG audio streams.
  MpegAudioUtil.Header | Stores the metadata for an MPEG audio frame.
  Muxer | Abstracts media muxing operations.
  Muxer.Factory | Factory for muxers.
  Muxer.MuxerException | Thrown when a muxing failure occurs.
  NalUnitUtil | Utility methods for handling H.264/AVC and H.265/HEVC NAL units.
  NalUnitUtil.H265SpsData | Holds data parsed from a H.265 sequence parameter set NAL unit.
  NalUnitUtil.PpsData | Holds data parsed from a picture parameter set NAL unit.
  NalUnitUtil.SpsData | Holds data parsed from a H.264 sequence parameter set NAL unit.
  NetworkTypeObserver | Observer for network type changes.
  NetworkTypeObserver.Listener | A listener for network type changes.
  NonNullApi | Annotation to declare all type usages in the annotated instance as `Nonnull`, unless explicitly marked with a nullable annotation.
  NoOpCacheEvictor | Evictor that doesn't ever evict cache files.
  NoSampleRenderer | A `Renderer` implementation whose track type is `C.TRACK_TYPE_NONE` and does not consume data from its `SampleStream`.
  NotificationUtil | Utility methods for displaying `Notifications`.
  NotificationUtil.Importance | Notification channel importance levels.
  OfflineLicenseHelper | Helper class to download, renew and release offline licenses.
  OggExtractor | Extracts data from the Ogg container format.
  OkHttpDataSource | An `HttpDataSource` that delegates to Square's `Call.Factory`.
  OkHttpDataSource.Factory | `DataSource.Factory` for `OkHttpDataSource` instances.
  OkHttpDataSourceFactory | Deprecated. Use `OkHttpDataSource.Factory` instead.
  OpusDecoder | Opus decoder.
  OpusDecoderException | Thrown when an Opus decoder error occurs.
  OpusLibrary | Configures and queries the underlying native library.
  OpusUtil | Utility methods for handling Opus audio streams.
  OutputConsumerAdapterV30 | `MediaParser.OutputConsumer` implementation that redirects output to an `ExtractorOutput`.
  ParsableBitArray | Wraps a byte array, providing methods that allow it to be read as a bitstream.
  ParsableByteArray | Wraps a byte array, providing a set of methods for parsing data from it.
  ParsableNalUnitBitArray | Wraps a byte array, providing methods that allow it to be read as a NAL unit bitstream.
  ParserException | Thrown when an error occurs parsing media data and metadata.
  ParsingLoadable<T> | A `Loader.Loadable` for objects that can be parsed from binary data using a `ParsingLoadable.Parser`.
  ParsingLoadable.Parser<T> | Parses an object from loaded data.
  PassthroughSectionPayloadReader | A `SectionPayloadReader` that directly outputs the section bytes as sample data.
  PercentageRating | A rating expressed as a percentage.
  Period | Encapsulates media content components over a contiguous period of time.
  PesReader | Parses PES packet data and extracts samples.
  PgsDecoder | A `SimpleSubtitleDecoder` for PGS subtitles.
  PictureFrame | A picture parsed from a Vorbis Comment or a FLAC picture block.
  PlaceholderDataSource | A DataSource which provides no data.
  PlaceholderSurface | A placeholder `Surface`.
  PlatformScheduler | A `Scheduler` that uses `JobScheduler`.
  PlatformScheduler.PlatformSchedulerService | A `JobService` that starts the target service if the requirements are met.
  PlaybackException | Thrown when a non locally recoverable playback failure occurs.
  PlaybackException.ErrorCode | Codes that identify causes of player errors.
  PlaybackOutput | Class to capture output from a playback test.
  PlaybackParameters | Parameters that apply to playback, including speed setting.
  PlaybackSessionManager | Manager for active playback sessions.
  PlaybackSessionManager.Listener | A listener for session updates.
  PlaybackStats | Statistics about playbacks.
  PlaybackStats.EventTimeAndException | Stores an exception with the event time at which it occurred.
  PlaybackStats.EventTimeAndFormat | Stores a format with the event time at which it started being used, or `null` to indicate that no format was used.
  PlaybackStats.EventTimeAndPlaybackState | Stores a playback state with the event time at which it became active.
  PlaybackStatsListener | `AnalyticsListener` to gather `PlaybackStats` from the player.
  PlaybackStatsListener.Callback | A listener for `PlaybackStats` updates.
  Player | A media player interface defining traditional high-level functionality, such as the ability to play, pause, seek and query properties of the currently playing media.
  Player.Command | Commands that indicate which method calls are currently permitted on a particular `Player` instance.
  Player.Commands | A set of commands.
  Player.Commands.Builder | A builder for `Player.Commands` instances.
  Player.DiscontinuityReason | Reasons for position discontinuities.
  Player.Event | Events that can be reported via `Player.Listener.onEvents(Player, Events)`.
  Player.Events | A set of events.
  Player.Listener | Listener for changes in a `Player`.
  Player.MediaItemTransitionReason | Reasons for media item transitions.
  Player.PlaybackSuppressionReason | Reason why playback is suppressed even though `Player.getPlayWhenReady()` is `true`.
  Player.PlayWhenReadyChangeReason | Reasons for `playWhenReady` changes.
  Player.PositionInfo | Position info describing a playback position involved in a discontinuity.
  Player.RepeatMode | Repeat modes for playback.
  Player.State | Playback state.
  Player.TimelineChangeReason | Reasons for timeline changes.
  PlayerControlView | A view for controlling `Player` instances.
  PlayerControlView.ProgressUpdateListener | Listener to be notified when progress has been updated.
  PlayerControlView.VisibilityListener | Listener to be notified about changes of the visibility of the UI control.
  PlayerEmsgHandler | Handles all emsg messages from all media tracks for the player.
  PlayerEmsgHandler.PlayerEmsgCallback | Callbacks for player emsg events encountered during DASH live stream.
  PlayerId | Identifier for a player instance.
  PlayerMessage | Defines a player message which can be sent with a `PlayerMessage.Sender` and received by a `PlayerMessage.Target`.
  PlayerMessage.Sender | A sender for messages.
  PlayerMessage.Target | A target for messages.
  PlayerNotificationManager | Starts, updates and cancels a media style notification reflecting the player state.
  PlayerNotificationManager.Builder | A builder for `PlayerNotificationManager` instances.
  PlayerNotificationManager.CustomActionReceiver | Defines and handles custom actions.
  PlayerNotificationManager.MediaDescriptionAdapter | An adapter to provide content assets of the media currently playing.
  PlayerNotificationManager.NotificationListener | A listener for changes to the notification.
  PlayerNotificationManager.Priority | Priority of the notification (required for API 25 and lower).
  PlayerNotificationManager.Visibility | Visibility of notification on the lock screen.
  PlayerView | Deprecated. Use `StyledPlayerView` instead.
  PlayerView.ShowBuffering | Determines when the buffering view is shown.
  PositionHolder | Holds a position in the stream.
  Presentation | Controls how a frame is presented with options to set the output resolution and choose how to map the input pixels onto the output frame geometry (for example, by stretching the input frame to match the specified output frame, or fitting the input frame using letterboxing).
  Presentation.Layout | Strategies controlling the layout of input pixels in the output frame.
  PriorityDataSource | A `DataSource` that can be used as part of a task registered with a `PriorityTaskManager`.
  PriorityDataSource.Factory | `DataSource.Factory` for `PriorityDataSource` instances.
  PriorityDataSourceFactory | Deprecated. Use `PriorityDataSource.Factory`.
  PriorityTaskManager | Allows tasks with associated priorities to control how they proceed relative to one another.
  PriorityTaskManager.PriorityTooLowException | Thrown when task attempts to proceed when another registered task has a higher priority.
  PrivateCommand | Represents a private command as defined in SCTE35, Section 9.3.6.
  PrivFrame | PRIV (Private) ID3 frame.
  ProgramInformation | A parsed program information element.
  ProgressHolder | Holds a progress percentage.
  ProgressiveDownloader | A downloader for progressive media streams.
  ProgressiveMediaExtractor | Extracts the contents of a container file from a progressive media stream.
  ProgressiveMediaExtractor.Factory | Creates `ProgressiveMediaExtractor` instances.
  ProgressiveMediaSource | Provides one period that loads data from a `Uri` and extracted using an `Extractor`.
  ProgressiveMediaSource.Factory | Factory for `ProgressiveMediaSource`s.
  PsExtractor | Extracts data from the MPEG-2 PS container format.
  PsshAtomUtil | Utility methods for handling PSSH atoms.
  RandomizedMp3Decoder | Generates randomized, but correct amount of data on MP3 audio input.
  RandomTrackSelection | An `ExoTrackSelection` whose selected track is updated randomly.
  RandomTrackSelection.Factory | Factory for `RandomTrackSelection` instances.
  RangedUri | Defines a range of data located at a reference uri.
  Rating | A rating for media content.
  RawResourceDataSource | A `DataSource` for reading a raw resource inside the APK.
  RawResourceDataSource.RawResourceDataSourceException | Thrown when an `IOException` is encountered reading from a raw resource.
  Renderer | Renders media read from a `SampleStream`.
  Renderer.MessageType | Represents a type of message that can be passed to a renderer.
  Renderer.State | The renderer states.
  Renderer.WakeupListener | Some renderers can signal when `Renderer.render(long, long)` should be called.
  RendererCapabilities | Defines the capabilities of a `Renderer`.
  RendererCapabilities.AdaptiveSupport | Level of renderer support for adaptive format switches.
  RendererCapabilities.Capabilities | Combined renderer capabilities.
  RendererCapabilities.DecoderSupport | Level of decoder support.
  RendererCapabilities.FormatSupport | Deprecated. Use `C.FormatSupport` instead.
  RendererCapabilities.HardwareAccelerationSupport | Level of renderer support for hardware acceleration.
  RendererCapabilities.TunnelingSupport | Level of renderer support for tunneling.
  RendererConfiguration | The configuration of a `Renderer`.
  RenderersFactory | Builds `Renderer` instances for use by an `ExoPlayer`.
  RepeatModeActionProvider | Provides a custom action for toggling repeat modes.
  RepeatModeUtil | Util class for repeat mode handling.
  RepeatModeUtil.RepeatToggleModes | Set of repeat toggle modes.
  Representation | A DASH representation.
  Representation.MultiSegmentRepresentation | A DASH representation consisting of multiple segments.
  Representation.SingleSegmentRepresentation | A DASH representation consisting of a single segment.
  Requirements | Defines a set of device state requirements.
  Requirements.RequirementFlags | Requirement flags.
  RequirementsWatcher | Watches whether the `Requirements` are met and notifies the `RequirementsWatcher.Listener` on changes.
  RequirementsWatcher.Listener | Notified when RequirementsWatcher instance first created and on changes whether the `Requirements` are met.
  ResolvingDataSource | `DataSource` wrapper allowing just-in-time resolution of `DataSpecs`.
  ResolvingDataSource.Factory | `DataSource.Factory` for `ResolvingDataSource` instances.
  ResolvingDataSource.Resolver | Resolves `DataSpecs`.
  RgbAdjustment | Scales the red, green, and blue color channels of a frame.
  RgbAdjustment.Builder | A builder for `RgbAdjustment` instances.
  RgbFilter | Provides common color filters.
  RgbMatrix | Specifies a 4x4 RGB color transformation matrix to apply to each frame in the fragment shader.
  RobolectricUtil | Utility methods for Robolectric-based tests.
  RtmpDataSource | A Real-Time Messaging Protocol (RTMP) `DataSource`.
  RtmpDataSource.Factory | `DataSource.Factory` for `RtmpDataSource` instances.
  RtmpDataSourceFactory | Deprecated. Use `RtmpDataSource.Factory` instead.
  RtpAc3Reader | Parses an AC3 byte stream carried on RTP packets, and extracts AC3 frames.
  RtpPacket | Represents the header and the payload of an RTP packet.
  RtpPacket.Builder | Builder class for an `RtpPacket`
  RtpPayloadFormat | Represents the payload format used in RTP.
  RtpPayloadReader | Extracts media samples from the payload of received RTP packets.
  RtpPayloadReader.Factory | Factory of `RtpPayloadReader` instances.
  RtpPcmReader | Parses byte stream carried on RTP packets, and extracts PCM frames.
  RtpUtils | Utility methods for RTP.
  RtspMediaSource | An Rtsp `MediaSource`
  RtspMediaSource.Factory | Factory for `RtspMediaSource`
  RtspMediaSource.RtspPlaybackException | Thrown when an exception or error is encountered during loading an RTSP stream.
  RubySpan | A styling span for ruby text.
  RunnableFutureTask<R,​E extends Exception> | A `RunnableFuture` that supports additional uninterruptible operations to query whether execution has started and finished.
  SampleQueue | A queue of media samples.
  SampleQueue.UpstreamFormatChangedListener | A listener for changes to the upstream format.
  SampleQueueMappingException | Thrown when it is not possible to map a `TrackGroup` to a `SampleQueue`.
  SampleStream | A stream of media samples (and associated format information).
  SampleStream.ReadDataResult | Return values of `SampleStream.readData(com.google.android.exoplayer2.FormatHolder, com.google.android.exoplayer2.decoder.DecoderInputBuffer, @com.google.android.exoplayer2.source.SampleStream.ReadFlags int)`.
  SampleStream.ReadFlags | Flags that can be specified when calling `SampleStream.readData(com.google.android.exoplayer2.FormatHolder, com.google.android.exoplayer2.decoder.DecoderInputBuffer, @com.google.android.exoplayer2.source.SampleStream.ReadFlags int)`.
  ScaleToFitTransformation | Specifies a simple rotation and/or scale to apply in the vertex shader.
  ScaleToFitTransformation.Builder | A builder for `ScaleToFitTransformation` instances.
  Scheduler | Schedules a service to be started in the foreground when some `Requirements` are met.
  SectionPayloadReader | Reads section data.
  SectionReader | Reads section data packets and feeds the whole sections to a given `SectionPayloadReader`.
  SeekMap | Maps seek positions (in microseconds) to corresponding positions (byte offsets) in the stream.
  SeekMap.SeekPoints | Contains one or two `SeekPoint`s.
  SeekMap.Unseekable | A `SeekMap` that does not support seeking.
  SeekParameters | Parameters that apply to seeking.
  SeekPoint | Defines a seek point in a media stream.
  SegmentBase | An approximate representation of a SegmentBase manifest element.
  SegmentBase.MultiSegmentBase | A `SegmentBase` that consists of multiple segments.
  SegmentBase.SegmentList | A `SegmentBase.MultiSegmentBase` that uses a SegmentList to define its segments.
  SegmentBase.SegmentTemplate | A `SegmentBase.MultiSegmentBase` that uses a SegmentTemplate to define its segments.
  SegmentBase.SegmentTimelineElement | Represents a timeline segment from the MPD's SegmentTimeline list.
  SegmentBase.SingleSegmentBase | A `SegmentBase` that defines a single segment.
  SegmentDownloader<M extends FilterableManifest<M>> | Base class for multi segment stream downloaders.
  SegmentDownloader.Segment | Smallest unit of content to be downloaded.
  SeiReader | Consumes SEI buffers, outputting contained CEA-608/708 messages to a `TrackOutput`.
  SequenceableLoader | A loader that can proceed in approximate synchronization with other loaders.
  SequenceableLoader.Callback<T extends SequenceableLoader> | A callback to be notified of `SequenceableLoader` events.
  ServerSideAdInsertionMediaSource | A `MediaSource` for server-side inserted ad breaks.
  ServerSideAdInsertionMediaSource.AdPlaybackStateUpdater | Receives ad playback state update requests when the `Timeline` of the content media source has changed.
  ServerSideAdInsertionUtil | A static utility class with methods to work with server-side inserted ads.
  ServiceDescriptionElement | Represents a service description element.
  SessionAvailabilityListener | Listener of changes in the cast session availability.
  SessionCallbackBuilder | Builds a `MediaSession.SessionCallback` with various collaborators.
  SessionCallbackBuilder.AllowedCommandProvider | Provides allowed commands for `MediaController`.
  SessionCallbackBuilder.CustomCommandProvider | Callbacks for querying what custom commands are supported, and for handling a custom command when a controller sends it.
  SessionCallbackBuilder.DefaultAllowedCommandProvider | Default implementation of `SessionCallbackBuilder.AllowedCommandProvider` that behaves as follows: Accepts connection requests from controller if any of the following conditions are met: Controller is in the same package as the session.
  SessionCallbackBuilder.DisconnectedCallback | Callback for handling controller disconnection.
  SessionCallbackBuilder.MediaIdMediaItemProvider | A `SessionCallbackBuilder.MediaItemProvider` that creates media items containing only a media ID.
  SessionCallbackBuilder.MediaItemProvider | Provides the `MediaItem`.
  SessionCallbackBuilder.PostConnectCallback | Callback for handling extra initialization after the connection.
  SessionCallbackBuilder.RatingCallback | Callback receiving a user rating for a specified media id.
  SessionCallbackBuilder.SkipCallback | Callback receiving skip backward and skip forward.
  SessionPlayerConnector | An implementation of `SessionPlayer` that wraps a given ExoPlayer `Player` instance.
  ShadowMediaCodecConfig | A JUnit @Rule to configure Roboelectric's `ShadowMediaCodec`.
  ShuffleOrder | Shuffled order of indices.
  ShuffleOrder.DefaultShuffleOrder | The default `ShuffleOrder` implementation for random shuffle order.
  ShuffleOrder.UnshuffledShuffleOrder | A `ShuffleOrder` implementation which does not shuffle.
  SilenceMediaSource | Media source with a single period consisting of silent raw audio of a given duration.
  SilenceMediaSource.Factory | Factory for `SilenceMediaSources`.
  SilenceSkippingAudioProcessor | An `AudioProcessor` that skips silence in the input stream.
  SimpleBasePlayer | A base implementation for `Player` that reduces the number of methods to implement to a minimum.
  SimpleBasePlayer.MediaItemData | An immutable description of an item in the playlist, containing both static setup information like `MediaItem` and dynamic data that is generally read from the media like the duration.
  SimpleBasePlayer.MediaItemData.Builder | A builder for `SimpleBasePlayer.MediaItemData` objects.
  SimpleBasePlayer.PeriodData | Data describing the properties of a period inside a `SimpleBasePlayer.MediaItemData`.
  SimpleBasePlayer.PeriodData.Builder | A builder for `SimpleBasePlayer.PeriodData` objects.
  SimpleBasePlayer.PositionSupplier | A supplier for a position.
  SimpleBasePlayer.State | An immutable state description of the player.
  SimpleBasePlayer.State.Builder | A builder for `SimpleBasePlayer.State` objects.
  SimpleCache | A `Cache` implementation that maintains an in-memory representation.
  SimpleDecoder<I extends DecoderInputBuffer,​O extends DecoderOutputBuffer,​E extends DecoderException> | Base class for `Decoder`s that use their own decode thread and decode each input buffer immediately into a corresponding output buffer.
  SimpleDecoderOutputBuffer | Buffer for `SimpleDecoder` output.
  SimpleExoPlayer | Deprecated. Use `ExoPlayer` instead.
  SimpleExoPlayer.Builder | Deprecated. Use `ExoPlayer.Builder` instead.
  SimpleMetadataDecoder | A `MetadataDecoder` base class that validates input buffers and discards any for which `Buffer.isDecodeOnly()` is `true`.
  SimpleSubtitleDecoder | Base class for subtitle parsers that use their own decode thread.
  SingleColorLut | Transforms the colors of a frame by applying the same color lookup table to each frame.
  SingleFrameGlTextureProcessor | Manages a GLSL shader program for processing a frame.
  SinglePeriodAdTimeline | A `Timeline` for sources that have ads.
  SinglePeriodTimeline | A `Timeline` consisting of a single period and static window.
  SingleSampleMediaChunk | A `BaseMediaChunk` for chunks consisting of a single raw sample.
  SingleSampleMediaSource | Loads data at a given `Uri` as a single sample belonging to a single `MediaPeriod`.
  SingleSampleMediaSource.Factory | Factory for `SingleSampleMediaSource`.
  Size | Immutable class for describing width and height dimensions in pixels.
  SlidingPercentile | Calculate any percentile over a sliding window of weighted values.
  SlowMotionData | Holds information about the segments of slow motion playback within a track.
  SlowMotionData.Segment | Holds information about a single segment of slow motion playback within a track.
  SmtaMetadataEntry | Stores metadata from the Samsung smta box.
  SntpClient | Static utility to retrieve the device time offset using SNTP.
  SntpClient.InitializationCallback | Callback for calls to `SntpClient.initialize(Loader, InitializationCallback)`.
  SonicAudioProcessor | An `AudioProcessor` that uses the Sonic library to modify audio speed/pitch/sample rate.
  SpannedSubject | A Truth `Subject` for assertions on `Spanned` instances containing text styling.
  SpannedSubject.AbsoluteSized | Allows assertions about the absolute size of a span.
  SpannedSubject.Aligned | Allows assertions about the alignment of a span.
  SpannedSubject.AndSpanFlags | Allows additional assertions to be made on the flags of matching spans.
  SpannedSubject.Colored | Allows assertions about the color of a span.
  SpannedSubject.EmphasizedText | Allows assertions about a span's text emphasis mark and its position.
  SpannedSubject.RelativeSized | Allows assertions about the relative size of a span.
  SpannedSubject.RubyText | Allows assertions about a span's ruby text and its position.
  SpannedSubject.Typefaced | Allows assertions about the typeface of a span.
  SpannedSubject.WithSpanFlags | Allows additional assertions to be made on the flags of matching spans.
  SpanUtil | Utility methods for Android span styling.
  SphericalGLSurfaceView | Renders a GL scene in a non-VR Activity that is affected by phone orientation and touch input.
  SphericalGLSurfaceView.VideoSurfaceListener | Listener for the `Surface` to which video frames should be rendered.
  SpliceCommand | Superclass for SCTE35 splice commands.
  SpliceInfoDecoder | Decodes splice info sections and produces splice commands.
  SpliceInsertCommand | Represents a splice insert command defined in SCTE35, Section 9.3.3.
  SpliceInsertCommand.ComponentSplice | Holds splicing information for specific splice insert command components.
  SpliceNullCommand | Represents a splice null command as defined in SCTE35, Section 9.3.1.
  SpliceScheduleCommand | Represents a splice schedule command as defined in SCTE35, Section 9.3.2.
  SpliceScheduleCommand.ComponentSplice | Holds splicing information for specific splice schedule command components.
  SpliceScheduleCommand.Event | Represents a splice event as contained in a `SpliceScheduleCommand`.
  SsaDecoder | A `SimpleSubtitleDecoder` for SSA/ASS.
  SsChunkSource | A `ChunkSource` for SmoothStreaming.
  SsChunkSource.Factory | Factory for `SsChunkSource`s.
  SsDownloader | A downloader for SmoothStreaming streams.
  SsManifest | Represents a SmoothStreaming manifest.
  SsManifest.ProtectionElement | Represents a protection element containing a single header.
  SsManifest.StreamElement | Represents a StreamIndex element.
  SsManifestParser | Parses SmoothStreaming client manifests.
  SsManifestParser.MissingFieldException | Thrown if a required field is missing.
  SsMediaSource | A SmoothStreaming `MediaSource`.
  SsMediaSource.Factory | Factory for `SsMediaSource`.
  StandaloneDatabaseProvider | An `SQLiteOpenHelper` that provides instances of a standalone database.
  StandaloneMediaClock | A `MediaClock` whose position advances with real time based on the playback parameters when started.
  StarRating | A rating expressed as a fractional number of stars.
  StartOffsetExtractorOutput | An extractor output that wraps another extractor output and applies a give start byte offset to seek positions.
  StatsDataSource | `DataSource` wrapper which keeps track of bytes transferred, redirected uris, and response headers.
  StreamKey | A key for a subset of media that can be separately loaded (a "stream").
  StubExoPlayer | An abstract `ExoPlayer` implementation that throws `UnsupportedOperationException` from every method.
  StubPlayer | An abstract `Player` implementation that throws `UnsupportedOperationException` from every method.
  StyledPlayerControlView | A view for controlling `Player` instances.
  StyledPlayerControlView.OnFullScreenModeChangedListener | Deprecated. Register a `StyledPlayerView.FullscreenButtonClickListener` via `StyledPlayerView.setFullscreenButtonClickListener(StyledPlayerView.FullscreenButtonClickListener)` instead.
  StyledPlayerControlView.ProgressUpdateListener | Listener to be notified when progress has been updated.
  StyledPlayerControlView.VisibilityListener | Deprecated. Register a `StyledPlayerView.ControllerVisibilityListener` via `StyledPlayerView.setControllerVisibilityListener(StyledPlayerView.ControllerVisibilityListener)` instead.
  StyledPlayerView | A high level view for `Player` media playbacks.
  StyledPlayerView.ControllerVisibilityListener | Listener to be notified about changes of the visibility of the UI controls.
  StyledPlayerView.FullscreenButtonClickListener | Listener invoked when the fullscreen button is clicked.
  StyledPlayerView.ShowBuffering | Determines when the buffering view is shown.
  SubripDecoder | A `SimpleSubtitleDecoder` for SubRip.
  Subtitle | A subtitle consisting of timed `Cue`s.
  SubtitleDecoder | Decodes `Subtitle`s from `SubtitleInputBuffer`s.
  SubtitleDecoderException | Thrown when an error occurs decoding subtitle data.
  SubtitleDecoderFactory | A factory for `SubtitleDecoder` instances.
  SubtitleExtractor | Generic extractor for extracting subtitles from various subtitle formats.
  SubtitleInputBuffer | A `DecoderInputBuffer` for a `SubtitleDecoder`.
  SubtitleOutputBuffer | Base class for `SubtitleDecoder` output buffers.
  SubtitleView | A view for displaying subtitle `Cue`s.
  SubtitleView.ViewType | The type of `View` to use to display subtitles.
  SurfaceInfo | Immutable value class for a `Surface` and supporting information.
  SynchronousMediaCodecAdapter | A `MediaCodecAdapter` that operates the underlying `MediaCodec` in synchronous mode.
  SynchronousMediaCodecAdapter.Factory | A factory for `SynchronousMediaCodecAdapter` instances.
  SystemClock | The standard implementation of `Clock`, an instance of which is available via `Clock.DEFAULT`.
  TeeAudioProcessor | Audio processor that outputs its input unmodified and also outputs its input to a given sink.
  TeeAudioProcessor.AudioBufferSink | A sink for audio buffers handled by the audio processor.
  TeeAudioProcessor.WavFileAudioBufferSink | A sink for audio buffers that writes output audio as .wav files with a given path prefix.
  TeeDataSource | Tees data into a `DataSink` as the data is read.
  TestDownloadManagerListener | Allows tests to block for, and assert properties of, calls from a `DownloadManager` to its `DownloadManager.Listener`.
  TestExoPlayerBuilder | A builder of `ExoPlayer` instances for testing.
  TestPlayerRunHelper | Helper methods to block the calling thread until the provided `ExoPlayer` instance reaches a particular state.
  TestUtil | Utility methods for tests.
  TextAnnotation | Properties of a text annotation (i.e.
  TextAnnotation.Position | The possible positions of the annotation text relative to the base text.
  TextEmphasisSpan | A styling span for text emphasis marks.
  TextEmphasisSpan.MarkFill | The possible mark fills that can be used.
  TextEmphasisSpan.MarkShape | The possible mark shapes that can be used.
  TextInformationFrame | Text information ID3 frame.
  TextOutput | Receives text output.
  TextRenderer | A renderer for text.
  TextureInfo | Contains information describing an OpenGL texture.
  ThumbRating | A rating expressed as "thumbs up" or "thumbs down".
  TimeBar | Interface for time bar views that can display a playback position, buffered position, duration and ad markers, and that have a listener for scrubbing (seeking) events.
  TimeBar.OnScrubListener | Listener for scrubbing events.
  TimedValueQueue<V> | A utility class to keep a queue of values with timestamps.
  Timeline | A flexible representation of the structure of media.
  Timeline.Period | Holds information about a period in a `Timeline`.
  Timeline.RemotableTimeline | A concrete class of `Timeline` to restore a `Timeline` instance from a `Bundle` sent by another process via `IBinder`.
  Timeline.Window | Holds information about a window in a `Timeline`.
  TimelineAsserts | Assertion methods for `Timeline`.
  TimelineQueueEditor | A `MediaSessionConnector.QueueEditor` implementation.
  TimelineQueueEditor.MediaDescriptionConverter | Converts a `MediaDescriptionCompat` to a `MediaItem`.
  TimelineQueueEditor.MediaIdEqualityChecker | Media description comparator comparing the media IDs.
  TimelineQueueEditor.QueueDataAdapter | Adapter to get `MediaDescriptionCompat` of items in the queue and to notify the application about changes in the queue to sync the data structure backing the `MediaSessionConnector`.
  TimelineQueueNavigator | An abstract implementation of the `MediaSessionConnector.QueueNavigator` that maps the windows of a `Player`'s `Timeline` to the media session queue.
  TimeSignalCommand | Represents a time signal command as defined in SCTE35, Section 9.3.4.
  TimestampAdjuster | Adjusts and offsets sample timestamps.
  TimestampAdjusterProvider | Provides `TimestampAdjuster` instances for use during HLS playbacks.
  TimeToFirstByteEstimator | Provides an estimate of the time to first byte of a transfer.
  TraceUtil | Calls through to `Trace` methods on supported API levels.
  Track | Encapsulates information describing an MP4 track.
  Track.Transformation | The transformation to apply to samples in the track, if any.
  TrackEncryptionBox | Encapsulates information parsed from a track encryption (tenc) box or sample group description (sgpd) box in an MP4 stream.
  TrackGroup | An immutable group of tracks available within a media stream.
  TrackGroupArray | An immutable array of `TrackGroup`s.
  TrackNameProvider | Converts `Format`s to user readable track names.
  TrackOutput | Receives track level data extracted by an `Extractor`.
  TrackOutput.CryptoData | Holds data required to decrypt a sample.
  TrackOutput.SampleDataPart | Defines the part of the sample data to which a call to `TrackOutput.sampleData(com.google.android.exoplayer2.upstream.DataReader, int, boolean)` corresponds.
  Tracks | Information about groups of tracks.
  Tracks.Group | Information about a single group of tracks, including the underlying `TrackGroup`, the level to which each track is supported by the player, and whether any of the tracks are selected.
  TrackSelection | A track selection consisting of a static subset of selected tracks belonging to a `TrackGroup`.
  TrackSelection.Type | Represents a type track selection.
  TrackSelectionArray | An array of `TrackSelection`s.
  TrackSelectionDialogBuilder | Builder for a dialog with a `TrackSelectionView`.
  TrackSelectionDialogBuilder.DialogCallback | Callback which is invoked when a track selection has been made.
  TrackSelectionOverride | A track selection override, consisting of a `TrackGroup` and the indices of the tracks within the group that should be selected.
  TrackSelectionParameters | Parameters for controlling track selection.
  TrackSelectionParameters.Builder | A builder for `TrackSelectionParameters`.
  TrackSelectionUtil | Track selection related utility methods.
  TrackSelectionUtil.AdaptiveTrackSelectionFactory | Functional interface to create a single adaptive track selection.
  TrackSelectionView | A view for making track selections.
  TrackSelectionView.TrackSelectionListener | Listener for changes to the selected tracks.
  TrackSelector | The component of an `ExoPlayer` responsible for selecting tracks to be consumed by each of the player's `Renderer`s.
  TrackSelector.InvalidationListener | Notified when selections previously made by a `TrackSelector` are no longer valid.
  TrackSelectorResult | The result of a `TrackSelector` operation.
  TransferListener | A listener of data transfer events.
  TransformationException | Thrown when a non-locally recoverable transformation failure occurs.
  TransformationException.ErrorCode | Codes that identify causes of `Transformer` errors.
  TransformationRequest | A media transformation request.
  TransformationRequest.Builder | A builder for `TransformationRequest` instances.
  TransformationResult | Information about the result of a successful transformation.
  TransformationResult.Builder | A builder for `TransformationResult` instances.
  Transformer | A transformer to transform media inputs.
  Transformer.Builder | A builder for `Transformer` instances.
  Transformer.Listener | A listener for the transformation events.
  Transformer.ProgressState | Progress state.
  TrueHdSampleRechunker | Rechunks TrueHD sample data into groups of `Ac3Util.TRUEHD_RECHUNK_SAMPLE_COUNT` samples.
  TsExtractor | Extracts data from the MPEG-2 TS container format.
  TsExtractor.Mode | Modes for the extractor.
  TsPayloadReader | Parses TS packet payload data.
  TsPayloadReader.DvbSubtitleInfo | Holds information about a DVB subtitle, as defined in ETSI EN 300 468 V1.11.1 section 6.2.41.
  TsPayloadReader.EsInfo | Holds information associated with a PMT entry.
  TsPayloadReader.Factory | Factory of `TsPayloadReader` instances.
  TsPayloadReader.Flags | Contextual flags indicating the presence of indicators in the TS packet or PES packet headers.
  TsPayloadReader.TrackIdGenerator | Generates track ids for initializing `TsPayloadReader`s' `TrackOutput`s.
  TsUtil | Utilities method for extracting MPEG-TS streams.
  TtmlDecoder | A `SimpleSubtitleDecoder` for TTML supporting the DFXP presentation profile.
  Tx3gDecoder | A `SimpleSubtitleDecoder` for tx3g.
  UdpDataSource | A UDP `DataSource`.
  UdpDataSource.UdpDataSourceException | Thrown when an error is encountered when trying to read from a `UdpDataSource`.
  UnknownNull | Annotation for specifying unknown nullness.
  UnrecognizedInputFormatException | Thrown if the input format was not recognized.
  UnsupportedDrmException | Thrown when the requested DRM scheme is not supported.
  UnsupportedDrmException.Reason | The reason for the exception.
  UriUtil | Utility methods for manipulating URIs.
  UrlLinkFrame | Url link ID3 frame.
  UrlTemplate | A template from which URLs can be built.
  UtcTimingElement | Represents a UTCTiming element.
  Util | Miscellaneous utility methods.
  VersionTable | Utility methods for accessing versions of media library database components.
  VideoDecoderGLSurfaceView | GLSurfaceView implementing `VideoDecoderOutputBufferRenderer` for rendering `VideoDecoderOutputBuffers`.
  VideoDecoderOutputBuffer | Video decoder output buffer containing video frame data.
  VideoDecoderOutputBufferRenderer | Renders the `VideoDecoderOutputBuffer`.
  VideoEncoderSettings | Represents the video encoder settings.
  VideoEncoderSettings.BitrateMode | The allowed values for `bitrateMode`.
  VideoEncoderSettings.Builder | Builds `VideoEncoderSettings` instances.
  VideoFrameMetadataListener | A listener for metadata corresponding to video frames being rendered.
  VideoFrameReleaseHelper | Helps a video `Renderer` release frames to a `Surface`.
  VideoRendererEventListener | Listener of video `Renderer` events.
  VideoRendererEventListener.EventDispatcher | Dispatches events to a `VideoRendererEventListener`.
  VideoSize | Represents the video size.
  VorbisBitArray | Wraps a byte array, providing methods that allow it to be read as a Vorbis bitstream.
  VorbisComment | Deprecated. Use `VorbisComment` instead.
  VorbisComment | A vorbis comment, extracted from a FLAC or Ogg file.
  VorbisUtil | Utility methods for parsing Vorbis streams.
  VorbisUtil.CommentHeader | Vorbis comment header.
  VorbisUtil.Mode | Vorbis setup header modes.
  VorbisUtil.VorbisIdHeader | Vorbis identification header.
  VpxDecoder | Vpx decoder.
  VpxDecoderException | Thrown when a libvpx decoder error occurs.
  VpxLibrary | Configures and queries the underlying native library.
  WavExtractor | Extracts data from WAV byte streams.
  WavUtil | Utilities for handling WAVE files.
  WebServerDispatcher | A `Dispatcher` for `MockWebServer` that allows per-path customisation of the static data served.
  WebServerDispatcher.Resource | A resource served by `WebServerDispatcher`.
  WebServerDispatcher.Resource.Builder | Builder for `WebServerDispatcher.Resource`.
  WebvttCssStyle | Style object of a Css style block in a Webvtt file.
  WebvttCssStyle.FontSizeUnit | Font size unit enum.
  WebvttCssStyle.StyleFlags | Style flag enum.
  WebvttCueInfo | A representation of a WebVTT cue.
  WebvttCueParser | Parser for WebVTT cues.
  WebvttDecoder | A `SimpleSubtitleDecoder` for WebVTT.
  WebvttExtractor | A special purpose extractor for WebVTT content in HLS.
  WebvttParserUtil | Utility methods for parsing WebVTT data.
  WidevineUtil | Utility methods for Widevine.
  WorkManagerScheduler | A `Scheduler` that uses `WorkManager`.
  WorkManagerScheduler.SchedulerWorker | A `Worker` that starts the target service if the requirements are met.
  WrappingMediaSource | An abstract `MediaSource` wrapping a single child `MediaSource`.
  WritableDownloadIndex | A writable index of `Downloads`.
  XmlPullParserUtil | `XmlPullParser` utility methods.