media/library
andrewlewis d3933e5cac Recreate Opus decoder for stream change
The framework opus decoder discards some samples after a call to
flush(). Because we flush a decoder that is being retained across an
input format change, this means that the start of audio gets truncated
when transitioning to a new opus stream. See also
https://android.googlesource.com/platform/frameworks/av/+/refs/heads/android10-release/media/libstagefright/codecs/opus/dec/SoftOpus.cpp.

Avoid this by recreating opus decoders instead of flushing them. It
seems fine to do this for all opus decoders as reinitialization should
be cheap, OEM-provided implementations may also discard samples and
playback shouldn't be interrupted on reinitialization due to the
downstream AudioTrack buffer.

PiperOrigin-RevId: 277458759
2019-10-30 08:52:05 +00:00
..
all Use new exoplayer.dev domain everywhere. 2019-04-16 15:25:27 +01:00
core Recreate Opus decoder for stream change 2019-10-30 08:52:05 +00:00
dash Replace usages of SampleQueue.hasNextSample with isReady 2019-10-30 08:51:42 +00:00
hls Add uncontroversial HLS nullness annotations 2019-10-30 08:51:20 +00:00
smoothstreaming Add SequencableLoader.isLoading 2019-10-02 21:30:07 +01:00
ui Change nested ternary to switch in SubtitlePainter 2019-10-30 08:51:57 +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.