media/library
tonihei f31894616c Ensure callback can't access player before constructor finished.
If the player is created on a background thread (which is allowed
as the only exception to the access-on-one-thread-only rule), it
may happen that a callback on the main thread tries to access the
player before the constructor even finished. This is dangerous and
can cause exceptions due to uninitialized variables.

To solve this, we can make sure that every player access is blocked
until the constructor finished. Blocking is safe because the
constructor itself is not doing any blocking work or acquiring locks.

The thread verification method is already called on every entry
point to the player, so we can reuse the same method for checking.

PiperOrigin-RevId: 365792949
2021-04-01 16:04:08 +01:00
..
all Add Transformer "Getting started" page 2021-02-03 15:03:16 +00:00
common Log error for TrackGroups with multiple languages or role flags. 2021-04-01 16:03:43 +01:00
core Ensure callback can't access player before constructor finished. 2021-04-01 16:04:08 +01:00
dash SampleStream/SampleQueue: Introduce read flags 2021-03-24 18:03:28 +00:00
extractor Log error for TrackGroups with multiple languages or role flags. 2021-04-01 16:03:43 +01:00
hls Avoid invalid extractors in DefaultHlsExtractorFactory 2021-03-24 18:04:17 +00:00
smoothstreaming Add common prefix to loader thread names 2021-02-11 12:05:06 +00:00
transformer SampleStream/SampleQueue: Introduce read flags 2021-03-24 18:03:28 +00:00
ui Document that the order of cues passed to TextOutput is important 2021-04-01 16:03:35 +01:00
README.md Tweak and add READMEs + remove refs to V1 2017-08-17 22:59:34 +01:00

ExoPlayer library

The ExoPlayer library is split into multiple modules. See ExoPlayer's top level README for more information about the available library modules and how to use them.