1. 30 Jun, 2021 35 commits
  2. 28 Jun, 2021 1 commit
  3. 26 Jun, 2021 1 commit
  4. 22 Jun, 2021 1 commit
  5. 21 Jun, 2021 2 commits
    • HLS: Fix issue where a live event doesn't transition to STATE_ENDED · c7b3fa36
      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
      olly committed
    • Fix DefaultTimeBar glitches · b1dda6a0
      The glitches were introduced in:
      https://github.com/google/ExoPlayer/commit/6c31e34528
      
      The problem is that Listener.onEvents is called in a later looper iteration
      than the listener methods that were previously used. This created a gap on
      the main thread between the UI component dispatching a seek operation to the
      player, and onEvents being called to update the progress bar's position.
      
      At the start of this gap the progress bar is rendering the new position,
      but its position member variable is still set to the old position. If the
      progress bar is re-drawn by another message on the main thread within the
      gap, it will briefly show the old position until onEvents is called.
      
      There are multiple possible fixes to this, and the best one is probably to
      modify ListenerSet to remove the gap. That's high risk though, so for now we
      fix the flicker by always updating the progress immediately after the seek
      is dispatched, in addition to when onEvents is called.
      
      Issue: #9049
      #minor-release
      PiperOrigin-RevId: 380678388
      olly committed