# Package com.google.android.exoplayer2.trackselection

- Interface Summary
  Interface | Description
  --- | ---
  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.Factory | Factory for `ExoTrackSelection` instances.
  TrackSelection | A track selection consisting of a static subset of selected tracks belonging to a `TrackGroup`.
  TrackSelectionUtil.AdaptiveTrackSelectionFactory | Functional interface to create a single adaptive track selection.
  TrackSelector.InvalidationListener | Notified when selections previously made by a `TrackSelector` are no longer valid.

- Class Summary
  Class | Description
  --- | ---
  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.
  BaseTrackSelection | An abstract base class suitable for most `ExoTrackSelection` implementations.
  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`.
  ExoTrackSelection.Definition | Contains of a subset of selected tracks belonging to a `TrackGroup`.
  FixedTrackSelection | A `TrackSelection` consisting of a single track.
  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.
  RandomTrackSelection | An `ExoTrackSelection` whose selected track is updated randomly.
  RandomTrackSelection.Factory | Factory for `RandomTrackSelection` instances.
  TrackSelectionArray | An array of `TrackSelection`s.
  TrackSelectionParameters | Constraint parameters for track selection.
  TrackSelectionParameters.Builder | A builder for `TrackSelectionParameters`.
  TrackSelectionUtil | Track selection related utility methods.
  TrackSelector | The component of an `ExoPlayer` responsible for selecting tracks to be consumed by each of the player's `Renderer`s.
  TrackSelectorResult | The result of a `TrackSelector` operation.