1. 26 Jan, 2021 7 commits
  2. 25 Jan, 2021 16 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
    • Rename DUMMY_MEDIA_ID and related cleanup · b069a567
      Issue: #7565
      PiperOrigin-RevId: 353616594
      olly committed
    • Upgrade Robolectric to 4.5 (from 4.5-alpha-3) · 5433b83a
      PiperOrigin-RevId: 353615959
      ibaker committed
    • Fix bug in CronetDataSource · 3b08a792
      This change fixes a bug in CronetDataSource when it makes a Range
      request but the server does not support Range requests and returns the
      entire resource. Before the fix, the CronetDataSource would read more
      bytes than the intended range.
      
      PiperOrigin-RevId: 353614477
      christosts committed
    • Some more language fixes · dc7fde1f
      Issue: #7565
      PiperOrigin-RevId: 353613493
      olly committed
    • Migrate CronetDataSourceFactory to DefaultHttpDataSource.Factory · bfc73698
      We normally wouldn't do this kind of thing, given CronetDataSourceFactory is
      deprecated, but it's needed to change the cronet --> core dependency to a
      cronet --> common dependency.
      
      PiperOrigin-RevId: 353609198
      olly committed
    • Allow playback for ads buffered to end · c37f7578
      `ImaAdsLoader` only loads ad media URLs once playback of the preceding ad (if
      any) has started, and this behavior is likely to be similar for other ad loader
      implementations due to limits on how long before an ad plays it is meant to be
      loaded. This is problematic for very short ads followed by an ad because the ad
      will load to the end but load control may not allow playback to start due to
      the total buffered duration being low.
      
      Fix this by allowing playback to start regardless of load control if we are
      waiting for an ad media period to prepare.
      
      An alternative fix would be to fake the ad progress in the `ImaAdsLoader` to
      trigger loading the next ad, but this would only allow one ad to load ahead (so
      the problem would remain for two short ads in a row followed by another ad).
      
      Issue: #8492
      PiperOrigin-RevId: 353600088
      andrewlewis committed
    • LoadControler no longer uses TrackSelectionArray · 6a900ab1
      Instead it uses a TrackSelection[].
      
      #player-to-common
      
      PiperOrigin-RevId: 353584567
      krocard committed
    • Remove non Player use of TrackSelectionArray, use TrackSelection[] · bf3816bd
      This is necessary for the child cl that `TrackSelection`
      in two distinct class. It avoids to split the array
      version of such class too.
      
      TrackSelectionArray exist to have an immutable array of TrackSelection.
      Internal users are trusted to not mutate the array.
      
      One drawback of this approach is that a `TrackSelectionArray`
      has to be allocated on the boundary of the `Player` interface.
      This should not be a performance issue as this only happens
      on trackSelection changes, when the user calls
      `Player.getCurrentTrackSelections` and on
      `updateLoadControlTrackSelection`.
      
      #player-to-common
      
      PiperOrigin-RevId: 353582654
      krocard committed
    • Move factory mutations out of DefaultDataSourceFactory#createMediaSource · c5a81549
      #minor-release
      
      PiperOrigin-RevId: 353394376
      ibaker committed
    • Add contract test for CronetDataSource · 0a3542e5
      PiperOrigin-RevId: 353290124
      christosts committed
  3. 22 Jan, 2021 17 commits