1. 06 Jul, 2022 1 commit
  2. 05 Jul, 2022 1 commit
  3. 07 Jul, 2022 1 commit
  4. 01 Jul, 2022 3 commits
    • Only consider enabled tracks in ProgressiveMediaPeriod.bufferedPosition · 84280c85
      ProgressiveMediaPeriod loads all available tracks into SampleStreams
      (because it needs to read the data anyway and it allows easy activation
      of tracks without reloading). However, the SampleStreams for disabled
      tracks are not read and no one if waiting for them.
      
      The buffered position is used for user-visible state (e.g. in the UI)
      and to check how much data is already buffered to decide when to stop
      buffering (using LoadControl). Both values benefit from only
      using the actually enabled tracks to better reflect what is available
      for playback at the moment.
      
      Issue:Issue: google/ExoPlayer#10361
      PiperOrigin-RevId: 458475038
      (cherry picked from commit 577e1916)
      tonihei committed
    • Fix MP4 parser issue in reading bitrates from esds boxes. · 3d79536f
      As per MP4 spec, bitrates in esds boxes can be a 32 bit number which doesn't fits in Java int type, so now reading it as a long value. Our class for holding media format, only allows bitrates value to be an int as we don't expect the bitrates to be greater than or equal to 2^31. So we're limiting the values for bitrates to Integer.MAX_VALUE.
      
      #minor-release
      
      PiperOrigin-RevId: 458423162
      (cherry picked from commit 9e10286b)
      rohks committed
    • Fix MP4 parser issue in reading length of URL array from esds boxes. · 3709e90e
      As per MP4 spec, the length of URL array is a 8 bit number.
      
      #minor-release
      
      PiperOrigin-RevId: 458421436
      (cherry picked from commit 5095ff16)
      rohks committed
  5. 29 Jun, 2022 1 commit
  6. 28 Jun, 2022 4 commits
  7. 27 Jun, 2022 2 commits
  8. 23 Jun, 2022 1 commit
  9. 21 Jun, 2022 1 commit
    • Clear pending doSomeWork messages when sleeping for offload · de78cfa3
      The offload sleeping stops as soon as a new DO_SOME_WORK message
      is handled (because this indicates an expected change in rendering
      and we want to stop sleeping until we know it's safe to do so).
      
      Every exit path from doSomeWork needs to clear other pending
      DO_SOME_WORK messages as these requests have already been handled by
      the current method invocation. This currently doesn't happen from the
      offload sleeping return path and a previously queued DO_SOME_WORK
      message can immediately wake up the rendering loop again.
      
      Fix this by moving the message removal to the beginning of the
      doSomeWork method (as it prevents forgetting it in one of the
      exit paths later).
      
      PiperOrigin-RevId: 456259715
      (cherry picked from commit 251389d7)
      tonihei committed
  10. 20 Jun, 2022 1 commit
  11. 16 Jun, 2022 1 commit
  12. 15 Jun, 2022 2 commits
  13. 10 Jun, 2022 1 commit
  14. 07 Jun, 2022 1 commit
  15. 17 Jun, 2022 2 commits
  16. 16 Jun, 2022 6 commits
  17. 15 Jun, 2022 7 commits
  18. 14 Jun, 2022 2 commits
  19. 13 Jun, 2022 2 commits
    • Use correct placeholder PlayerID value in test · c1f1eb78
      The default constructor is only allowed to be called on
      API < 32 and the test should use the defined UNSET constant
      to be API independent.
      
      #minor-release
      
      PiperOrigin-RevId: 454568893
      (cherry picked from commit 0ed53215)
      tonihei committed
    • Ensure `DRAIN_ACTION_FLUSH_AND_UPDATE_DRM_SESSION` is always executed · 31e6ba9c
      `codecDrainAction` is set to `DRAIN_ACTION_NONE` in 3 places in
      `MediaCodecRenderer`:
      * The constructor (so there's no prior state to worry about)
      * `updateDrmSessionV23()`: Where `mediaCrypto` is reconfigured based
        on `sourceDrmSession` and `codecDrmSession` is also updated to
        `sourceDrmSession`.
      * `resetCodecStateForFlush()`: Where (before this change) the action
        is unconditionally set back to `DRAIN_ACTION_NONE` and so any
        required updated implied by
        `DRAIN_ACTION_FLUSH_AND_UPDATE_DRM_SESSION` is not done.
      
      This change ensures that `flushOrReleaseCodec()` handles
      `DRAIN_ACTION_FLUSH_AND_UPDATE_DRM_SESSION` before calling .
      
      This probably also resolves Issue: google/ExoPlayer#10274
      
      #minor-release
      
      PiperOrigin-RevId: 454114428
      (cherry picked from commit c736a72c)
      ibaker committed