1. 08 Aug, 2022 27 commits
  2. 21 Jul, 2022 13 commits
    • Modify release date for 2.18.1 and media3:1.0.0-beta02 · 26c8478d
      Also rearranged release notes to correctly show when the changes were released.
      
      #minor-release
      
      PiperOrigin-RevId: 462361982
      rohks committed
    • Ensure pending commands are still sent in MediaController.release() · ee209690
      We currently clear all pending messages, including the one that flushes
      pending commands to the MediaSession. To ensure all commands that have
      been called before controller.release() are still sent, we can manually
      trigger the flush message from the release call.
      
      Related to handling the final flush because disconnecting the controller,
      MediaSessionStub didn't post the removal of the controller to the
      session thread, creating a race condition between removing the controller
      and actually handling the flush.
      
      Issue: androidx/media#99
      PiperOrigin-RevId: 462342860
      tonihei committed
    • Slightly disentangle `MediaBrowser/Controller(Impl)Base/Legacy` · 287c7579
      These constructors are currently very intertwined, passing `this`
      references from the constructor of one to the constructor of another
      before the first constructor is complete (and so the `this` reference
      isn't really valid yet).
      
      This change uses checker framework `@UnderInitialization` and
      `@NotOnlyInitialized` annotations to make it more clear that the
      references are not available yet. For the one 'direct' access needed
      in the second constructor (calling `getApplicationLooper()`) we now
      pass the `applicationLooper` directly alongside (to avoid needing to
      dereference the reference 'too early').
      
      This change also ensures that where a class hierarchy has a
      'dependent' class hierarchy, the 'subclass' instance is always used
      (by both subclass and superclass) without casting or manually hiding
      the superclass field, by defining an overridable `getFoo()` method
      instead and always using it.
      
      #minor-release
      
      PiperOrigin-RevId: 462335043
      ibaker committed
    • HDR: Implement HLG EOTF and OETF. · 2f977eee
      This allows us to use BT.2020 RGB linear for intermediate shaders, which also
      allows us to re-enable PeriodicVignetteProcessor, which should work properly in
      linear color-spaces.
      
      Manually tested by adding a GlEffectsWrapper, and confirming that HLG HDR editing still looks correct.
      
      PiperOrigin-RevId: 462265821
      huangdarwin committed
    • Add ContrastProcessor for contrast adjustments. · 714edc93
      PiperOrigin-RevId: 462232813
      olly committed
    • Rename seq to sequenceNumber in MediaSessionStub · 4a4a74ed
      "seq" is not a well-defined abbreviation and the value is
      also an integer, so sequenceNumber is better than just sequence.
      
      PiperOrigin-RevId: 462129581
      tonihei committed
    • Make DefaultMediaNotificationProvider more configurable · 436ff6d8
      Add a Builder to constructor DefaultMediaNotificationProvider. The
      Builder can also set the provider's:
      - notification ID
      - notification channel ID
      - notification channel name
      
      The change adds an API for apps to set the small icon in notifications.
      
      #minor-release
      Issue: androidx/media#104
      PiperOrigin-RevId: 462111536
      christosts committed
    • Run MediaSessionStub commands in order · 7cb7636e
      Some commands are run asynchronously and subsequent commands need
      to wait until the previous one finished. This can be supported
      by returning a Future for each command and using the existing
      command execution logic to wait for each Future to complete.
      
      As some MediaSessionStub code is now executed delayed to when it
      was originally created, we also need to check if the session is
      not released before triggering any actions or sending result codes.
      
      Issue: androidx/media#85
      PiperOrigin-RevId: 462101136
      tonihei committed
    • Properly chain commands in MediaSessionStub · 45f1f5b3
      The commands currently use a task and a postTask that are chained
      together manually. In some cases, e.g. when adding MediaItems,
      the postTask is already a chain of commands in itself.
      
      To allow using the entire command handling as a single task
      (for simplified queueing), we can change the implementation to
      always create a single task. If multiple subtasks need to be
      chained together, we can do that by wrapping the method calls.
      In case a task is asynchronous, we can also use Futures to
      chain them together.
      
      Overall, this is just a refactoring and changes no logic.
      
      Issue: androidx/media#85
      PiperOrigin-RevId: 462085724
      tonihei committed
    • Add @code tags to DefaultDataSource javadoc · ac300c4a
      #minor-release
      
      PiperOrigin-RevId: 461902089
      ibaker committed
    • Add Util helper methods to work with Futures · f9eec0c0
      This adds two methods that are helpful when working with Futures.
      One is a version of postOrRun that can indicate completion by a
      Future and the other is a simplified version of Guava's
      Futures.transformAsync (which can't be used as it's in Beta).
      
      PiperOrigin-RevId: 461896598
      tonihei committed
    • Exclude tracks if COMMAND_GET_TRACKS is not available · 5bf9e2fb
      Issue: androidx/media#102
      #minor-release
      PiperOrigin-RevId: 461891031
      bachinger committed
    • Remove okhttp related proguard rules · 5adf708b
      Issue: androidx/media#10310
      #minor-release
      PiperOrigin-RevId: 461889651
      bachinger committed