# 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 `SimpleExoPlayer.addMediaSources(List)`.
  Action.ClearMediaItems | Calls `BasePlayer.clearMediaItems()`}.
  Action.ClearVideoSurface | Calls `SimpleExoPlayer.clearVideoSurface()`.
  Action.ExecuteRunnable | Calls `Runnable.run()`.
  Action.MoveMediaItem | Calls `BasePlayer.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 `BasePlayer.removeMediaItem(int)`.
  Action.RemoveMediaItems | Calls `SimpleExoPlayer.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 `SimpleExoPlayer.setAudioAttributes(AudioAttributes, boolean)`.
  Action.SetMediaItems | Calls `SimpleExoPlayer.setMediaSources(List, int, long)`.
  Action.SetMediaItemsResetPosition | Calls `SimpleExoPlayer.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 `SimpleExoPlayer.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)`.
  ActionFileUpgradeUtil | Utility class for upgrading legacy action files into `DefaultDownloadIndex`.
  ActionFileUpgradeUtil.DownloadIdProvider | Provides download IDs during action file upgrade.
  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.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.
  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.
  AmrExtractor | Extracts data from the AMR containers format (either AMR or AMR-WB).
  AmrExtractor.Flags | Flags controlling the behavior of the extractor.
  AnalyticsCollector | Data collector that forwards 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.
  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.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.
  AudioListener | Deprecated. Use `Player.Listener`.
  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.
  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.
  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.
  BundleableUtils | 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.AudioFocusGain | Audio focus types.
  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.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.StereoMode | The stereo mode for 360/3D/VR videos.
  C.StreamType | Stream types for an `AudioTrack`.
  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.
  CacheDataSinkFactory | Deprecated. Use `CacheDataSink.Factory`.
  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.
  CacheDataSourceFactory | Deprecated. Use `CacheDataSource.Factory`.
  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.
  CodecSpecificDataUtil | Provides utilities for handling various types of codec-specific data.
  ColorInfo | Stores color info.
  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.
  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.
  ControlDispatcher | Deprecated. Use a `ForwardingPlayer` or configure the player to customize operations.
  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.
  CryptoInfo | Compatibility wrapper for `MediaCodec.CryptoInfo`.
  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.
  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 ExoPlayer 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`.
  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 a `SimpleExoPlayer`.
  Decoder<I,​O,​E extends DecoderException> | A media decoder.
  DecoderAudioRenderer<T extends Decoder<DecoderInputBuffer,​? extends SimpleOutputBuffer,​? 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.
  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`.
  DecryptionException | Thrown when a non-platform component fails to decrypt data.
  DefaultAllocator | Default implementation of `Allocator`.
  DefaultAudioSink | Plays audio data.
  DefaultAudioSink.AudioProcessorChain | Provides a chain of audio processors, which are used for any user-defined processing and applying playback parameters (if supported).
  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.
  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.
  DefaultCompositeSequenceableLoaderFactory | Default implementation of `CompositeSequenceableLoaderFactory`.
  DefaultContentMetadata | Default implementation of `ContentMetadata`.
  DefaultControlDispatcher | Deprecated. Use a `ForwardingPlayer` or configure the player to customize operations.
  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.
  DefaultDataSourceFactory | A `DataSource.Factory` that produces `DefaultDataSource` instances that delegate to `DefaultHttpDataSource`s for non-file/asset/content URIs.
  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(android.os.Looper, 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`.
  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.
  DefaultHttpDataSourceFactory | Deprecated. Use `DefaultHttpDataSource.Factory` instead.
  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`.
  DefaultMediaDescriptionAdapter | Default implementation of `PlayerNotificationManager.MediaDescriptionAdapter`.
  DefaultMediaItemConverter | Default `MediaItemConverter` implementation.
  DefaultMediaItemConverter | Default implementation of `MediaItemConverter`.
  DefaultMediaSourceFactory | The default `MediaSourceFactory` implementation.
  DefaultMediaSourceFactory.AdsLoaderProvider | Provides `AdsLoader` instances for media items that have `ad tag URIs`.
  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.AudioTrackScore | Represents how well an audio track matches the selection `DefaultTrackSelector.Parameters`.
  DefaultTrackSelector.OtherTrackScore | Represents how well any other track (non video, audio or text) matches the selection `DefaultTrackSelector.Parameters`.
  DefaultTrackSelector.Parameters | Extends `DefaultTrackSelector.Parameters` by adding fields that are specific to `DefaultTrackSelector`.
  DefaultTrackSelector.ParametersBuilder | A builder for `DefaultTrackSelector.Parameters`.
  DefaultTrackSelector.SelectionOverride | A track selection override.
  DefaultTrackSelector.TextTrackScore | Represents how well a text track matches the selection `DefaultTrackSelector.Parameters`.
  DefaultTrackSelector.VideoTrackScore | Represents how well a video track matches the selection `DefaultTrackSelector.Parameters`.
  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.
  DeviceListener | Deprecated. Use `Player.Listener`.
  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.
  DummyDataSource | A DataSource which provides no data.
  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.
  DummySurface | A dummy `Surface`.
  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.
  EGLSurfaceTexture | Generates a `SurfaceTexture` using EGL/GLES functions.
  EGLSurfaceTexture.GlException | A runtime exception to be thrown if some EGL operations failed.
  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`.
  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 | An `SQLiteOpenHelper` that provides instances of a standalone ExoPlayer database.
  ExoHostedTest | A `HostActivity.HostedTest` for `ExoPlayer` playback tests.
  ExoMediaCrypto | Enables decoding of encrypted data using keys in a DRM session.
  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 | The audio component of an `ExoPlayer`.
  ExoPlayer.AudioOffloadListener | A listener for audio offload events.
  ExoPlayer.Builder | Deprecated. Use `SimpleExoPlayer.Builder` instead.
  ExoPlayer.DeviceComponent | The device component of an `ExoPlayer`.
  ExoPlayer.MetadataComponent | The metadata component of an `ExoPlayer`.
  ExoPlayer.TextComponent | The text component of an `ExoPlayer`.
  ExoPlayer.VideoComponent | The video component of an `ExoPlayer`.
  ExoPlayerLibraryInfo | Information about the ExoPlayer library.
  ExoPlayerTestRunner | Helper class to run an ExoPlayer test.
  ExoPlayerTestRunner.Builder | Builder to set-up a `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.
  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.
  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, 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.
  FileDataSourceFactory | Deprecated. Use `FileDataSource.Factory`.
  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.
  FrameworkMediaCrypto | An `ExoMediaCrypto` implementation that contains the necessary information to build or update a framework `MediaCrypto`.
  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.
  GlUtil | GL utilities.
  GlUtil.Attribute | GL attribute, which can be attached to a buffer with `GlUtil.Attribute.setBuffer(float[], int)`.
  GlUtil.Uniform | GL uniform, which can be attached to a sampler using `GlUtil.Uniform.setSamplerTexId(int, int)`.
  GvrAudioProcessor | Deprecated. If you still need this component, please contact us by filing an issue on our issue tracker.
  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 master playlist along with a snapshot of one of its media playlists.
  HlsMasterPlaylist | Represents an HLS master playlist.
  HlsMasterPlaylist.Rendition | A rendition (i.e.
  HlsMasterPlaylist.Variant | A variant (i.e.
  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.
  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`.
  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 `HttpDataSource` 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`.
  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`.
  IntArrayQueue | Array-based unbounded queue for int primitives with amortized O(1) add and remove.
  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.
  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> | 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.
  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.
  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.
  MatroskaExtractor | Extracts data from the Matroska and WebM container formats.
  MatroskaExtractor.Flags | Flags controlling the behavior of the extractor.
  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.Builder | A builder for `MediaItem` instances.
  MediaItem.ClippingProperties | Optionally clips the media item to a custom start and end position.
  MediaItem.DrmConfiguration | DRM configuration for a media item.
  MediaItem.LiveConfiguration | Live playback configuration.
  MediaItem.PlaybackProperties | Properties for local playback.
  MediaItem.Subtitle | Properties for a text track.
  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.PictureType | The picture type of the artwork.
  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.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 | Factory for creating `MediaSources` from `MediaItems`.
  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.
  NalUnitUtil | Utility methods for handling H.264/AVC and H.265/HEVC NAL units.
  NalUnitUtil.PpsData | Holds data parsed from a picture parameter set NAL unit.
  NalUnitUtil.SpsData | Holds data parsed from a sequence parameter set NAL unit.
  NetworkTypeObserver | Observer for network type changes.
  NetworkTypeObserver.Config | Configuration for `NetworkTypeObserver`.
  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.
  NoUidTimeline | A timeline which wraps another timeline and overrides all window and period uids to 0.
  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.
  OutputBuffer | Output buffer decoded by a `Decoder`.
  OutputBuffer.Owner<S extends OutputBuffer> | Buffer owner.
  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 FLAC file.
  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.
  PlaybackException.FieldNumber | Identifiers for fields in a `Bundle` which represents a playback exception.
  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 can be executed on a `Player`.
  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.EventListener | Deprecated. Use `Player.Listener`.
  Player.Events | A set of `events`.
  Player.Listener | Listener of all changes in the 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.
  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 | A high level view for `Player` media playbacks.
  PlayerView.ShowBuffering | Determines when the buffering view is shown.
  PositionHolder | Holds a position in the stream.
  PriorityDataSource | A `DataSource` that can be used as part of a task registered with a `PriorityTaskManager`.
  PriorityDataSourceFactory | A `DataSource.Factory` that produces `PriorityDataSource` instances.
  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.
  RawCcExtractor | Extracts data from the RawCC container format.
  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.State | The renderer states.
  Renderer.VideoScalingMode | Deprecated. Use `C.VideoScalingMode`.
  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.FormatSupport | Deprecated. Use `C.FormatSupport` instead.
  RendererCapabilities.TunnelingSupport | Level of renderer support for tunneling.
  RendererConfiguration | The configuration of a `Renderer`.
  RenderersFactory | Builds `Renderer` instances for use by a `SimpleExoPlayer`.
  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`.
  ReusableBufferedOutputStream | This is a subclass of `BufferedOutputStream` with a `ReusableBufferedOutputStream.reset(OutputStream)` method that allows an instance to be re-used with another underlying output stream.
  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.
  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, int)`.
  SampleStream.ReadFlags | Flags that can be specified when calling `SampleStream.readData(com.google.android.exoplayer2.FormatHolder, com.google.android.exoplayer2.decoder.DecoderInputBuffer, int)`.
  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.
  ServerSideInsertedAdsMediaSource | A `MediaSource` for server-side inserted ad breaks.
  ServerSideInsertedAdsUtil | 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.
  SimpleCache | A `Cache` implementation that maintains an in-memory representation.
  SimpleDecoder<I extends DecoderInputBuffer,​O extends OutputBuffer,​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.
  SimpleExoPlayer | An `ExoPlayer` implementation that uses default `Renderer` components.
  SimpleExoPlayer.Builder | A builder for `SimpleExoPlayer` instances.
  SimpleMetadataDecoder | A `MetadataDecoder` base class that validates input buffers and discards any for which `Buffer.isDecodeOnly()` is `true`.
  SimpleOutputBuffer | Buffer for `SimpleDecoder` output.
  SimpleSubtitleDecoder | Base class for subtitle parsers that use their own decode thread.
  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`.
  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`.
  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.
  StyledPlayerControlView | A view for controlling `Player` instances.
  StyledPlayerControlView.OnFullScreenModeChangedListener | Listener to be invoked to inform the fullscreen mode is changed.
  StyledPlayerControlView.ProgressUpdateListener | Listener to be notified when progress has been updated.
  StyledPlayerControlView.VisibilityListener | Listener to be notified about changes of the visibility of the UI control.
  StyledPlayerView | A high level view for `Player` media playbacks.
  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.
  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.
  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 `SimpleExoPlayer` instances for testing.
  TestPlayerRunHelper | Helper methods to block the calling thread until the provided `SimpleExoPlayer` 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.
  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 | Defines an immutable group of tracks identified by their format identity.
  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.
  TrackSelection | A track selection consisting of a static subset of selected tracks belonging to a `TrackGroup`.
  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.
  TrackSelectionParameters | Constraint parameters for 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.
  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.
  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.
  UnsupportedMediaCrypto | `ExoMediaCrypto` type that cannot be used to handle any type of protected content.
  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 ExoPlayer database components.
  VideoDecoderGLSurfaceView | GLSurfaceView implementing `VideoDecoderOutputBufferRenderer` for rendering `VideoDecoderOutputBuffers`.
  VideoDecoderInputBuffer | Input buffer to a video decoder.
  VideoDecoderOutputBuffer | Video decoder output buffer containing video frame data.
  VideoDecoderOutputBufferRenderer | Renders the `VideoDecoderOutputBuffer`.
  VideoFrameMetadataListener | A listener for metadata corresponding to video frames being rendered.
  VideoFrameReleaseHelper | Helps a video `Renderer` release frames to a `Surface`.
  VideoListener | Deprecated. Use `Player.Listener`.
  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 | A vorbis comment.
  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.
  WritableDownloadIndex | A writable index of `Downloads`.
  XmlPullParserUtil | `XmlPullParser` utility methods.