1. 10 Jun, 2021 4 commits
  2. 07 Jun, 2021 2 commits
  3. 03 Jun, 2021 16 commits
  4. 02 Jun, 2021 8 commits
  5. 01 Jun, 2021 2 commits
    • Remove fully qualified package in link tag to avoid reformatting · 2fb61b8a
      PiperOrigin-RevId: 376932836
      bachinger committed
    • Keep secure MediaCodec instances when disabling the renderer · 58e307c6
      A renderer is disabled (without being reset) in two situations:
      * When transitioning into a period that starts with a discontinuity
      * When stopping the player with setForegroundMode(true)
      
      Before this change the behaviour of `MediaCodecRenderer` when disabled
      (but not reset) depended on whether the content being decoded had an
      associated `DrmSession`:
      * For content without an associated DRM session the MediaCodec instance
        was kept alive.
      * For content with an associated DRM session, the MediaCodec instance
        was released. This was to prevent the DRM session from staying alive
        and continuing to make license refresh network requests while the
        player was stopped in 'foreground mode'.
      
      This change removes the second bullet, and keeps MediaCodec instances
      alive in both the secure and insecure case. This will result in the
      DRM machinery making occasional license refresh network requests (at
      a frequency defined by the license policy) while the player is stopped
      and in 'foreground mode'. This network usage is considered to be a
      'limited resource' as described by the `ExoPlayer#setForegroundMode`
      javadoc.
      
      This means that switches between secure content (or between secure and
      clear content when `MediaItem.drmConfiguration.sessionForClearTypes`
      indicates a secure decoder should be used for clear content) should
      keep the same video decoder, thus avoiding the 'black flash' that occurs
      on some devices when switching the surface away from a secure decoder.
      
      Issue: #8842
      
      #minor-release
      
      PiperOrigin-RevId: 376825501
      ibaker committed
  6. 27 May, 2021 8 commits
    • Ensure DefaultDrmSessions keep working if their manager is released · 1bf5a273
      This change introduces a third 'state' for `DefaultDrmSessionManager`:
      It's been fully released (prepareCount == 0) but at least one of its
      sessions is still active.
      
      In this state new acquisitions are rejected (`(pre)acquireSession()`
      calls will fail) but the machinery to support the existing sessions
      (ExoMediaDrm and MediaDrmHandler) is kept until they're all released.
      
      This change will allow us to remove the TODO in MediaCodecRenderer
      that resolves Issue: #8842.
      
      PiperOrigin-RevId: 376193952
      ibaker committed
    • Add a test for handling of DRM key refresh events · 4cca8b6d
      In a follow-up change I will add an additional test to ensure these
      events continue to be correctly handled when DefaultDrmSessionManager
      has prepareCount==0 but a non-null ExoMediaDrm instance.
      
      PiperOrigin-RevId: 376190225
      ibaker committed
    • Fix incorrect re-use of non-secure DummySurface with secure decoder · 513185b7
      Issue: #8776
      PiperOrigin-RevId: 376186877
      olly committed
    • Allow to specify the number of removed ad groups in AdPlaybackState. · 2938d40b
      This helps to remove old ad groups (e.g. those that fell out
      of the live window) to keep the data size of AdPlaybackState small.
      
      Also added this case to some existing unit tests to ensure it's
      covered.
      
      PiperOrigin-RevId: 376170653
      tonihei committed
    • Add getter for ad groups in AdPlaybackState. · 0d0ccadc
      This allows to decouple the data structure from the access. In
      a future change, this allows to completely remove old ad groups
      (e.g. for live streams where the number of groups would otherwise
      grow forever).
      
      Also move the time into the group itself for better encapsulation.
      
      PiperOrigin-RevId: 376170408
      tonihei committed
    • Disable reconnection CastOptions · 4e749e7a
      This includes setResumeSavedSession(false) and setEnableReconnectionService(false).
      
      PiperOrigin-RevId: 376162880
      aquilescanta committed
    • Cleanup the MediaItem.Builder javadoc for 'conditional' setters · 4033832c
      Many of the setters are ignored unless others are set - this change:
      * Lists these conditions exhaustively.
      * Uses more concise language to avoid overshadowing the main details
        of what the setter sets.
      * Tweaks the language from 'is ignored' to 'shouldn't be called', to
        open up the future possibility of throwing an error if these are
        called without the 'required' setter also being present (see
        Issue: #8957).
      
      #minor-release
      
      PiperOrigin-RevId: 376162385
      ibaker committed
    • Tweak readme · f2680d31
      PiperOrigin-RevId: 376155192
      olly committed