From 5fc35a604559c0230ef220d96f668820d5b34cc8 Mon Sep 17 00:00:00 2001 From: sheenachhabra Date: Fri, 5 Apr 2024 08:44:09 -0700 Subject: [PATCH] Update release notes for 1.3.1 bug fix release PiperOrigin-RevId: 622189733 --- RELEASENOTES.md | 151 ++++++++++++++++++++++++++++-------------------- 1 file changed, 87 insertions(+), 64 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index a9afbed8d5..c70da55360 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -3,12 +3,7 @@ ### Unreleased changes * 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. * Add `BasePreloadManager` which coordinates the preloading for multiple sources based on the priorities defined by their `rankingData`. Customization is possible by extending this class. Add @@ -17,12 +12,6 @@ that indicates the index of an item on the UI. * Add `PlayerId` to most methods of `LoadControl` to enable `LoadControl` 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 no need to set this flag as renderers and decoders will decide to skip buffers based on timestamp. Custom `Renderer` implementations should @@ -39,8 +28,6 @@ * Add `audioConversionProcess` and `videoConversionProcess` to `ExportResult` indicating how the respective track in the output file 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. * Add support for changing between SDR and HDR input media in a sequence. * Add support for composition-level audio effects. @@ -48,48 +35,15 @@ * Fix issue where the `DefaultAudioMixer` doesn’t output the correct amount of bytes after being reset and reused. * 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: - * 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 - ([#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 switching surfaces mid-playback. * Text: - * WebVTT: Prevent directly consecutive cues from creating spurious - additional `CuesWithTiming` instances from `WebvttParser.parse` - ([#1177](https://github.com/androidx/media/issues/1177)). * Metadata: * Image: * 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: * Implement support for `android.resource://package/id` raw resource URIs 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 parameter was already annotated to be non-null. * Effect: - * Improved PQ to SDR tone-mapping by converting color spaces. * Support multiple speed changes within the same `EditedMediaItem` or `Composition` in `SpeedChangeEffect`. * Support for HLG and PQ output from ultra HDR bitmap input. @@ -113,17 +66,11 @@ * Muxers: * IMA extension: * 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 can stay false for controllers even if the associated command is available. * Add icon constants for `CommandButton` that should be used instead of 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 the service needs to be stopped in `onTaskRemoved()` ([#1219](https://github.com/androidx/media/issues/1219)). @@ -134,9 +81,6 @@ default implementation that keeps the service running in the foreground if playback is ongoing or stops the service otherwise. * UI: - * Fallback to include audio track language name if `Locale` cannot - identify a display name - ([#988](https://github.com/androidx/media/issues/988)). * Downloads: * Ensure that `DownloadHelper` doesn't leak unreleased `Renderer` instances, which can eventually result in an app crashing with @@ -147,17 +91,9 @@ * RTMP Extension: * HLS Extension: * DASH Extension: - * Populate all `Label` elements from the manifest into `Format.labels` - ([#1054](https://github.com/androidx/media/pull/1054)). * Smooth Streaming 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.): - * 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: * Cast Extension: * Test Utilities: @@ -176,6 +112,93 @@ ## 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) This release includes the following changes since the