1. 07 May, 2021 6 commits
  2. 06 May, 2021 3 commits
  3. 04 May, 2021 12 commits
  4. 30 Apr, 2021 2 commits
  5. 29 Apr, 2021 2 commits
    • Add get video size · 0f7ef1ea
      Move VideoSize in the common module and have the Player return it.
      
      `Listener` and `AnalyticsListener` `onVideoSizeChanged` are updated
      with the old method deprecated.
      
      `VideoRendererEventListener.onVideoSizeChanged` was also migrated to
      `VideoSize` but the old method is removed, not deprecated.
      This is because:
       - apps calling/listening to this method is a rare and niche use-case.
       - it would introduce hard to diagnostic issues where if only the caller
         or the callee is updated to use the new method, the event will be lost.
         This doesn't occur with the other 2 listeners as the caller is always
         in ExoPlayer library and was updated to call both the old and new methods.
      
      VideoSize is used everywhere except in `Format` as this would lead to
      too much refactoring and backward compatibility breakage for little gain.
      
      #minor-release
      
      PiperOrigin-RevId: 371087419
      krocard committed
  6. 28 Apr, 2021 4 commits
  7. 27 Apr, 2021 10 commits
    • Move the ownership of MediaMetadata to ExoPlayerImpl. · b336df3e
      Add the onMediaMetadataChanged event to onEvents.
      
      PiperOrigin-RevId: 370738521
      samrobinson committed
    • Add initial code for PlaybackException · 1d96d6b6
      Deferred the addition of error codes to ease the review process.
      
      PiperOrigin-RevId: 370687238
      aquilescanta committed
    • Allow the extractor deplete the reordering queue as much as possible. · 537e8aad
      #minor-release
      
      PiperOrigin-RevId: 370673852
      claincly committed
    • Misc ad handling improvements. · 26a6aad3
      1. Clarify intention of getAdGroupIndexForPositionUs and
         getAdGroupIndexAfterPositionUs. Both methods are used for very
         specific but different purposes and encode the logic of which
         ads should be played at which time, so it's helpful to clarify
         this in the documentation as well.
      2. Change one usage getAdGroupIndexForPositionUs to use the already
         existing nextAdGroupIndex. This is also more in line with the
         intended usage as clarified in step 1.
      3. Update MediaPeriodQueueTest for updateQueuedPeriods to only
         look for duration changes in future periods, not in the
         current one, because that's not handled MediaPeriodQueue for ads
         and the test is just passing by chance now. Also remove wrong
         advancePlaying() calls that are already implicitly included in
         the preceding enqueueNext() call.
      4. Fix a minor bug where post-roll ads are not checked whether they
         are played already before using them as the next ad group. Also
         added a test covering this case.
      
      #minor-release
      
      PiperOrigin-RevId: 370664131
      tonihei committed
    • Relax session timing requirement. · 13a34b8b
      Some RTSP servers do not include the RANGE attribute for live contents.
      
      #minor-release
      
      PiperOrigin-RevId: 370662587
      claincly committed
    • Fix that loadingFinished is never set to true. · bf04bb5b
      Previously loadingFinished will never be set to true because it started in
      false, and we are and'ing it with `canceled`.
      
      #minor-release
      
      PiperOrigin-RevId: 370662456
      claincly committed
    • Fix reference to file in LINT.ThenChange tag · 65bb4eba
      PiperOrigin-RevId: 370660058
      bachinger committed
    • Publish ExoPlayer's support for RTSP. · 8135b9c2
      Allow ExoPlayer to open URIs starting with rtsp://
      
      PiperOrigin-RevId: 370653248
      claincly committed
    • Add ForwardingPlayer · 74de77a1
      The ForwardingPlayer implements the Player interface and forwards all
      operations to another Player instance. Apps will be able to override
      methods of ForwardinPlayer in order to modify and/or suppress specific
      Player funcionalities.
      
      This commit introduces the ForwardingPlayer which simply forwards all
      Player operations to another Player instance. In follow-up changes,
      the ForwardingPlayer will be extended so that it eventually reaches the
      feature-set offered by ControlDispatcher.
      
      PiperOrigin-RevId: 370653167
      christosts committed
    • Remove release command for symmetry with Player construction · 5153ccde
      Release is a life cycle operation that should only be called when
      the player is no longer needed. It's linked to the player lifecycle
      and thus very different from prepare/stop.
      As a result, it should not be in the same command.
      
      Additionally it's not clear if remote players will ever need to call release,
      as the player creator is best candidate to release it.
      
      As a result the release operation doesn't have a use case for a command.
      A release command can be added later if a need is identified.
      
      PiperOrigin-RevId: 370649214
      krocard committed
  8. 26 Apr, 2021 1 commit