Update androidx.media3 to v1.2.1 (#4216)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [androidx.media3:media3-ui](https://togithub.com/androidx/media) |
`1.1.1` -> `1.2.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-ui/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-ui/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-ui/1.1.1/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-ui/1.1.1/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-datasource-okhttp](https://togithub.com/androidx/media)
| `1.1.1` -> `1.2.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-datasource-okhttp/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-datasource-okhttp/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-datasource-okhttp/1.1.1/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-datasource-okhttp/1.1.1/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer-rtsp](https://togithub.com/androidx/media)
| `1.1.1` -> `1.2.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer-rtsp/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-exoplayer-rtsp/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-exoplayer-rtsp/1.1.1/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-exoplayer-rtsp/1.1.1/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer-hls](https://togithub.com/androidx/media)
| `1.1.1` -> `1.2.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer-hls/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-exoplayer-hls/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-exoplayer-hls/1.1.1/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-exoplayer-hls/1.1.1/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer-dash](https://togithub.com/androidx/media)
| `1.1.1` -> `1.2.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer-dash/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-exoplayer-dash/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-exoplayer-dash/1.1.1/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-exoplayer-dash/1.1.1/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer](https://togithub.com/androidx/media)
| `1.1.1` -> `1.2.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-exoplayer/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-exoplayer/1.1.1/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-exoplayer/1.1.1/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>androidx/media (androidx.media3:media3-ui)</summary>

###
[`v1.2.1`](https://togithub.com/androidx/media/blob/HEAD/RELEASENOTES.md#121-2024-01-09)

[Compare
Source](https://togithub.com/androidx/media/compare/1.2.0...1.2.1)

This release includes the following changes since the
[1.2.0 release](#&#8203;120-2023-11-15):

-   ExoPlayer:
    -   Fix issue where manual seeks outside of the
`LiveConfiguration.min/maxOffset` range keep adjusting the offset back
        to `min/maxOffset`.
- Fix issue that OPUS and VORBIS channel layouts are wrong for 3, 5, 6,
7
        and 8 channels
([#&#8203;8396](https://togithub.com/google/ExoPlayer/issues/8396)).
- Fix issue where track selections after seek to zero in a live stream
        incorrectly let the stream start at its default position
([#&#8203;9347](https://togithub.com/google/ExoPlayer/issues/9347)).
- Fix the issue where new instances of `CmcdData.Factory` were receiving
negative values for `bufferedDurationUs` from chunk sources, resulting
        in an `IllegalArgumentException`
        ([#&#8203;888](https://togithub.com/androidx/media/issues/888)).
-   Transformer:
- Work around an issue where the encoder would throw at configuration
time
        due to setting a high operating rate.
-   Extractors:
    -   Mark secondary (unplayable) HEVC tracks in JPEG motion photos as
`ROLE_FLAG_ALTERNATE` to prevent them being automatically selected for
        playback because of their higher resolution.
    -   Fix wrong keyframe detection for TS H264 streams
        ([#&#8203;864](https://togithub.com/androidx/media/pull/864)).
- Fix duration estimation of TS streams that are longer than 47721
seconds
        ([#&#8203;855](https://togithub.com/androidx/media/issues/855)).
-   Audio:
- Fix handling of EOS for `SilenceSkippingAudioProcessor` when called
multiple times
([#&#8203;712](https://togithub.com/androidx/media/issues/712)).
-   Video:
- Add workaround for a device issue on Galaxy Tab S7 FE, Chromecast with
Google TV, and Lenovo M10 FHD Plus that causes 60fps AVC streams to be
        marked as unsupported
        ([#&#8203;693](https://togithub.com/androidx/media/issues/693)).
-   Metadata:
- Fix bug where `MediaMetadata` was only populated from Vorbis comments
        with upper-case keys
        ([#&#8203;876](https://togithub.com/androidx/media/issues/876)).
- Catch `OutOfMemoryError` when parsing very large ID3 frames, meaning
playback can continue without the tag info instead of playback failing
        completely.
-   DRM:
- Extend workaround for spurious ClearKey `https://default.url` license
        URL to API 33+ (previously the workaround only applied on API 33
exactly) ([#&#8203;837](https://togithub.com/androidx/media/pull/837)).
- Fix `ERROR_DRM_SESSION_NOT_OPENED` when switching from encrypted to
clear content without a surface attached to the player. The error was
due to incorrectly using a secure decoder to play the clear content.
-   Session:
    -   Put the custom keys and values in `MediaMetadataCompat` to
        `MediaMetadata.extras` and `MediaMetadata.extras` to
        `MediaMetadataCompat`
        ([#&#8203;756](https://togithub.com/androidx/media/issues/756),
        [#&#8203;802](https://togithub.com/androidx/media/issues/802)).
    -   Fix broadcasting `notifyChildrenChanged` for legacy controllers
        ([#&#8203;644](https://togithub.com/androidx/media/issues/644)).
- Fix a bug where setting a negative time for a disabled `setWhen` timer
        of the notification caused a crash on some devices
        ([#&#8203;903](https://togithub.com/androidx/media/issues/903)).
- Fix `IllegalStateException` when the media notification controller
hasn't completed connecting when the first notification update is
requested
([#&#8203;917](https://togithub.com/androidx/media/issues/917)).
-   UI:
- Fix issue where forward and rewind buttons are not visible when used
        with Material Design in a BottomSheetDialogFragment
        ([#&#8203;511](https://togithub.com/androidx/media/issues/511)).
    -   Fix issue where the numbers in the fast forward button of the
        `PlayerControlView` were misaligned
        ([#&#8203;547](https://togithub.com/androidx/media/issues/547)).
-   DASH Extension:
    -   Parse "f800" as channel count of 5 for Dolby in DASH manifest
        ([#&#8203;688](https://togithub.com/androidx/media/issues/688)).
-   Decoder Extensions (FFmpeg, VP9, AV1, MIDI, etc.):
- MIDI: Fix issue where seeking forward skips the Program Change events
        ([#&#8203;704](https://togithub.com/androidx/media/issues/704)).
    -   Migrate to FFmpeg 6.0 and update supported NDK to `r26b`
        ([#&#8203;707](https://togithub.com/androidx/media/pull/707),
        [#&#8203;867](https://togithub.com/androidx/media/pull/867)).
-   Cast Extension:
- Sanitize creation of a `Timeline` to not crash the app when loading
        media fails on the cast device
        ([#&#8203;708](https://togithub.com/androidx/media/issues/708)).

###
[`v1.2.0`](https://togithub.com/androidx/media/blob/HEAD/RELEASENOTES.md#120-2023-11-15)

[Compare
Source](https://togithub.com/androidx/media/compare/1.1.1...1.2.0)

This release includes the following changes since the
[1.1.1 release](#&#8203;111-2023-08-14):

-   Common Library:
- Add a `@Nullable Throwable` parameter to the methods in the
`Log.Logger`
interface. The `message` parameter to these methods no longer contains
any information about the `Throwable` passed to the `Log.{d,i,w,e}()`
        methods, so implementations will need to manually append this
        information if desired (possibly using
        `Logger.appendThrowableString(String, Throwable)`).
- Fix Kotlin compatibility issue where nullable generic type parameters
and nullable array element types are not detected as nullable. Examples
        are `TrackSelectorResult` and `SimpleDecoder` method parameters
([#&#8203;6792](https://togithub.com/google/ExoPlayer/issues/6792)).
    -   Change default UI and notification behavior in
`Util.shouldShowPlayButton` to show a "play" button while playback is
temporarily suppressed (e.g. due to transient audio focus loss). The
        legacy behavior can be maintained by using
        `PlayerView.setShowPlayButtonIfPlaybackIsSuppressed(false)` or
`MediaSession.Builder.setShowPlayButtonIfPlaybackIsSuppressed(false)`
([#&#8203;11213](https://togithub.com/google/ExoPlayer/issues/11213)).
- Upgrade `androidx.annotation:annotation-experimental` to `1.3.1` to
fix
        https://issuetracker.google.com/251172715.
    -   Move `ExoPlayer.setAudioAttributes` to the `Player` interface.
-   ExoPlayer:
- Fix seeking issues in AC4 streams caused by not identifying
decode-only
        samples correctly
([#&#8203;11000](https://togithub.com/google/ExoPlayer/issues/11000)).
- Add suppression of playback on unsuitable audio output devices (e.g.
the
built-in speaker on Wear OS devices) when this feature is enabled via
`ExoPlayer.Builder.setSuppressPlaybackOnUnsuitableOutput`. The playback
        suppression reason will be updated as
`Player.PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT` if playback
is attempted when no suitable audio outputs are available, or if all
suitable outputs are disconnected during playback. The suppression
        reason will be removed when a suitable output is connected.
- Add `MediaSource.canUpdateMediaItem` and `MediaSource.updateMediaItem`
        to accept `MediaItem` updates after creation via
        `Player.replaceMediaItem(s)`.
- Allow `MediaItem` updates for all `MediaSource` classes provided by
the
        library via `Player.replaceMediaItem(s)`
        ([#&#8203;33](https://togithub.com/androidx/media/issues/33),
[#&#8203;9978](https://togithub.com/google/ExoPlayer/issues/9978)).
    -   Rename `MimeTypes.TEXT_EXOPLAYER_CUES` to
        `MimeTypes.APPLICATION_MEDIA3_CUES`.
- Add `PngExtractor` that sends and reads a whole PNG file into the
        `TrackOutput` as one sample.
    -   Enhance `SequenceableLoader.continueLoading(long)` method in the
        `SequenceableLoader` interface to
        `SequenceableLoader.continueLoading(LoadingInfo loadingInfo)`.
`LoadingInfo` contains additional parameters, including `playbackSpeed`
        and `lastRebufferRealtimeMs` in addition to the existing
        `playbackPositionUs`.
- Enhance `ChunkSource.getNextChunk(long, long, List, ChunkHolder)`
method
in the `ChunkSource` interface to `ChunkSource.getNextChunk(LoadingInfo,
        long, List, ChunkHolder)`.
- Add additional fields to Common Media Client Data (CMCD) logging:
buffer
starvation (`bs`), deadline (`dl`), playback rate (`pr`) and startup
(`su`)
([#&#8203;8699](https://togithub.com/google/ExoPlayer/issues/8699)).
    -   Add luma and chroma bitdepth to `ColorInfo`
        ([#&#8203;491](https://togithub.com/androidx/media/pull/491)).
- Add additional fields to Common Media Client Data (CMCD) logging: next
        object request (`nor`) and next range request (`nrr`)
([#&#8203;8699](https://togithub.com/google/ExoPlayer/issues/8699)).
- Add functionality to transmit Common Media Client Data (CMCD) data
using
query parameters
([#&#8203;553](https://togithub.com/androidx/media/issues/553)).
- Fix `ConcurrentModificationException` in `ExperimentalBandwidthMeter`
        ([#&#8203;612](https://togithub.com/androidx/media/issues/612)).
    -   Add `MediaPeriodId` parameter to
        `CompositeMediaSource.getMediaTimeForChildMediaTime`.
- Support `ClippingMediaSource` (and other sources with period/window
time
        offsets) in `ConcatenatingMediaSource2`
([#&#8203;11226](https://togithub.com/google/ExoPlayer/issues/11226)).
    -   Change `BaseRenderer.onStreamChanged()` to also receive a
        `MediaPeriodId` argument.
-   Transformer:
    -   Parse EXIF rotation data for image inputs.
    -   Remove `TransformationRequest.HdrMode` annotation type and its
associated constants. Use `Composition.HdrMode` and its associated
        constants instead.
    -   Simplify the `OverlaySettings` to fix rotation issues.
    -   Changed `frameRate` and `durationUs` parameters of
        `SampleConsumer.queueInputBitmap` to `TimestampIterator`.
-   Track Selection:
- Add
`DefaultTrackSelector.Parameters.allowAudioNonSeamlessAdaptiveness`
to explicitly allow or disallow non-seamless adaptation. The default
        stays at its current behavior of `true`.
-   Extractors:
- MPEG-TS: Ensure the last frame is rendered by passing the last access
        unit of a stream to the sample queue
([#&#8203;7909](https://togithub.com/google/ExoPlayer/issues/7909)).
    -   Fix typo when determining `rotationDegrees`. Changed
        `projectionPosePitch` to `projectionPoseRoll`
        ([#&#8203;461](https://togithub.com/androidx/media/pull/461)).
    -   Remove the assumption that `Extractor` instances can be directly
        inspected with `instanceof`. If you want runtime access to the
        implementation details of an `Extractor` you must first call
        `Extractor.getUnderlyingInstance`.
    -   Add `BmpExtractor`.
    -   Add `WebpExtractor`.
    -   Add `HeifExtractor`.
    -   Add
[QuickTime classic](https://developer.apple.com/standards/qtff-2001.pdf)
        support to `Mp4Extractor`.
-   Audio:
- Add support for 24/32-bit big-endian PCM in MP4 and Matroska, and
parse
        PCM encoding for `lpcm` in MP4.
    -   Add support for extracting Vorbis audio in MP4.
- Add `AudioSink.getFormatOffloadSupport(Format)` that retrieves level
of
        offload support the sink can provide for the format through a
        `DefaultAudioOffloadSupportProvider`. It returns the new
        `AudioOffloadSupport` that contains `isFormatSupported`,
        `isGaplessSupported`, and `isSpeedChangeSupported`.
- Add `AudioSink.setOffloadMode()` through which the offload
configuration
        on the audio sink is configured. Default is
        `AudioSink.OFFLOAD_MODE_DISABLED`.
    -   Offload can be enabled through `setAudioOffloadPreference` in
`TrackSelectionParameters`. If the set preference is to enable, the
device supports offload for the format, and the track selection is a
        single audio track, then audio offload will be enabled.
    -   If `audioOffloadModePreference` is set to
        `AUDIO_OFFLOAD_MODE_PREFERENCE_REQUIRED`, then the
`DefaultTrackSelector` will only select an audio track and only if that
track's format is supported in offload. If no audio track is supported
        in offload, then no track will be selected.
- Disabling gapless support for offload when pre-API level 33 due to
        playback position issue after track transition.
    -   Remove parameter `enableOffload` from
        `DefaultRenderersFactory.buildAudioSink` method signature.
    -   Remove method `DefaultAudioSink.Builder.setOffloadMode`.
    -   Remove intdef value
`DefaultAudioSink.OffloadMode.OFFLOAD_MODE_ENABLED_GAPLESS_DISABLED`.
    -   Add support for Opus gapless metadata during offload playback.
- Allow renderer recovery by disabling offload if failed at first write
        ([#&#8203;627](https://togithub.com/androidx/media/issues/627)).
- Enable Offload Scheduling by default for audio-only offloaded
playback.
    -   Delete `ExoPlayer.experimentalSetOffloadSchedulingEnabled` and
`AudioOffloadListener.onExperimentalOffloadSchedulingEnabledChanged`.
    -   Renamed `onExperimentalSleepingForOffloadChanged` as
`onSleepingForOffloadChanged` and `onExperimentalOffloadedPlayback` as
        `onOffloadedPlayback`.
- Move audio offload mode related `TrackSelectionParameters` interfaces
        and definitions to an inner `AudioOffloadPreferences` class.
- Add `onAudioTrackInitialized` and `onAudioTrackReleased` callbacks to
        `AnalyticsListener`, `AudioRendererEventListener` and
        `AudioSink.Listener`.
    -   Fix DTS Express audio buffer underflow issue
        ([#&#8203;650](https://togithub.com/androidx/media/pull/650)).
    -   Fix bug where the capabilities check for E-AC3-JOC throws an
        `IllegalArgumentException`
        ([#&#8203;677](https://togithub.com/androidx/media/issues/677)).
-   Video:
    -   Allow `MediaCodecVideoRenderer` to use a custom
        `VideoFrameProcessor.Factory`.
- Fix bug where the first frame couldn't be rendered if the audio stream
        starts with negative timestamps
        ([#&#8203;291](https://togithub.com/androidx/media/issues/291)).
-   Text:
- Remove `ExoplayerCuesDecoder`. Text tracks with `sampleMimeType =
application/x-media3-cues` are now directly handled by `TextRenderer`
        without needing a `SubtitleDecoder` instance.
-   Metadata:
- `MetadataDecoder.decode` will no longer be called for "decode-only"
        samples as the implementation must return null anyway.
-   Effect:
- Add `VideoFrameProcessor.queueInputBitmap(Bitmap, Iterator<Long>)`
        queuing bitmap input by timestamp.
- Change `VideoFrameProcessor.registerInputStream()` to be non-blocking.
        Apps must implement
        `VideoFrameProcessor.Listener#onInputStreamRegistered()`.
    -   Changed `frameRate` and `durationUs` parameters of
        `VideoFrameProcessor.queueInputBitmap` to `TimestampIterator`.
-   IMA extension:
- Fix bug where a multi-period DASH live stream that is not the first
item
        in a playlist can throw an exception
        ([#&#8203;571](https://togithub.com/androidx/media/issues/571)).
    -   Release StreamManager before calling `AdsLoader.destroy()`
    -   Bump IMA SDK version to 3.31.0.
-   Session:
    -   Set the notifications foreground service behavior to
`FOREGROUND_SERVICE_IMMEDIATE` in `DefaultMediaNotificationProvider`
        ([#&#8203;167](https://togithub.com/androidx/media/issues/167)).
    -   Use only
`android.media.session.MediaSession.setMediaButtonBroadcastReceiver()`
above API 31 to avoid problems with deprecated API on Samsung devices
        ([#&#8203;167](https://togithub.com/androidx/media/issues/167)).
- Use the media notification controller as proxy to set available
commands
and custom layout used to populate the notification and the platform
        session.
    -   Convert media button events that are received by
`MediaSessionService.onStartCommand()` within Media3 instead of routing
them to the platform session and back to Media3. With this, the caller
controller is always the media notification controller and apps can
easily recognize calls coming from the notification in the same way on
        all supported API levels.
- Fix bug where `MediaController.getCurrentPosition()` is not advancing
        when connected to a legacy `MediaSessionCompat`.
    -   Add `MediaLibrarySession.getSubscribedControllers(mediaId)` for
        convenience.
- Override `MediaLibrarySession.Callback.onSubscribe()` to assert the
availability of the parent ID for which the controller subscribes. If
successful, the subscription is accepted and `notifyChildrenChanged()`
        is called immediately to inform the browser
        ([#&#8203;561](https://togithub.com/androidx/media/issues/561)).
- Add session demo module for Automotive OS and enable session demo for
        Android Auto.
    -   Do not set the queue of the framework session when
`COMMAND_GET_TIMELINE` is not available for the media notification
controller. With Android Auto as the client controller reading from the
framework session, this has the effect that the `queue` button in the UI
        of Android Auto is not displayed
        ([#&#8203;339](https://togithub.com/androidx/media/issues/339)).
- Use `DataSourceBitmapLoader` by default instead of
`SimpleBitmapLoader`
        ([#&#8203;271](https://togithub.com/androidx/media/issues/271),
        [#&#8203;327](https://togithub.com/androidx/media/issues/327)).
- Add `MediaSession.Callback.onMediaButtonEvent(Intent)` that allows
apps
        to override the default media button event handling.
-   UI:
- Add a `Player.Listener` implementation for Wear OS devices that
handles
        playback suppression due to
        `Player.PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT` by
launching a system dialog to allow a user to connect a suitable audio
output (e.g. bluetooth headphones). The listener will auto-resume
playback if a suitable device is connected within a configurable timeout
        (default is 5 minutes).
-   Downloads:
- Declare "data sync" foreground service type for `DownloadService` for
Android 14 compatibility. When using this service, the app also needs to
add `dataSync` as `foregroundServiceType` in the manifest and add the
        `FOREGROUND_SERVICE_DATA_SYNC` permission
([#&#8203;11239](https://togithub.com/google/ExoPlayer/issues/11239)).
-   HLS Extension:
- Refresh the HLS live playlist with an interval calculated from the
last
        load start time rather than the last load completed time
        ([#&#8203;663](https://togithub.com/androidx/media/issues/663)).
-   DASH Extension:
- Allow multiple of the same DASH identifier in segment template url.
- Add experimental support for parsing subtitles during extraction. This
        has better support for merging overlapping subtitles, including
resolving flickering when transitioning between subtitle segments. You
        can enable this using
`DashMediaSource.Factory.experimentalParseSubtitlesDuringExtraction()`
        ([#&#8203;288](https://togithub.com/androidx/media/issues/288)).
-   RTSP Extension:
- Fix a race condition that could lead to `IndexOutOfBoundsException`
when
        falling back to TCP, or playback hanging in some situations.
    -   Check state in RTSP setup when returning loading state of
        `RtspMediaPeriod`
        ([#&#8203;577](https://togithub.com/androidx/media/issues/577)).
- Ignore custom Rtsp request methods in Options response public header
        ([#&#8203;613](https://togithub.com/androidx/media/issues/613)).
- Use RTSP Setup Response timeout value in time interval of sending
        keep-alive RTSP Options requests
        ([#&#8203;662](https://togithub.com/androidx/media/issues/662)).
-   Decoder Extensions (FFmpeg, VP9, AV1, MIDI, etc.):
- Release the MIDI decoder module, which provides support for playback
of
        standard MIDI files using the Jsyn library to synthesize audio.
- Add `DecoderOutputBuffer.shouldBeSkipped` to directly mark output
        buffers that don't need to be presented. This is preferred over
        `C.BUFFER_FLAG_DECODE_ONLY` that will be deprecated.
    -   Add `Decoder.setOutputStartTimeUs` and
`SimpleDecoder.isAtLeastOutputStartTimeUs` to allow decoders to drop
decode-only samples before the start time. This should be preferred to
        `Buffer.isDecodeOnly` that will be deprecated.
- Fix bug publishing MIDI decoder artifact to Maven repository. The
        artifact is renamed to `media3-exoplayer-midi`
        ([#&#8203;734](https://togithub.com/androidx/media/issues/734)).
-   Leanback extension:
- Fix bug where disabling a surface can cause an `ArithmeticException`
in
Leanback code
([#&#8203;617](https://togithub.com/androidx/media/issues/617)).
-   Test Utilities:
- Make `TestExoPlayerBuilder` and `FakeClock` compatible with Espresso
UI
tests and Compose UI tests. This fixes a bug where playback advances
non-deterministically during Espresso or Compose view interactions.
-   Remove deprecated symbols:
    -   Remove
`TransformationRequest.Builder.setEnableRequestSdrToneMapping(boolean)`
        and

`TransformationRequest.Builder.experimental_setEnableHdrEditing(boolean)`.
Use `Composition.Builder.setHdrMode(int)` and pass the `Composition` to
        `Transformer.start(Composition, String)` instead.
- Remove deprecated
`DownloadNotificationHelper.buildProgressNotification`
method, use a non deprecated method that takes a `notMetRequirements`
        parameter instead.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/tuskyapp/Tusky).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIwMC4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This commit is contained in:
renovate[bot] 2024-02-23 11:17:17 +01:00 committed by GitHub
parent 5d52f0985e
commit e8369c1d2a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 1 additions and 1 deletions

View File

@ -10,7 +10,7 @@ androidx-exifinterface = "1.3.7"
androidx-fragment = "1.6.2"
androidx-junit = "1.1.5"
androidx-lifecycle = "2.6.2"
androidx-media3 = "1.1.1"
androidx-media3 = "1.2.1"
androidx-paging = "3.2.1"
androidx-preference = "1.2.1"
androidx-recyclerview = "1.3.0"