1. 17 Apr, 2023 23 commits
  2. 13 Apr, 2023 4 commits
  3. 12 Apr, 2023 13 commits
    • Enable multidex for demo-gl app · 81fd9d28
      #minor-release
      
      PiperOrigin-RevId: 523708424
      rohks committed
    • Update comment on `Track.nalUnitLengthFieldLength` · 642d34ff
      This field is also non-zero for h.265 tracks.
      
      PiperOrigin-RevId: 523676455
      ibaker committed
    • Remove cache term from TestUtil methods · 61822012
      PiperOrigin-RevId: 523675327
      sheenachhabra committed
    • Rename misleading COMMAND_GET/SET_MEDIA_ITEMS_METADATA · c5baf238
      The setter command is only used for setPlaylistMetadata and can
      be named COMMAND_SET_PLAYLIST_METADATA. The getter commnad is
      used to access getMediaMetadata and getPlaylistMetadata and can
      be better named COMMAND_GET_METADATA to reflect this usage.
      
      PiperOrigin-RevId: 523673286
      tonihei committed
    • Channel mix to 16-bit int not float · affc2370
      Previously `ChannelMixingAudioProcessor` output float because it was
      implemented using the audio mixer's float mixing support.
      
      Move the implementation over to just using the `ChannelMixingMatrix` and make
      it publicly visible in the common module so it can be used by apps for both
      playback and export.
      
      Also resolve a TODO that no longer had a bug attached by implementing support
      for putting multiple mixing matrices to handle different input audio channel
      counts, and fix some nits in the test code.
      
      Tested via unit tests and manually configuring a `ChannelMixingAudioProcessor`
      in the transformer demo app and playing an audio stream that identifies
      channels, and verifying that they are remapped as expected.
      
      PiperOrigin-RevId: 523653901
      andrewlewis committed
    • Mark MediaController methods final to prevent accidental overrides · 2a6472f9
      It's currently not possible to even subclass MediaController because
      the constructor is package-private. To avoid any accidental usage or
      future indirect subclassing, all methods can be marked as final.
      
      PiperOrigin-RevId: 523648114
      tonihei committed
    • Precedence for app provided media button receiver · e54a9343
      This change selects the best suited media button receiver
      component and pending intent when creating the legacy
      session. This is important to ensure that a service can
      be started with a media button event from BT headsets
      after the app has been terminated.
      
      The `MediaSessionLegacyStub` selects the best suited
      receiver to be passed to the `MediaSessionCompat`
      constructor.
      
      1. When the app has declared a broadcast receiver for
       `ACTION_MEDIA_BUTTON` in the manifest, this broadcast
       receiver is used.
      2. When the session is housed in a service, the service
       component is used as a fallback.
      3. As a last resort a receiver is created at runtime.
      
      When the `MediaSessionLegacyStub` is released, the media
      button receiver is removed unless the app has provided a
      media button receiver in the manifest. In this case we
      assume the app supports resuming when the BT play intent
      arrives at `MediaSessionService.onStartCommand`.
      
      #minor-release
      
      Issue: androidx/media#167
      Issue: androidx/media#27
      Issue: androidx/media#314
      PiperOrigin-RevId: 523638051
      bachinger committed
    • Update available commands when setting a new player in MediaSession · ae875648
      #minor-release
      
      PiperOrigin-RevId: 523633865
      tonihei committed
    • Rename ExoTrackSelection.blacklist to excludeTrack · 7ee53219
      It is not possible to provide a safe deprecation path because
      BaseTrackSelection can't easily know which of the methods is
      implemented by subclasses.
      
      PiperOrigin-RevId: 523471578
      tonihei committed
    • Change format logged when AudioSink throws InitializationException · baf1aa1c
      Change what format is logged from MediaCodecAudioRenderer when
      AudioSink throws InitializationException. We printed the
      AudioSink's format, which most of the times is audio/raw (PCM)
      and not the renderer's format. With this change both formats are
      logged.
      
      #minor-release
      
      Issue: google/ExoPlayer#11066
      PiperOrigin-RevId: 523456840
      christosts committed
    • Remove setters for streamOffset. · 32be985c
      In addition to the changes in https://github.com/androidx/media/commit/3a5c4277a7679c488992d707142a7ad81e6de3ff
      
      This change essentially reverts https://github.com/androidx/media/commit/30e5bc9837e2423cd2bb426c5797211e0f6ad76b (Merged Jul 2022).
      
      From this CL on, `VideoFrameProcessor` takes in non-offset, monotonically
      increasing timestamps. For example, with one 5s and one 10s video,
      
      - `VideoFrameProcessor`'s input should start from 0
      - On switching to the second video (10s), the timestamp of the first frame in
        the second video should be at 5s.
      
      In ExoPlayer however, `streamOffset` is managed differently and thus needs
      correction before sending the frames to `VideoFrameProcessor`:
      - The timestamp of the first video is offset by a large int, so the first frame
        of the first media item has timestamp (assuming) 10000000000000000
      - The last frame of the first media item has 10000005000000000
      - At this point the stream off set is updated to 10000005000000000
      - The pts of the first frame of the second video starts from 0 again.
      
      PiperOrigin-RevId: 523444236
      claincly committed
    • HDR: Add HDR pixel tests. · acdb7ee9
      Implement HDR input support for texture output, and add HDR pixel tests.
      
      PiperOrigin-RevId: 523417701
      huangdarwin committed
    • Make PlayerView fold aware · 509830f3
      PiperOrigin-RevId: 523413988
      Googler committed