diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 77227fbcae..d10f149eb4 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -2,32 +2,47 @@ ### Unreleased changes -* Core library: - * Add suppression reason for unsuitable audio route and play when ready +* Core library: + * Add suppression reason for unsuitable audio route and play when ready change reason for suppressed too long. ([#15](https://github.com/androidx/media/issues/15)). - * Make the maximum difference of the start time of two segments to be - merged configurable in `SegmentDownloader` and subclasses - ([#248](https://github.com/androidx/media/pull/248)). - * Add `ExoPlayer.setVideoEffects()` for using `Effect` during video + * Add `ExoPlayer.setVideoEffects()` for using `Effect` during video playback. - * Update `SampleQueue` to store `sourceId` as a `long` rather than an + * Update `SampleQueue` to store `sourceId` as a `long` rather than an `int`. This changes the signatures of public methods `SampleQueue.sourceId` and `SampleQueue.peekSourceId`. - * Fix network type detection on API 33 - ([#10970](https://github.com/google/ExoPlayer/issues/10970)). - * Make the maximum difference of the start time of two segments to be - merged configurable in `SegmentDownloader` and subclasses - ([#248](https://github.com/androidx/media/pull/248)). -* Extractors: - * Fix `NullPointerException` when calling `ExoPlayer.isTunnelingEnabled` - ([#10977](https://github.com/google/ExoPlayer/issues/10977)). -* Audio: +* Audio: * Fix bug where some playbacks fail when tunneling is enabled and `AudioProcessors` are active, e.g. for gapless trimming ([#10847](https://github.com/google/ExoPlayer/issues/10847)). * Encapsulate Opus frames in Ogg packets in direct playbacks (offload). - * Fix broken gapless MP3 playback on Samsung devices +* Transformer: + * Remove `Transformer.Builder.setMediaSourceFactory(MediaSource.Factory)`. + Use `ExoPlayerAssetLoader.Factory(MediaSource.Factory)` and + `Transformer.Builder.setAssetLoaderFactory(AssetLoader.Factory)` + instead. + * Remove `Transformer.startTransformation(MediaItem, + ParcelFileDescriptor)`. +* Remove deprecated symbols: + * Remove `DefaultAudioSink` constructors, use `DefaultAudioSink.Builder` + instead. + +### 1.0.0-rc02 (2023-03-02) + +This release corresponds to the +[ExoPlayer 2.18.4 release](https://github.com/google/ExoPlayer/releases/tag/r2.18.4). + +* Core library: + * Fix network type detection on API 33 + ([#10970](https://github.com/google/ExoPlayer/issues/10970)). + * Fix `NullPointerException` when calling `ExoPlayer.isTunnelingEnabled` + ([#10977](https://github.com/google/ExoPlayer/issues/10977)). +* Downloads: + * Make the maximum difference of the start time of two segments to be + merged configurable in `SegmentDownloader` and subclasses + ([#248](https://github.com/androidx/media/pull/248)). +* Audio: + * Fix broken gapless MP3 playback on Samsung devices ([#8594](https://github.com/google/ExoPlayer/issues/8594)). * Fix bug where playback speeds set immediately after disabling audio may be overridden by a previous speed change @@ -35,51 +50,29 @@ * Video: * Map HEVC HDR10 format to `HEVCProfileMain10HDR10` instead of `HEVCProfileMain10`. - * Add workaround for a device issue on Chromecast with Google TV and + * Add workaround for a device issue on Chromecast with Google TV and Lenovo M10 FHD Plus that causes 60fps AVC streams to be marked as unsupported ([#10898](https://github.com/google/ExoPlayer/issues/10898)). -* DASH: - * Add full parsing for image adaptation sets, including tile counts - ([#3752](https://github.com/google/ExoPlayer/issues/3752)). -* RTSP: - * Catch the IllegalArgumentException thrown in parsing of invalid RTSP - Describe response messages - ([#10971](https://github.com/google/ExoPlayer/issues/10971)). -* Session: - * Fix a bug where notification play/pause button doesn't update with - player state ([#192](https://github.com/androidx/media/issues/192)). - * Fix a bug where notification play/pause button doesn't update with - player state ([#192](https://github.com/androidx/media/issues/192)). + * Fix frame release performance issues when playing media with a frame + rate far higher than the screen refresh rate. +* Cast: + * Fix transient `STATE_IDLE` when transitioning between media items + ([#245](https://github.com/androidx/media/issues/245)). * RTSP: * Catch the IllegalArgumentException thrown in parsing of invalid RTSP Describe response messages ([#10971](https://github.com/google/ExoPlayer/issues/10971)). -* Metadata: - * Parse multiple null-separated values from ID3 frames, as permitted by - ID3 v2.4. - * Add `MediaMetadata.mediaType` to denote the type of content or the type - of folder described by the metadata. - * Add `MediaMetadata.isBrowsable` as a replacement for - `MediaMetadata.folderType`. The folder type will be deprecated in the - next release. -* Transformer: - * Remove `Transformer.Builder.setMediaSourceFactory(MediaSource.Factory)`. - Use `ExoPlayerAssetLoader.Factory(MediaSource.Factory)` and - `Transformer.Builder.setAssetLoaderFactory(AssetLoader.Factory)` - instead. - * Remove `Transformer.startTransformation(MediaItem, - ParcelFileDescriptor)`. -* Remove deprecated symbols: - * Remove `DefaultAudioSink` constructors, use `DefaultAudioSink.Builder` - instead. +* Session: + * Fix a bug where notification play/pause button doesn't update with + player state ([#192](https://github.com/androidx/media/issues/192)). ### 1.0.0-rc01 (2023-02-16) This release corresponds to the [ExoPlayer 2.18.3 release](https://github.com/google/ExoPlayer/releases/tag/r2.18.3). -* Core library: +* Core library: * Tweak the renderer's decoder ordering logic to uphold the `MediaCodecSelector`'s preferences, even if a decoder reports it may not be able to play the media performantly. For example with default @@ -97,7 +90,7 @@ This release corresponds to the * Add `ConcatenatingMediaSource2` that allows combining multiple media items into a single window ([#247](https://github.com/androidx/media/issues/247)). -* Extractors: +* Extractors: * Throw a `ParserException` instead of a `NullPointerException` if the sample table (stbl) is missing a required sample description (stsd) when parsing trak atoms. @@ -111,7 +104,7 @@ This release corresponds to the `Subtitle.getEventTime` if a subtitle file contains no cues. * SubRip: Add support for UTF-16 files if they start with a byte order mark. -* Metadata: +* Metadata: * Parse multiple null-separated values from ID3 frames, as permitted by ID3 v2.4. * Add `MediaMetadata.mediaType` to denote the type of content or the type @@ -119,10 +112,10 @@ This release corresponds to the * Add `MediaMetadata.isBrowsable` as a replacement for `MediaMetadata.folderType`. The folder type will be deprecated in the next release. -* DASH: +* DASH: * Add full parsing for image adaptation sets, including tile counts ([#3752](https://github.com/google/ExoPlayer/issues/3752)). -* UI: +* UI: * Fix the deprecated `PlayerView.setControllerVisibilityListener(PlayerControlView.VisibilityListener)` to ensure visibility changes are passed to the registered listener @@ -130,7 +123,7 @@ This release corresponds to the * Fix the ordering of the center player controls in `PlayerView` when using a right-to-left (RTL) layout ([#227](https://github.com/androidx/media/issues/227)). -* Session: +* Session: * Add abstract `SimpleBasePlayer` to help implement the `Player` interface for custom players. * Add helper method to convert platform session token to Media3 @@ -147,33 +140,12 @@ This release corresponds to the ([#233](https://github.com/androidx/media/issues/233)). * Make `QueueTimeline` more robust in case of a shady legacy session state ([#241](https://github.com/androidx/media/issues/241)). -* Cast extension: - * Fix a bug where notification play/pause button doesn't update with - player state ([#192](https://github.com/androidx/media/issues/192)). -* Metadata: - * Parse multiple null-separated values from ID3 frames, as permitted by - ID3 v2.4. - * Add `MediaMetadata.mediaType` to denote the type of content or the type - of folder described by the metadata. - * Add `MediaMetadata.isBrowsable` as a replacement for - `MediaMetadata.folderType`. The folder type will be deprecated in the - next release. -* Transformer: - * Remove `Transformer.Builder.setMediaSourceFactory(MediaSource.Factory)`. - Use `ExoPlayerAssetLoader.Factory(MediaSource.Factory)` and - `Transformer.Builder.setAssetLoaderFactory(AssetLoader.Factory)` - instead. - * Remove `Transformer.startTransformation(MediaItem, - ParcelFileDescriptor)`. -* Remove deprecated symbols: - * Remove `DefaultAudioSink` constructors, use `DefaultAudioSink.Builder` - instead. -* Cast extension +* Cast extension: * Bump Cast SDK version to 21.2.0. -* IMA extension: +* IMA extension: * Map `PLAYER_STATE_LOADING` to `STATE_BUFFERING` ([#245](\(https://github.com/androidx/media/issues/245\)). -* IMA extension +* IMA extension * Remove player listener of the `ImaServerSideAdInsertionMediaSource` on the application thread to avoid threading issues. * Add a property `focusSkipButtonWhenAvailable` to the @@ -185,7 +157,7 @@ This release corresponds to the * Fix a bug which prevented playback from starting for a DAI stream without any ads. * Bump IMA SDK version to 3.29.0. -* Demo app: +* Demo app: * Request notification permission for download notifications at runtime ([#10884](https://github.com/google/ExoPlayer/issues/10884)).