1. 05 Jan, 2022 3 commits
  2. 10 Dec, 2021 19 commits
  3. 07 Dec, 2021 18 commits
    • Add a builder to `DefaultAudioSink` · 341bb574
      `DefaultAudioSink` already has 3 telescoping
      constructors and an other one would be have been
      needed to add a buffer size tuning option.
      
      PiperOrigin-RevId: 414703366
      krocard committed
    • Fix how drop-to-keyframe events are recorded in `DecoderCounters` · dcc69056
      The existing code creates an imbalance between `inputBufferCount` and
      `droppedBufferCount` by adding 'dropped source buffers' to
      `droppedBufferCount` but not to `inputBufferCount`. This results in
      assertion failures in `DashTestRunner`.
      
      PiperOrigin-RevId: 414672175
      ibaker committed
    • Migrate usages of Timeline#getPeriodPosition to getPeriodPositionUs · 0b09ac5b
      #minor-release
      
      PiperOrigin-RevId: 414671861
      ibaker committed
    • Retry creating a MediaCodec instance in MediaCodecRenderer · 97294f06
      It's been observed that some devices fail when releasing a secure codec
      attached to a surface and immediately trying to create a new codec
      (secure or insecure) attached to the same surface. This change catches
      all exceptions thrown during codec creation, sleeps for a short time,
      and then retries the codec creation. This is observed to fix the problem
      (we believe this is because it allows enough time for some background
      part of the previous codec release operation to complete).
      
      This change should have no effect on the control flow when codec
      creation succeeds first time. It will introduce a slight delay when
      creating the preferred codec fails (while we sleep and retry), which
      will either delay propagating a permanent error or attempting to
      initialize a fallback decoder. We can't avoid the extra delay to
      instantiating the fallback decoder because we can't know whether we
      expect the second attempt to create the preferred decoder to succeed or
      fail. The benefit to always retrying the preferred decoder creation
      (fixing playback failures) outweighs the unfortunate additional delay
      to instantiating fallback decoders.
      
      Issue: google/ExoPlayer#8696
      #minor-release
      PiperOrigin-RevId: 414671743
      ibaker committed
    • GL: Document ambiguous parameter names in comments. · 07fdf0e7
      Also, made a few other refactoring changes for clarity. No functional
      changes intended.
      
      PiperOrigin-RevId: 414487729
      huangdarwin committed
    • Fix re-encoding after flattening · 94caa8ad
      The decoder is using the SVC NAL unit prefix data on some Samsung
      devices.
      
      PiperOrigin-RevId: 414457181
      kimvde committed
    • Remove setters for showing actions in Notification · 6bceec32
      PiperOrigin-RevId: 414441471
      jaewan committed
    • Various small improvements in Transformer · 5264da59
      PiperOrigin-RevId: 414428415
      kimvde committed
    • Add MediaItem.SubtitleConfiguration#id field · 59d98b9a
      Issue: google/ExoPlayer#9673
      
      #minor-release
      
      PiperOrigin-RevId: 414413320
      ibaker committed
    • Transformer GL: Create demo UI for changing resolution. · 1b0742f5
      Also, add 144p as an acceptable output resolution, to allow for
      a more obvious resolution difference when running the demo.
      
      PiperOrigin-RevId: 414406664
      huangdarwin committed
    • Add AudioAttributes.spatializationBehavior · e4e0c7bc
      The new field matches the platform's
      AudioAttributes.getSpatializationBehavior() API added in Sv2. At the
      moment, the platform API is called via reflection, until Sv2 is released
      and the compile SDK target can be increased to 32.
      
      PiperOrigin-RevId: 414406126
      christosts committed
    • Further media3 session cleanup · e765f7a8
      * Remove casting getInstance and getCallback methods and just
        use member variables that have the more specific types. I
        didn't manage to get rid of casting completely; there are
        still one-off casts during construction. We should look at
        removing those in the future, but it's not completely
        trivial due to the way the Impl classes back-reference
        their wrapping classes.
      * Move all callback invocations inside the Impl classes for
        consistency, and properly encapsulate the callbacks there.
        Sticking with the "OnHandler" naming convention for these
        methods, but we should probably tweak that in a subsequent
        change.
      * Encapsulate MediaItemFiller in MediaSessionImpl.
      * Some misc cleanup (e.g., converting anonymous inner classes
        to lambdas where possible).
      
      PiperOrigin-RevId: 414401978
      olly committed
    • Flatten Library and Session service impls · e59e15d2
      PiperOrigin-RevId: 414396999
      olly committed
    • Update androidx annotation-experimental version to 1.2-rc01 · f1ab3cf1
      This version includes several bug fixes related to the `@RequiresOptIn`
      annotation used for the `androidx.media3.util.UnstableApi` annotation
      in this project.
      
      PiperOrigin-RevId: 414384813
      ibaker committed
    • Remove built-in support for stop() in Notification · 21bbdb58
      PiperOrigin-RevId: 414321900
      jaewan committed
    • Fix condition for when to use the FrameEditor. · 8bd5d8bc
      outputHeight is the actual output height while
      transformation.outputHeight could be Format.NO_VALUE
      causing the FrameEditor to be used more often than
      necessary in the old version.
      
      PiperOrigin-RevId: 414304251
      hschlueter committed
    • Shorten log tags to 23 char limit · f2ad8ccd
      When calling Android's Log class directly, there's a LongLogTag
      lint check that detects tags over the 23 char limit, however it
      cannot detect long log tags in ExoPlayer due to the way that we
      log via our own Log class. This commit adds @Size annotations to
      enforce the same rule.
      
      PiperOrigin-RevId: 413976364
      olly committed
    • Apply MTK E-AC3 workaround before API 24 · aae9ebaa
      On the Sony Android TV device where this was originally reproducible on
      Android L, on Android N there is an E-AC3 decoder listed which handles
      the stream correctly. The workaround is harmless anyway but adding the
      API version restriction means it will be obvious it can be removed once
      we bump our min API to 24 or above in the future.
      
      PiperOrigin-RevId: 413967443
      andrewlewis committed