media/library
olly 5b8be42fa1 HLS: Fix issue where a live event doesn't transition to STATE_ENDED
The problem occurs when the primary media playlist URL switches
from one whose latest snapshot has not yet got the ended tag, to
one whose latest snapshot already has the ended tag. In this case:

- We trigger a redundant load of the ended playlist.
- When the redundant load completes,
  MediaPlaylistBundle.processLoadedPlaylist detects that the
  playlist is unchanged from the one it already has, and so
  doesn't call onPlaylistUpdated.
- PrimaryPlaylistListener.onPrimaryPlaylistRefreshed is never
  called with the new primary. Hence the externally visible primary
  is still the one that hasn't ended. HlsMediaSource therefore thinks
  the event hasn't ended, which in turn prevents the player from
  transitioning to the ended state.

This commit detects when the new primary already has the ended tag.
In this case, we call onPrimaryPlaylistRefreshed directly and remove
the unnecessary playlist load.

Issue: #9067
#minor-release
PiperOrigin-RevId: 380680532
2021-07-16 16:12:59 +01:00
..
all Include RTSP module in gradle project 2021-05-10 23:50:13 +01:00
common Add DRM info to Format.toLogString 2021-07-16 16:12:58 +01:00
core Simplify FileDataSourceContractTest 2021-07-16 16:12:58 +01:00
dash Merge pull request #9023 from DolbyLaboratories:dev-v2-multicodecs 2021-07-16 16:12:58 +01:00
extractor Fix issue where a trun atom could be associated with the wrong track 2021-07-16 16:12:58 +01:00
hls HLS: Fix issue where a live event doesn't transition to STATE_ENDED 2021-07-16 16:12:59 +01:00
rtsp Use a HashMap like behaviour in parsing SDP. 2021-07-16 16:12:58 +01:00
smoothstreaming Re-format some javadoc 2021-04-21 18:46:00 +01:00
transformer Adds Format to MediaCodecAdapter.Configuration. 2021-04-21 09:48:46 +01:00
ui Fix DefaultTimeBar glitches 2021-07-16 16:12:59 +01: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.