media/library
olly 4a5d788fa6 DASH: Output Format before InitializationChunk load completes
This optimization allows a ChunkSampleStream to output track
formats as soon as they're parsed during an InitializationChunk
load, rather than waiting until after the InitializationChunk
load is completed.

In DASH VOD, a single InitializationChunk typically loads the
moov and sidx atoms in that order. Hence for long form content
where the sidx is a non-trivial size, this may result in the
track formats being output a non-negligible period of time
sooner than was previously the case. This allows downstream
renderers to start codec initialization sooner, potentially
decreasing startup latency.

For a single test stream on a fast & stable network, this
pretty consistently reduced elapsed time until both audio and
video codecs have been initialized from ~0.5s to ~0.3 seconds
on a Galaxy S8. For 5 test runs without and with these patches,
the eventTime logged by EventLogger for the second decoder
init were:

Without (secs): 0.47 0.47 0.45 0.48 0.46
With (secs)   : 0.32 0.33 0.34 0.31 0.40

PiperOrigin-RevId: 289845089
2020-01-16 13:51:42 +00:00
..
all Use new exoplayer.dev domain everywhere. 2019-04-16 15:25:27 +01:00
core DASH: Output Format before InitializationChunk load completes 2020-01-16 13:51:42 +00:00
dash Move @Nullable annotations to correct positions 2020-01-16 13:51:26 +00:00
hls Move @MonotonicNonNull annotations to their correct positions 2020-01-16 13:51:09 +00:00
smoothstreaming Suppress rawtypes warning when instantiating generic array 2019-12-11 13:46:39 +00:00
ui Move @MonotonicNonNull annotations to their correct positions 2020-01-16 13:51:09 +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.