media/library
olly 1b50071f4f 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-20 17:10:14 +00:00
..
all Move common gradle setup to a setting file. 2020-06-26 11:13:25 +01:00
common Rollback of 5d9c2d7b6a 2020-11-18 18:40:30 +00:00
core Fix ProgressiveDownloader retry logic 2020-11-20 17:10:14 +00:00
dash Rollback of 5d9c2d7b6a 2020-11-18 18:40:30 +00:00
extractor Remove FLAG_SIDELOADED from FragmentedMp4Extractor 2020-11-19 17:13:11 +00:00
hls Replace cancelled HLS preload parts 2020-11-19 17:13:19 +00:00
smoothstreaming Remove deprecated MediaSource builder methods and constructors. 2020-10-13 16:27:20 +01:00
ui Remove custom speed from StyledPlayerControlView 2020-11-19 17:12:51 +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.