1. 14 Aug, 2023 1 commit
  2. 09 Aug, 2023 3 commits
    • Fix Gradle Lint with @RequiresApi and SDK version · 863b443a
      Gradle Lint doesn't recognise `checkState` assertion and TargetApi should only ever be used for suppressing a bug in Android Lint. Hence, we keep @RequiresApi and add an if-statement explicitly. Also, fixes >26 to >=26 for the version check.
      
      PiperOrigin-RevId: 555144577
      (cherry picked from commit 5720b6197479f3cd54b82d2e1e3ec9b50397e267)
      jbibik committed
    • Bump IMA SDK version to 3.30.3 · 33ad3c23
      #minor-change
      
      PiperOrigin-RevId: 555130308
      (cherry picked from commit afccebb8fcdd0722ed183ac6ad80ae9786141efc)
      rohks committed
    • Verify source is not released before updating ad playback state · b8e1a0b4
      Updates to the ad playback state are posted on the main handler,
      so they may arrive after the source has already been released
      (=the internal MediaSource is null). This can cause NPEs.
      
      PiperOrigin-RevId: 555102426
      (cherry picked from commit eb0e7aced70d16aec0f6b67c0bb5c290ab87be54)
      tonihei committed
  3. 10 Aug, 2023 1 commit
  4. 08 Aug, 2023 1 commit
    • Add field object type (ot) · 7f5c6765
      Added this CMCD-Object field to Common Media Client Data (CMCD) logging.
      
      #minor-release
      
      PiperOrigin-RevId: 554843305
      (cherry picked from commit f11106cbfe806f02e3bdb162cb62af2672911960)
      rohks committed
  5. 07 Aug, 2023 3 commits
  6. 01 Aug, 2023 2 commits
  7. 28 Jul, 2023 1 commit
    • Fix parsing of H.265 sequence parameter sets · 5875d4fe
      Fix short term reference picture list parsing. Before this change, `deltaPocS0`
      was derived by adding one to the value of the syntax element
      `delta_poc_s0_minus1`, but (maybe surprising) the specification actually says
      that `DeltaPocS0[stRpsIdx][i]` should be assigned the negation
      `-(delta_poc_s0_minus1[i] + 1)` on the first iteration, then that value added
      to the previous value on previous iterations. See equations (7-67) to (7-70) in
      the 2021-08 version of the H.265/HEVC specification.
      
      Also read the number of long term reference pictures once rather than on every
      loop iteration (subsection 7.3.2.2.1).
      
      PiperOrigin-RevId: 551852999
      (cherry picked from commit 2fe67266a1d13c69e09c37b0aadf6015bb37e7b7)
      andrewlewis committed
  8. 26 Jul, 2023 1 commit
  9. 24 Jul, 2023 1 commit
  10. 20 Jul, 2023 1 commit
    • Tighten the demo app's handling of `DrmInitData` for downloads · 96083199
      This code is Widevine specific. `OfflineLicenseHelper.downloadLicense`
      requires the passed `Format` to have a `DrmInitData.SchemeData` with
      Widevine UUID and non-null `data` field. The demo app tries to check
      this in advance (to avoid an exception later), but its checks are
      looser than those made by `OfflineLicenseHelper`. This change tightens
      the checks to match.
      
      Issue: androidx/media#512
      PiperOrigin-RevId: 549587506
      (cherry picked from commit b7988e2c856ca05e28d862c8a7c7739402d4d40d)
      ibaker committed
  11. 19 Jul, 2023 1 commit
    • Add field measured throughput (mtp) · 6c6d50d3
      Updated `ExoTrackSelection` to provide the most recent bitrate estimate, enabling the inclusion of measured throughput (mtp) as a CMCD-Request field in Common Media Client Data (CMCD) logging.
      
      Additionally, made changes to the `checkArgument` methods in `CmcdLog` to prevent the use of default values in certain cases.
      
      #minor-release
      
      PiperOrigin-RevId: 549369529
      (cherry picked from commit 79696182226b10dce2ac2756f317d217a8bcf23c)
      rohks committed
  12. 18 Jul, 2023 1 commit
  13. 17 Jul, 2023 1 commit
    • Fix race condition in clipped sample streams · 7feb2089
      The streams return end-of-input if they read no samples, but know that
      they are fully buffered to at least the clipped end time. This helps to
      detect the end of stream even if there are no new buffers after the end
      of the clip (e.g. for sparse metadata tracks).
      
      The race condition occurs because the buffered position is evaluated
      after reading the sample. So between reading "no sample" and checking
      the buffered position, the source may have loaded arbitrary amounts
      of data. This may lead to a situation where the source has not read
      all samples, reads NOTHING_READ (because the queue is empty) and then
      immediately returns end-of-stream (because the buffered position
      jumped forward), causing all remaining samples in the stream to be
      skipped. This can fixed by moving the buffered position check to
      before reading the sample, so that it never exceeds the buffered
      position at the time of reading "no sample".
      
      #minor-release
      
      PiperOrigin-RevId: 548646464
      (cherry picked from commit b3a7ff91d6f4c3454085fe28903f42ede3d03ac1)
      tonihei committed
  14. 14 Jul, 2023 3 commits
  15. 13 Jul, 2023 1 commit
  16. 12 Jul, 2023 1 commit
  17. 10 Jul, 2023 1 commit
  18. 06 Jul, 2023 3 commits
  19. 05 Jul, 2023 1 commit
    • Replace `BitArray.skipBytes()` with `BitArray.skipBits()` · 70e9a26f
      Based on the spec, ETSI TS 102 366 V1.4.1 Annex F, 6 bits should have skipped instead of 6 bytes.
      
      This correction was pointed out in Issue: androidx/media#474.
      
      PiperOrigin-RevId: 545658365
      (cherry picked from commit 0f5b2cf9facbc8adac0d115896792de8db955da2)
      rohks committed
  20. 04 Jul, 2023 1 commit
  21. 03 Jul, 2023 1 commit
  22. 30 Jun, 2023 2 commits
    • CEA-608: Only truncate to 32 visible characters · d876028a
      We introduced truncation to 32 chars in <unknown commit>
      and included indent and offset in the calculation. I think this is
      technically correct, but it causes problems with the content in
      Issue: google/ExoPlayer#11019 and it doesn't seem a problem to only truncate actual
      cue text (i.e. ignore offset and indent).
      
      #minor-release
      
      PiperOrigin-RevId: 544677965
      (cherry picked from commit d5e45209eeb7b3ce96cc9dcf32ea98bb42cf12ce)
      ibaker committed
    • Remove dead code in ProgressiveMediaSource.Builder · f729b6d8
      These fields cannot be set and the logic to handle them can be removed.
      
      PiperOrigin-RevId: 544646460
      (cherry picked from commit d5ba034e1f7435c55f52126be53a09a7f3bc37a9)
      tonihei committed
  23. 05 Jul, 2023 1 commit
  24. 28 Jun, 2023 2 commits
    • Ensure that ShuffleOrder has the same length as the current playlist · c033263d
      Add a fail-fast check in `ExoPlayerImpl` to ensure the equality of the lengths of `ShuffleOrder` and the current playlist. Also improve the documentation of `setShuffleOrder(ShuffleOrder)` with explicit instruction on this.
      
      Issue: androidx/media#480
      
      #minor-release
      
      PiperOrigin-RevId: 544009359
      (cherry picked from commit 9cabbc9badbc9301f5e13398b8444377c4e72543)
      tianyifeng committed
    • Clarify MediaPeriod.readDiscontinuity Javadoc · f6042d63
      It currently wrongly documents that it is only called before reading
      streams (that has never been the case and all MediaPeriods already need
      to handle calls after reading samples from the streams).
      
      It was also a bit unclear what a discontinuity implies and the new
      Javadoc calls out the main use case for discontinuties and the intended
      meaning of returning a discontinuity.
      
      #minor-release
      
      PiperOrigin-RevId: 543989124
      (cherry picked from commit 7530c45cb60f212d9d65c24f40a45fe666416ad5)
      tonihei committed
  25. 26 Jun, 2023 3 commits
  26. 22 Jun, 2023 1 commit
  27. 20 Jun, 2023 1 commit