1. 04 Oct, 2021 7 commits
  2. 03 Oct, 2021 1 commit
  3. 01 Oct, 2021 5 commits
  4. 30 Sep, 2021 10 commits
  5. 29 Sep, 2021 5 commits
  6. 28 Sep, 2021 9 commits
    • Change how AnalyticsCollector forwards onPlayerReleased · 5ae29821
      Before releasing r2.15.0, we had a regression that crashed
      PlaybackStatsListener. A change in the AnalyticsCollector made
      it to send an additional AnalyticsListener.onEvents() callback after
      calling Player.release() and AnalyticsListener.onEvents() appeared
      to arrive with event times that were not monotonically increasing.
      The AnalyticsListener.onEvents() callback that contained
      AnalyticsListener.EVENT_PLAYER_RELEASED was called with a timestamp that
      was smaller than event times of previously AnalyticsListener.onEvents()
      calls.
      
      A first fix changed the order of events being forwarded to
      AnalyticsListener. Upon calling Player.release(), the AnalyticsCollector
      would call AnalyticsListener.onPlayerReleased() and its associated
      AnalyticsListener.onEvents() on the same stack call. This fix maintained
      that event times are monotonically increasing, but made
      AnalyticsListener.onPlayerReleased() be called earlier.
      
      This change:
      - Further changes AnalyticsCollector to ensure that
        AnalyticsListener.onPlayerReleased() and its related
        AnalyticsListener.onEvents() are the last callbacks to be called,
        and the associated timestamp is bigger than  previously reported
        event times.
      - Adds an instrumentation test to guard against the regression.
      
      PiperOrigin-RevId: 399437724
      christosts committed
    • Fix bug in MCVR where dummySurface is released but surface isn't nulled · 679e3751
      The fix for Issue: #8776 was to release and null-out dummySurface if
      it doesn't match the security level of the decoder. But it's possible
      that this.surface is already set to this.dummySurface, in which case we
      must also null out this.surface otherwise we will later try and re-use
      the old, released DummySurface instance.
      
      This logic already exists in MCVR#onReset, so I pulled it into a
      releaseDummySurface() helper function.
      
      Issue: #9476
      #minor-release
      PiperOrigin-RevId: 399420476
      ibaker committed
    • Move SubtitleExtractor to text package · 3e7b2d06
      PiperOrigin-RevId: 399400909
      bachinger committed
    • Migrate callers of ExoPlayer.Builder#build() to buildExoPlayer() · ed23b290
      An upcoming change will update build() to return Player.
      
      PiperOrigin-RevId: 399382297
      ibaker committed
    • Migrate usages of MediaItem.PlaybackProperties to LocalConfiguration · a04f1d17
      PiperOrigin-RevId: 399206106
      ibaker committed
    • Inline SimpleSubtitleOutputBuffer · e373e0cb
      PiperOrigin-RevId: 399179751
      bachinger committed
    • Use SurfaceTexture.getTimestamp · a82690a5
      PiperOrigin-RevId: 399139842
      kimvde committed
    • Update androidx.media version to 1.4.2 · 1e6a3aa6
      PiperOrigin-RevId: 399108998
      gyumin committed
    • Check direct playback capabilities for automotive devices · 732fc3ef
      For Automotive devices, surround encodings can be supported via
      the passthrough path. Therefore, include automotive in the allowed
      device types in the isDirectPlaybackSupported checks. The automotive
      system feature is checked, rather then UI_MODE_TYPE_CAR, because
      the UI_MODE_TYPE_CAR can be force enabled via
      android.app.UiModeManager.enableCarMode(), whereas FEATURE_AUTOMOTIVE
      cannot be forced.
      Dean Wheatley committed
  7. 24 Sep, 2021 3 commits