media/library
olly 5bdcb5fd56 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-17 13:59:37 +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-17 13:59:37 +00:00
dash PlayerTrackEmsgHandler: Release sample queue in release() 2020-01-17 13:58:07 +00:00
hls Split HlsSampleStreamWrapper.init into two methods 2020-01-17 13:58:03 +00:00
smoothstreaming Make DownloadHelper pass DrmSessionManager to MediaSources 2020-01-17 13:35:21 +00:00
ui Disable chronometer for playback speeds != 1.0 2020-01-17 13:55:58 +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.