1. 03 Feb, 2021 1 commit
  2. 02 Feb, 2021 2 commits
    • Fix ProGuard configuration for 2.13 · b1920f3a
      Note: We only support pro-guard on a best effort basis,
      and developers should use R8 whenever possible.
      
      #minor-release
      
      PiperOrigin-RevId: 355129695
      olly committed
    • Modernize bandwidth profile simulator. · 05fddff8
      Main improvement is to switch away from ExoPlayerTestRunner and to
      split out the waiting component so that the same class can be used
      from Robolectric tests in the future.
      
      The only functional difference is that that BufferLengthLogAction
      is removed completely because the data isn't used downstream and the
      method of collecting this data is a bit arbitrary.
      
      PiperOrigin-RevId: 355117850
      tonihei committed
  3. 01 Feb, 2021 16 commits
  4. 26 Jan, 2021 13 commits
  5. 25 Jan, 2021 8 commits
    • Bump version to 2.13.0 · 724ded16
      PiperOrigin-RevId: 353655249
      ibaker committed
    • Use maximum supported channel count for Atmos from API 29 · e696a7c6
      #minor-release
      
      PiperOrigin-RevId: 353649545
      andrewlewis committed
    • OkHttp/Rtmp extensions: Remove dependency on core · 3fcc14b3
      They only require common. This allows their use for non-playback networking
      without requiring the user to depend on the whole of core. I will also make
      the same change for Cronet, although this needs a little more work.
      
      PiperOrigin-RevId: 353649388
      olly committed
    • Replace non-inclusively named constant · a1f06987
      Issue: #7565
      PiperOrigin-RevId: 353649187
      olly committed
    • Move Player in common · b0258e71
      This is the last CL to move Player in common.
      
      #player-to-common
      
      PiperOrigin-RevId: 353642347
      krocard committed
    • Split mutations method out of TrackSelection · ec437350
      `TrackSelection` had mutation methods which were to be called only
      internally by ExoPlayer components but were exposed in the
      public `Player` interface.
      
      The mutation methods have been moved out of `TrackSelection`
      to a new class `ExoTrackSelection`.
      
      Current track related read-only method have also been moved out,
      because they are actually something quite unclear.
      Even for a single item playlist, it's the track being buffered rather
      than the track being played, which is unclear.
      But when you have a playlist it starts to get really confusing,
      because if the next item is being buffered, then it's actually
      the last track to be buffered in the currently playing item.
      As a final aside, the implementations don't do proper thread synchronization
      to ensure visibility of updated state by the calling thread.
      
      Exposing those mutable methods in the public `Player` interface
      was problematic because they leaking internal concepts of `ExoPlayer`.
      This is also required to minimize the `Player` interface for long term
      stability.
      
      `ExoTrackSelection` is a subclass of `TrackSelection`.
      This is not ideal as an `TrackSelection` implementation could
      break the current immutability.
      This was done in order for this refactor to be simpler.
      A future patch will fully split the two classes.
      
      All `MediaPeriod` and `Sources` had to be updated to use the new
      `TrackSelection` dynamic aspect class name.
      An alternative would have been to break ExoPlayer's public API, keeping
      `TrackSelection` as the dynamic aspect name, and calling the public static
      aspect class `TrackSelectionState` or similar.
      Nevertheless, while it would have impacted less files, it would have
      many more small apps and casual users of ExoPlayer.
      
      #player-to-common
      
      PiperOrigin-RevId: 353637924
      krocard committed