media/library/hls
ibaker 46598a46fd Audit usages of ParsableByteArray#reset(int)
This method should be assumed to clear the data of the underlying array
(it will do this if the new limit > data.length).

This means it should only be called (directly) before writing into the
backing array.

It shouldn't be used as a shorthand for position=0, limit=x - those
should be two explicit method calls.

Most of these changes are no-ops, but they make the code more correct.

The TS SectionReader can't be easily changed to be 'safe', because it
relies on sectionData maintaining state between iterations of the while
loop. Instead I've added comments justifying the existing code.

PiperOrigin-RevId: 344515340
2020-11-30 09:31:49 +00:00
..
src Audit usages of ParsableByteArray#reset(int) 2020-11-30 09:31:49 +00:00
build.gradle Use blocking HLS media playlist reload for segments 2020-11-06 16:32:40 +00:00
README.md Fix DASH/SS/HLS module readme files 2020-09-07 20:42:23 +01:00

ExoPlayer HLS library module

Provides support for HTTP Live Streaming (HLS) content.

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

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

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

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