# Package com.google.android.exoplayer2.upstream

- Interface Summary
  Interface | Description
  --- | ---
  Allocator | A source of allocations.
  BandwidthMeter | Provides estimates of the currently available bandwidth.
  BandwidthMeter.EventListener | A listener of `BandwidthMeter` events.
  DataReader | Reads bytes from a data stream.
  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.
  HttpDataSource | An HTTP `DataSource`.
  HttpDataSource.Factory | A factory for `HttpDataSource` instances.
  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.ReleaseCallback | A callback to be notified when a `Loader` has finished being released.
  LoaderErrorThrower | Conditionally throws errors affecting a `Loader`.
  LoadErrorHandlingPolicy | Defines how errors encountered by loaders are handled.
  ParsingLoadable.Parser<T> | Parses an object from loaded data.
  ResolvingDataSource.Resolver | Resolves `DataSpecs`.
  TimeToFirstByteEstimator | Provides an estimate of the time to first byte of a transfer.
  TransferListener | A listener of data transfer events.

- Class Summary
  Class | Description
  --- | ---
  Allocation | An allocation within a byte array.
  AssetDataSource | A `DataSource` for reading from a local asset.
  BandwidthMeter.EventListener.EventDispatcher | Event dispatcher which allows listener registration.
  BaseDataSource | Base `DataSource` implementation to keep a list of `TransferListener`s.
  ByteArrayDataSink | A `DataSink` for writing to a byte array.
  ByteArrayDataSource | A `DataSource` for reading from a byte array.
  ContentDataSource | A `DataSource` for reading from a content URI.
  DataSchemeDataSource | A `DataSource` for reading data URLs, as defined by RFC 2397.
  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.
  DefaultAllocator | Default implementation of `Allocator`.
  DefaultBandwidthMeter | Estimates bandwidth by listening to data transfers.
  DefaultBandwidthMeter.Builder | Builder for a bandwidth meter.
  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.
  DefaultHttpDataSource | An `HttpDataSource` that uses Android's `HttpURLConnection`.
  DefaultHttpDataSource.Factory | `DataSource.Factory` for `DefaultHttpDataSource` instances.
  DefaultHttpDataSourceFactory | Deprecated. Use `DefaultHttpDataSource.Factory` instead.
  DefaultLoadErrorHandlingPolicy | Default implementation of `LoadErrorHandlingPolicy`.
  DummyDataSource | A DataSource which provides no data.
  FileDataSource | A `DataSource` for reading local files.
  FileDataSource.Factory | `DataSource.Factory` for `FileDataSource` instances.
  FileDataSourceFactory | Deprecated. Use `FileDataSource.Factory`.
  HttpDataSource.BaseFactory | Base implementation of `HttpDataSource.Factory` that sets default request properties.
  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.
  HttpUtil | Utility methods for HTTP.
  Loader | Manages the background loading of `Loader.Loadable`s.
  Loader.LoadErrorAction | Action that can be taken in response to `Loader.Callback.onLoadError(Loadable, long, long, IOException, int)`.
  LoaderErrorThrower.Dummy | A `LoaderErrorThrower` that never throws.
  LoadErrorHandlingPolicy.LoadErrorInfo | Holds information about a load task error.
  ParsingLoadable<T> | A `Loader.Loadable` for objects that can be parsed from binary data using a `ParsingLoadable.Parser`.
  PriorityDataSource | A `DataSource` that can be used as part of a task registered with a `PriorityTaskManager`.
  PriorityDataSourceFactory | A `DataSource.Factory` that produces `PriorityDataSource` instances.
  RawResourceDataSource | A `DataSource` for reading a raw resource inside the APK.
  ResolvingDataSource | `DataSource` wrapper allowing just-in-time resolution of `DataSpecs`.
  ResolvingDataSource.Factory | `DataSource.Factory` for `ResolvingDataSource` instances.
  StatsDataSource | `DataSource` wrapper which keeps track of bytes transferred, redirected uris, and response headers.
  TeeDataSource | Tees data into a `DataSink` as the data is read.
  UdpDataSource | A UDP `DataSource`.

- Exception Summary
  Exception | Description
  --- | ---
  AssetDataSource.AssetDataSourceException | Thrown when an `IOException` is encountered reading a local asset.
  ContentDataSource.ContentDataSourceException | Thrown when an `IOException` is encountered reading from a content URI.
  DataSourceException | Used to specify reason of a DataSource error.
  FileDataSource.FileDataSourceException | Thrown when a `FileDataSource` encounters an error reading a file.
  HttpDataSource.CleartextNotPermittedException | Thrown when cleartext HTTP traffic is not permitted.
  HttpDataSource.HttpDataSourceException | Thrown when an error is encountered when trying to read from a `HttpDataSource`.
  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.
  Loader.UnexpectedLoaderException | Thrown when an unexpected exception or error is encountered during loading.
  RawResourceDataSource.RawResourceDataSourceException | Thrown when an `IOException` is encountered reading from a raw resource.
  UdpDataSource.UdpDataSourceException | Thrown when an error is encountered when trying to read from a `UdpDataSource`.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  DataSpec.Flags | The flags that apply to any request for data.
  DataSpec.HttpMethod | HTTP methods supported by ExoPlayer `HttpDataSource`s.
  HttpDataSource.HttpDataSourceException.Type |