1. 15 Jun, 2022 4 commits
  2. 14 Jun, 2022 2 commits
  3. 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
  4. 09 Jun, 2022 8 commits
  5. 07 Jun, 2022 4 commits
  6. 31 May, 2022 7 commits
  7. 30 May, 2022 13 commits
    • Update the Gradle Wrapper and Android Gradle Plugin · 10a7e755
      The current verion of AGP warns it doesn't support Android API 32 [1].
      
      The wrapper was upgraded with ([instructions](https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapper)):
      ```shell
      $ ./gradlew wrapper --gradle-version 7.4.2 --distribution-type all
      ```
      
      [1]
      ```
      WARNING:We recommend using a newer Android Gradle plugin to use compileSdk = 32
      
      This Android Gradle plugin (7.0.3) was tested up to compileSdk = 31
      
      This warning can be suppressed by adding
          android.suppressUnsupportedCompileSdk=32
          to this project's gradle.properties
      
          The build will continue, but you are strongly encouraged to update your project to
          use a newer Android Gradle Plugin that has been tested with compileSdk = 32
      ```
      
      #minor-release
      
      PiperOrigin-RevId: 451893214
      (cherry picked from commit 7fc9bb9c)
      ibaker committed
    • Use fluent assertions · d1c3b051
      Gives a bit more information upon failures
      
      PiperOrigin-RevId: 451882968
      aquilescanta committed
    • Skip BitrateAnalysisTest if device is incapable. · d411461d
      Add bitrate check to the "can encode" criteria.
      
      PiperOrigin-RevId: 451868042
      claincly committed
    • Remove MediaMetadata.mediaUrl · 8e015c4f
      This value only existed to allow setting media URLs from external sources
      (e.g. in a MediaController) so that a player can start playing this item.
      Now that we have MediaItem.RequestMetadata.mediaUrl we can remove this value
      from MediaMetadata because it's request metadata, not media metadata.
      
      PiperOrigin-RevId: 451857413
      tonihei committed
    • Add RequestMetadata to MediaItem · 38248af5
      These fields can be used to transport additional request properties
      when the requester doesn't know the details needed for the actual
      playback (i.e. the LocalConfiguration).
      
      PiperOrigin-RevId: 451857093
      tonihei committed
    • Retain stream time offsets through codecs · 84efc5e8
      ExoPlayer applies a large time offset to buffers so that, if the input has negative timestamps, generally buffers seen by the decoders should have positive timestamps. Modify how the offset is handled in `Transformer` so that decoders and encoders generally see positive timestamps, by leaving the offset on samples when reading them in the base renderer (remove the code that removed the offset), and then removing the offset when muxing. Also update the frame processor chain and slow motion flattening code to retain the existing behavior after this change (these both need original media presentation timestamps)
      
      Tested via existing end-to-end tests and manually verified that the overlay frame processor shows the expected original media timestamps.
      
      Aside: we don't need the same logic as ExoPlayer to track stream offsets across the decoder yet, because we don't try to handle stream changes during playback in single asset editing. (There is an edge case of multi-period DASH that may not work but I doubt anyone will use that as input to `Transformer` before we change the code to handle multi-asset properly.) In future we should try to refactor interaction with the decoder to use the same code for Transformer and ExoPlayer.
      PiperOrigin-RevId: 451846055
      andrewlewis committed
    • Wrap framework AudioAttributes in new AudioAttributesV21 class · 6dd065a1
      PiperOrigin-RevId: 451831531
      ibaker committed
    • Treat pixels as unsigned and correct pixel count division. · 38720a6b
      PiperOrigin-RevId: 451428202
      samrobinson committed
    • Transformer: Add 8k24fps transform test. · 983e074f
      Most devices won't support 8k decoding, so they'll skip this test entirely.
      
      As the video is quite short, this test shouldn't be any longer than the nearby,
      long-running 4k60 test.
      
      PiperOrigin-RevId: 451423368
      huangdarwin committed
    • Clarify variables and improve documentation of SSIM. · 1becb45c
      PiperOrigin-RevId: 451392021
      samrobinson committed
    • Use updated test name in BUILD and docs. · a96dd2d4
      PiperOrigin-RevId: 451384408
      samrobinson committed
    • Unconditionally sleep for offload · 74c68b37
      Unconditionally sleep for offload, if the audio buffer is full.
      Previously ExoPlayer would not sleep if the expected wake-up was
      in 2s. This was to prevent underrun if the wake-up was delayed.
      
      Experiments have shown that the wakup audio buffer is far more
      than 2s (around 1min). Additionally,
      the metric was incorrect because it measured both,
      AudioTrack + DSP.
      
      Finally, this metric was erroneous after a gapless transition,
      when the head position would reset to 0 and thus the computed
      delay until next wakeup was too large.
      
      PiperOrigin-RevId: 451383701
      bachinger committed