1. 10 Dec, 2021 11 commits
  2. 08 Dec, 2021 5 commits
    • Add a builder to `DefaultAudioSink` · 97206b9c
      `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` · 0f48dfc9
      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 · 5c2f6186
      #minor-release
      
      PiperOrigin-RevId: 414671861
      ibaker committed
    • Retry creating a MediaCodec instance in MediaCodecRenderer · 07352a45
      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. · fcdb96f0
      Also, made a few other refactoring changes for clarity. No functional changes
      intended.
      
      PiperOrigin-RevId: 414487729
      huangdarwin committed
  3. 07 Dec, 2021 6 commits
  4. 06 Dec, 2021 13 commits
  5. 02 Dec, 2021 5 commits
    • Prohibit duplicate TrackGroups in TrackGroupArray · 8c90ba5d
      Allowing duplicate groups caused some other code working with the
      array to use reference equality comparison. This is error-prone,
      easily forgotten (e.g. when using the TrackGroups in a map) and
      causes bugs when TrackGroups are serialized to disk or to another
      process.
      
      All TrackGroups created by ExoPlayer are already unique and custom
      code creating TrackGroupArrays with identical groups can easily
      distringuish them by adding an id to each group.
      
      Issue: google/ExoPlayer#9718
      PiperOrigin-RevId: 413617005
      tonihei committed
    • Update javadoc to reflect removal of WebM container option · 7e82225f
      It seems fine to remove the documentation about the WebM case now we are only supporting unfragmented MP4, so that new users coming to this API aren't confused about how to set the container MIME type.
      
      PiperOrigin-RevId: 413611472
      andrewlewis committed
    • Add optional id to TrackGroup. · d53d51d5
      This allows to give TrackGroups an identifier. The underlying goal is
      to provide a way to make otherwise identical TrackGroups
      distinguishable.
      
      Also set this id in all internal sources that may produce identical
      TrackGroups in certain edge cases.
      
      Issue: google/ExoPlayer#9718
      PiperOrigin-RevId: 413430719
      tonihei committed
    • Transformer GL: Create setTransformationMatrix(). · 0578b2e4
      Allows a transformation matrix to be input into Transformer,
      to apply vertex transformations like cropping, rotation,
      and other transformations built into android.graphics.Matrix.
      
      Not building out into a VertexTransformation class yet, as
      that class structure wouldn't make sense until we can modify
      resolution, per TODOs.
      
      PiperOrigin-RevId: 413384409
      huangdarwin committed
    • Increase transformer min API version to 21 · 34975a7a
      This will remove the need to implement compat code handling very old API
      versions where some symbols are not available, and it reduces the burden of
      dealing with media framework issues around concurrent codec usage that are
      worse on older API versions. Top apps that we've surveyed as potential users
      for transformer library features are using API 21 or later.
      
      PiperOrigin-RevId: 413341540
      andrewlewis committed