# androidx.media3.exoplayer.upstream

*** ** * ** ***

## Annotations

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdConfiguration.CmcdKey` | Indicates that the annotated element represents a CMCD key. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdConfiguration.DataTransmissionMode` | Indicates the mode used for data transmission. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdConfiguration.HeaderKey` | Header keys SHOULD be allocated to one of the four defined header names based upon their expected level of variability: |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdData.ObjectType` | Indicates the media type of current object being requested. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdData.StreamType` | Indicates the type of streaming for media content. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdData.StreamingFormat` | Indicates the streaming format used for media content. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/LoadErrorHandlingPolicy.FallbackType` | Fallback type. |

## Interfaces

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Allocator` | A source of allocations. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Allocator.AllocationNode` | A node in a chain of `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Allocation`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter` | Provides estimates of the currently available bandwidth. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter.EventListener` | A listener of `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter` events. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdConfiguration.Factory` | Factory for `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdConfiguration` instances. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdConfiguration.RequestConfig` | Represents configuration which can vary on each request. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/DefaultBandwidthMeter.InitialBitrateSupplier` | Supplies an initial bitrate estimate to the `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/DefaultBandwidthMeter`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/LoadErrorHandlingPolicy` | A policy that defines how load errors are handled. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Loader.Callback` | A callback to be notified of `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Loader` events. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Loader.Loadable` | An object that can be loaded using a `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Loader`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Loader.ReleaseCallback` | A callback to be notified when a `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Loader` has finished being released. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/LoaderErrorThrower` | Conditionally throws errors affecting a `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Loader`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/ParsingLoadable.Parser` | Parses an object from loaded data. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/TimeToFirstByteEstimator` | Provides an estimate of the time to first byte of a transfer. |

## Classes

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Allocation` | An allocation within a byte array. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter.EventListener.EventDispatcher` | Event dispatcher which allows listener registration. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CachedRegionTracker` | Utility class for efficiently tracking regions of data that are stored in a `https://developer.android.com/reference/androidx/media3/datasource/cache/Cache` for a given cache key. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdConfiguration` | Represents a configuration for the Common Media Client Data (CMCD) logging. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdData` | This class provides functionality for generating and adding Common Media Client Data (CMCD) data to adaptive streaming formats, DASH, HLS, and SmoothStreaming. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdData.Factory` | `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdData.Factory` for `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/CmcdData` instances. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/DefaultAllocator` | Default implementation of `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Allocator`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/DefaultBandwidthMeter` | Estimates bandwidth by listening to data transfers. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/DefaultBandwidthMeter.Builder` | Builder for a bandwidth meter. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/DefaultLoadErrorHandlingPolicy` | Default implementation of `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/LoadErrorHandlingPolicy`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/LoadErrorHandlingPolicy.FallbackOptions` | Holds information about the available fallback options. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/LoadErrorHandlingPolicy.FallbackSelection` | A selected fallback option. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/LoadErrorHandlingPolicy.LoadErrorInfo` | Holds information about a load task error. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Loader` | Manages the background loading of `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Loader.Loadable`s. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Loader.LoadErrorAction` | Action that can be taken in response to `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Loader.Callback#onLoadError(T,long,long,java.io.IOException,int)`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/LoaderErrorThrower.Placeholder` | A `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/LoaderErrorThrower` that never throws. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/ParsingLoadable` | A `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Loader.Loadable` for objects that can be parsed from binary data using a `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/ParsingLoadable.Parser`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/ParsingLoadable.Builder` | Builder for `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/ParsingLoadable`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/SlidingPercentile` | Calculate any percentile over a sliding window of weighted values. |

## Exceptions

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/Loader.UnexpectedLoaderException` | Thrown when an unexpected exception or error is encountered during loading. |