Update release notes for 1.3.1 bug fix release

PiperOrigin-RevId: 622189733
This commit is contained in:
sheenachhabra 2024-04-05 08:44:09 -07:00 committed by Copybara-Service
parent 28c70e5e54
commit 5fc35a6045

View File

@ -3,12 +3,7 @@
### Unreleased changes ### Unreleased changes
* Common Library: * Common Library:
* Add `Format.labels` to allow localized or other alternative labels.
* ExoPlayer: * ExoPlayer:
* Fix issue where `PreloadMediaPeriod` cannot retain the streams when it
is preloaded again.
* Apply the correct corresponding `TrackSelectionResult` to the playing
period in track reselection.
* Add `BasePreloadManager` which coordinates the preloading for multiple * Add `BasePreloadManager` which coordinates the preloading for multiple
sources based on the priorities defined by their `rankingData`. sources based on the priorities defined by their `rankingData`.
Customization is possible by extending this class. Add Customization is possible by extending this class. Add
@ -17,12 +12,6 @@
that indicates the index of an item on the UI. that indicates the index of an item on the UI.
* Add `PlayerId` to most methods of `LoadControl` to enable `LoadControl` * Add `PlayerId` to most methods of `LoadControl` to enable `LoadControl`
implementations to support multiple players. implementations to support multiple players.
* Start early-enabled renderers only after advancing the playing period
when transitioning between media items
([#1017](https://github.com/androidx/media/issues/1017)).
* Add missing return type to proguard `-keepclasseswithmembers` rule for
`DefaultVideoFrameProcessor.Factory.Builder.build()`
([#1187](https://github.com/androidx/media/issues/1187)).
* Remove `Buffer.isDecodeOnly()` and `C.BUFFER_FLAG_DECODE_ONLY`. There is * Remove `Buffer.isDecodeOnly()` and `C.BUFFER_FLAG_DECODE_ONLY`. There is
no need to set this flag as renderers and decoders will decide to skip no need to set this flag as renderers and decoders will decide to skip
buffers based on timestamp. Custom `Renderer` implementations should buffers based on timestamp. Custom `Renderer` implementations should
@ -39,8 +28,6 @@
* Add `audioConversionProcess` and `videoConversionProcess` to * Add `audioConversionProcess` and `videoConversionProcess` to
`ExportResult` indicating how the respective track in the output file `ExportResult` indicating how the respective track in the output file
was made. was made.
* Add workaround for exception thrown due to `MediaMuxer` not supporting
negative presentation timestamps before API 30.
* Relax trim optimization H.264 level checks. * Relax trim optimization H.264 level checks.
* Add support for changing between SDR and HDR input media in a sequence. * Add support for changing between SDR and HDR input media in a sequence.
* Add support for composition-level audio effects. * Add support for composition-level audio effects.
@ -48,48 +35,15 @@
* Fix issue where the `DefaultAudioMixer` doesnt output the correct * Fix issue where the `DefaultAudioMixer` doesnt output the correct
amount of bytes after being reset and reused. amount of bytes after being reset and reused.
* Track Selection: * Track Selection:
* `DefaultTrackSelector`: Prefer video tracks with a 'reasonable' frame
rate (>=10fps) over those with a lower or unset frame rate. This ensures
the player selects the 'real' video track in MP4s extracted from motion
photos that can contain two HEVC tracks where one has a higher
resolution but a very small number of frames
([#1051](https://github.com/androidx/media/issues/1051)).
* Extractors: * Extractors:
* MP3: Populate `Format.averageBitrate` from metadata frames such as
`XING` and `VBRI`.
* MPEG-TS: Revert a change that aimed to ensure the last frame is rendered
by passing the last access unit of a stream to the sample queue
([#7909](https://github.com/google/ExoPlayer/issues/7909)). This is due
to the change causing new problems with I-frame only HLS streams
([#1150](https://github.com/google/ExoPlayer/issues/1150)) and H.262 HLS
streams ([#1126](https://github.com/google/ExoPlayer/issues/1126)).
* Audio: * Audio:
* Allow renderer recovery by disabling offload if audio track fails to
initialize in offload mode.
* Video: * Video:
* Add workaround for a device issue on Galaxy Tab S7 FE, Chromecast with
Google TV, and Lenovo M10 FHD Plus that causes 60fps H265 streams to be
marked as unsupported
([#966](https://github.com/androidx/media/issues/966)).
* Add workaround that ensures the first frame is always rendered while
tunneling even if the device does not do this automatically as required
by the API ([#1169](https://github.com/androidx/media/issues/1169)).
* Fix issue where HDR color info handling causes codec mishavior and
prevents adaptive format switches for SDR video tracks
([#1158](https://github.com/androidx/media/issues/1158)).
* Fix issue where `Listener.onRenderedFirstFrame()` arrives too early when * Fix issue where `Listener.onRenderedFirstFrame()` arrives too early when
switching surfaces mid-playback. switching surfaces mid-playback.
* Text: * Text:
* WebVTT: Prevent directly consecutive cues from creating spurious
additional `CuesWithTiming` instances from `WebvttParser.parse`
([#1177](https://github.com/androidx/media/issues/1177)).
* Metadata: * Metadata:
* Image: * Image:
* DRM: * DRM:
* Work around a `NoSuchMethodError` which can be thrown by the `MediaDrm`
framework instead of `ResourceBusyException` or
`NotProvisionedException` on some Android 14 devices
([#1145](https://github.com/androidx/media/issues/1145)).
* DataSource: * DataSource:
* Implement support for `android.resource://package/id` raw resource URIs * Implement support for `android.resource://package/id` raw resource URIs
where `package` is different to the package of the current application. where `package` is different to the package of the current application.
@ -98,7 +52,6 @@
* Eagerly check `url` is non-null in the `DataSpec` constructors. This * Eagerly check `url` is non-null in the `DataSpec` constructors. This
parameter was already annotated to be non-null. parameter was already annotated to be non-null.
* Effect: * Effect:
* Improved PQ to SDR tone-mapping by converting color spaces.
* Support multiple speed changes within the same `EditedMediaItem` or * Support multiple speed changes within the same `EditedMediaItem` or
`Composition` in `SpeedChangeEffect`. `Composition` in `SpeedChangeEffect`.
* Support for HLG and PQ output from ultra HDR bitmap input. * Support for HLG and PQ output from ultra HDR bitmap input.
@ -113,17 +66,11 @@
* Muxers: * Muxers:
* IMA extension: * IMA extension:
* Session: * Session:
* Fix issue where the current position jumps back when the controller
replaces the current item
([#951](https://github.com/androidx/media/issues/951)).
* Change default of `CommandButton.enabled` to `true` and ensure the value * Change default of `CommandButton.enabled` to `true` and ensure the value
can stay false for controllers even if the associated command is can stay false for controllers even if the associated command is
available. available.
* Add icon constants for `CommandButton` that should be used instead of * Add icon constants for `CommandButton` that should be used instead of
custom icon resources. custom icon resources.
* Fix issue where `MediaMetadata` with just non-null `extras` is not
transmitted between media controllers and sessions
([#1176](https://github.com/androidx/media/issues/1176)).
* Add `MediaSessionService.isPlaybackOngoing()` to let apps query whether * Add `MediaSessionService.isPlaybackOngoing()` to let apps query whether
the service needs to be stopped in `onTaskRemoved()` the service needs to be stopped in `onTaskRemoved()`
([#1219](https://github.com/androidx/media/issues/1219)). ([#1219](https://github.com/androidx/media/issues/1219)).
@ -134,9 +81,6 @@
default implementation that keeps the service running in the foreground default implementation that keeps the service running in the foreground
if playback is ongoing or stops the service otherwise. if playback is ongoing or stops the service otherwise.
* UI: * UI:
* Fallback to include audio track language name if `Locale` cannot
identify a display name
([#988](https://github.com/androidx/media/issues/988)).
* Downloads: * Downloads:
* Ensure that `DownloadHelper` doesn't leak unreleased `Renderer` * Ensure that `DownloadHelper` doesn't leak unreleased `Renderer`
instances, which can eventually result in an app crashing with instances, which can eventually result in an app crashing with
@ -147,17 +91,9 @@
* RTMP Extension: * RTMP Extension:
* HLS Extension: * HLS Extension:
* DASH Extension: * DASH Extension:
* Populate all `Label` elements from the manifest into `Format.labels`
([#1054](https://github.com/androidx/media/pull/1054)).
* Smooth Streaming Extension: * Smooth Streaming Extension:
* RTSP Extension: * RTSP Extension:
* Skip empty session information values (i-tags) in SDP parsing
([#1087](https://github.com/androidx/media/issues/1087)).
* Decoder Extensions (FFmpeg, VP9, AV1, MIDI, etc.): * Decoder Extensions (FFmpeg, VP9, AV1, MIDI, etc.):
* Disable the MIDI extension as a local dependency by default because it
requires an additional Maven repository to be configured. Users who need
this module from a local dependency
[can re-enable it](https://github.com/androidx/media/blob/main/README.md#midi-module).
* Leanback extension: * Leanback extension:
* Cast Extension: * Cast Extension:
* Test Utilities: * Test Utilities:
@ -176,6 +112,93 @@
## 1.3 ## 1.3
### 1.3.1 (2024-04-11)
This release includes the following changes since the
[1.3.0 release](#130-2024-03-06):
* Common Library:
* Add `Format.labels` to allow localized or other alternative labels.
* ExoPlayer:
* Fix issue where `PreloadMediaPeriod` cannot retain the streams when it
is preloaded again.
* Apply the correct corresponding `TrackSelectionResult` to the playing
period in track reselection.
* Start early-enabled renderers only after advancing the playing period
when transitioning between media items
([#1017](https://github.com/androidx/media/issues/1017)).
* Add missing return type to proguard `-keepclasseswithmembers` rule for
`DefaultVideoFrameProcessor.Factory.Builder.build()`
([#1187](https://github.com/androidx/media/issues/1187)).
* Transformer:
* Add workaround for exception thrown due to `MediaMuxer` not supporting
negative presentation timestamps before API 30.
* Track Selection:
* `DefaultTrackSelector`: Prefer video tracks with a 'reasonable' frame
rate (>=10fps) over those with a lower or unset frame rate. This ensures
the player selects the 'real' video track in MP4s extracted from motion
photos that can contain two HEVC tracks where one has a higher
resolution but a very small number of frames
([#1051](https://github.com/androidx/media/issues/1051)).
* Extractors:
* Fix issue where padding was not skipped when reading odd-sized chunks
from WAV files ([#1117](https://github.com/androidx/media/pull/1117)).
* MP3: Populate `Format.averageBitrate` from metadata frames such as
`XING` and `VBRI`.
* MPEG-TS: Revert a change that aimed to ensure the last frame is rendered
by passing the last access unit of a stream to the sample queue
([#7909](https://github.com/google/ExoPlayer/issues/7909)). This is due
to the change causing new problems with I-frame only HLS streams
([#1150](https://github.com/google/ExoPlayer/issues/1150)) and H.262 HLS
streams ([#1126](https://github.com/google/ExoPlayer/issues/1126)).
* Audio:
* Allow renderer recovery by disabling offload if audio track fails to
initialize in offload mode.
* Video:
* Add workaround for a device issue on Galaxy Tab S7 FE, Chromecast with
Google TV, and Lenovo M10 FHD Plus that causes 60fps H265 streams to be
marked as unsupported
* Add workaround that ensures the first frame is always rendered while
tunneling even if the device does not do this automatically as required
by the API ([#1169](https://github.com/androidx/media/issues/1169)).
([#966](https://github.com/androidx/media/issues/966)).
* Fix issue where HDR color info handling causes codec misbehavior and
prevents adaptive format switches for SDR video tracks
([#1158](https://github.com/androidx/media/issues/1158)).
* Text:
* WebVTT: Prevent directly consecutive cues from creating spurious
additional `CuesWithTiming` instances from `WebvttParser.parse`
([#1177](https://github.com/androidx/media/issues/1177)).
* DRM:
* Work around a `NoSuchMethodError` which can be thrown by the `MediaDrm`
framework instead of `ResourceBusyException` or
`NotProvisionedException` on some Android 14 devices
([#1145](https://github.com/androidx/media/issues/1145)).
* Effect:
* Improved PQ to SDR tone-mapping by converting color spaces.
* Session:
* Fix issue where the current position jumps back when the controller
replaces the current item
([#951](https://github.com/androidx/media/issues/951)).
* Fix issue where `MediaMetadata` with just non-null `extras` is not
transmitted between media controllers and sessions
([#1176](https://github.com/androidx/media/issues/1176)).
* UI:
* Fallback to include audio track language name if `Locale` cannot
identify a display name
([#988](https://github.com/androidx/media/issues/988)).
* DASH Extension:
* Populate all `Label` elements from the manifest into `Format.labels`
([#1054](https://github.com/androidx/media/pull/1054)).
* RTSP Extension:
* Skip empty session information values (i-tags) in SDP parsing
([#1087](https://github.com/androidx/media/issues/1087)).
* Decoder Extensions (FFmpeg, VP9, AV1, MIDI, etc.):
* Disable the MIDI extension as a local dependency by default because it
requires an additional Maven repository to be configured. Users who need
this module from a local dependency
[can re-enable it](https://github.com/androidx/media/blob/main/README.md#midi-module).
### 1.3.0 (2024-03-06) ### 1.3.0 (2024-03-06)
This release includes the following changes since the This release includes the following changes since the