1. 30 Jun, 2021 30 commits
  2. 28 Jun, 2021 1 commit
  3. 26 Jun, 2021 1 commit
  4. 22 Jun, 2021 1 commit
  5. 21 Jun, 2021 7 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
    • Specify a root when inflating child views · 3d3ac623
      #minor-release
      
      PiperOrigin-RevId: 380655806
      olly committed
    • Workaround for focus issues on API levels less than 26 · 6f686be7
      Issue: #9061
      PiperOrigin-RevId: 380640601
      olly committed
    • Remove deprecated ParserException constructor · 81c542b6
      And replace it with factory method which includes more
      context for error code assignment.
      
      PiperOrigin-RevId: 380624625
      aquilescanta committed
    • Parse BaseURL element including DVB attributes in DASH manifest · f609fecf
      This change parses the entire BaseURL element including DVB extension attributes, stores it in an instance of new BaseUrl class and puts it in a list of base URLs of the resulting Representation. The base url handling itself is still the same, which means that only the first base url is taken into account, just as before this change.
      
      PiperOrigin-RevId: 380609495
      bachinger committed
    • Re-word the DataSourceContractTest javadoc · 66308216
      This softens the language around suppressing individual test methods.
      There are some legitimate cases where this is needed, e.g.
      ByteArrayDataSourceContractTest has to suppress all the tests related
      to non-existent resources because it's not possible to simulate that
      case.
      
      #minor-release
      
      PiperOrigin-RevId: 380570017
      ibaker committed