media/library
olly c7b3fa367b 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-06-21 23:53:59 +01:00
..
all Include RTSP module in gradle project 2021-05-10 23:41:50 +01:00
common Remove deprecated ParserException constructor 2021-06-21 22:29:27 +01:00
core Remove deprecated ParserException constructor 2021-06-21 22:29:27 +01:00
dash Parse BaseURL element including DVB attributes in DASH manifest 2021-06-21 22:28:17 +01:00
extractor Remove deprecated ParserException constructor 2021-06-21 22:29:27 +01:00
hls HLS: Fix issue where a live event doesn't transition to STATE_ENDED 2021-06-21 23:53:59 +01:00
rtsp Use a HashMap like behaviour in parsing SDP. 2021-06-21 22:25:36 +01:00
smoothstreaming Remove ParserException(cause) constructor 2021-06-10 17:36:29 +01:00
transformer Make AnalyticsListener.onPlayerError take a PlaybackException 2021-06-03 13:49:28 +01:00
ui Fix DefaultTimeBar glitches 2021-06-21 23:52:43 +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.