tonihei aab6aef443 Set min/max supported live offset in DashMediaSource.
In order to ensure we can update the values for new manifests but still use
the user provided override, we need to save the original and the updated MediaItem
seperately.

And in order to incorporate the existing logic for the min/max supported live
offset, which we already use to correct the target offset, also move both places
together so that all the adjustment happens in one place.

Logical adjustments to the previous min/max supported live offset:
 - Use the user-provided MediaItem values if set
 - Use the newly parsed ServiceDescription values if available.
 - Limit the minimum to 0 if the current time is in the window and we can
   assume to have low-latency stream.
 - Add minBufferTime from the manifest to ensure we don't reduce the live
   offset below this value.

Issue: #4904
PiperOrigin-RevId: 339452816
2020-11-02 22:58:34 +00:00
..
2020-09-07 20:42:23 +01:00

ExoPlayer DASH library module

Provides support for Dynamic Adaptive Streaming over HTTP (DASH) content.

Adding a dependency to this module is all that's required to enable playback of DASH MediaItems added to an ExoPlayer or SimpleExoPlayer in their default configurations. Internally, DefaultMediaSourceFactory will automatically detect the presence of the module and convert DASH MediaItems into DashMediaSource instances for playback.

Similarly, a DownloadManager in its default configuration will use DefaultDownloaderFactory, which will automatically detect the presence of the module and build DashDownloader instances to download DASH content.

For advanced playback use cases, applications can build DashMediaSource instances and pass them directly to the player. For advanced download use cases, DashDownloader can be used directly.

  • Developer Guide.
  • Javadoc: Classes matching com.google.android.exoplayer2.source.dash.* belong to this module.