media/library
olly 3a8524d044 Fix ProgressiveDownloader retry logic
RunnableFutureTask is not reusable. Trying to reuse it meant that a
failure in one doWork() call would cause subsequent download() calls
to (a) not block until the runnable has finished executing (does not
apply when using a direct executor), and (b) throw the same failure
as thrown from the first doWork() call.

This could cause #8078 if the initial failure occurred before the
content length was resolved. Retries are not blocked on their work
completing due to (a), and the download would be marked as failed due
to (b). The work itself could then resolve the content length, which
causes the stack trace in this issue.

Issue: #8078
PiperOrigin-RevId: 343498252
2020-11-23 11:08:09 +00:00
..
all Move common gradle setup to a setting file. 2020-06-26 11:13:25 +01:00
common Remove C.StreamType constant that's not a real stream type 2020-11-19 16:55:42 +00:00
core Fix ProgressiveDownloader retry logic 2020-11-23 11:08:09 +00:00
dash Switch to an 'api' dependency on Guava 2020-10-20 22:16:12 +01:00
extractor Matroska: Support additional PCM codec modes 2020-11-19 16:44:18 +00:00
hls Fix HLS format derivation in traditional preparation 2020-11-23 09:58:48 +00:00
smoothstreaming Simplify DefaultMediaSourceFactory ad configuration 2020-09-07 20:46:57 +01:00
ui Fix fastforward and rewind color tinting and text alignment 2020-11-23 09:58:48 +00: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.