|
1 | 1 | # Release notes |
2 | 2 |
|
3 | | -### 1.0.0-alpha02 (2022-03-09) |
| 3 | +### 1.0.0-alpha03 (2022-03-14) |
| 4 | + |
| 5 | +This release corresponds to the |
| 6 | +[ExoPlayer 2.17.1 release](https://github.com/google/ExoPlayer/releases/tag/r2.17.1). |
| 7 | + |
| 8 | +* Audio: |
| 9 | + * Fix error checking audio capabilities for Dolby Atmos (E-AC3-JOC) in |
| 10 | + HLS. |
| 11 | +* Extractors: |
| 12 | + * FMP4: Fix issue where emsg sample metadata could be output in the wrong |
| 13 | + order for streams containing both v0 and v1 emsg atoms |
| 14 | + ([#9996](https://github.com/google/ExoPlayer/issues/9996)). |
| 15 | +* Text: |
| 16 | + * Fix the interaction of `SingleSampleMediaSource.Factory.setTrackId` and |
| 17 | + `MediaItem.SubtitleConfiguration.Builder.setId` to prioritise the |
| 18 | + `SubtitleConfiguration` field and fall back to the `Factory` value if |
| 19 | + it's not set |
| 20 | + ([#10016](https://github.com/google/ExoPlayer/issues/10016)). |
| 21 | +* Ad playback: |
| 22 | + * Fix audio underruns between ad periods in live HLS SSAI streams. |
| 23 | + |
| 24 | +### 1.0.0-alpha02 (2022-03-02) |
| 25 | + |
| 26 | +This release corresponds to the |
| 27 | +[ExoPlayer 2.17.0 release](https://github.com/google/ExoPlayer/releases/tag/r2.17.0). |
4 | 28 |
|
5 | 29 | * Core Library: |
6 | 30 | * Add protected method `DefaultRenderersFactory.getCodecAdapterFactory()` |
|
18 | 42 | from a secure codec to another codec |
19 | 43 | ([#8696](https://github.com/google/ExoPlayer/issues/8696)). |
20 | 44 | * Add `MediaCodecAdapter.getMetrics()` to allow users obtain metrics data |
21 | | - from `MediaCodec`. |
| 45 | + from `MediaCodec` |
22 | 46 | ([#9766](https://github.com/google/ExoPlayer/issues/9766)). |
23 | 47 | * Fix Maven dependency resolution |
24 | 48 | ([#8353](https://github.com/google/ExoPlayer/issues/8353)). |
|
63 | 87 | under sufficient network bandwidth even if playback is very close to the |
64 | 88 | live edge ([#9784](https://github.com/google/ExoPlayer/issues/9784)). |
65 | 89 | * Video: |
66 | | - * Fix decoder fallback logic for Dolby Vision |
67 | | - to use a compatible H264/H265 decoder if needed. |
| 90 | + * Fix decoder fallback logic for Dolby Vision to use a compatible |
| 91 | + H264/H265 decoder if needed. |
68 | 92 | * Audio: |
69 | | - * Fix decoder fallback logic for Dolby Atmos (E-AC3-JOC) |
70 | | - to use a compatible E-AC3 decoder if needed. |
| 93 | + * Fix decoder fallback logic for Dolby Atmos (E-AC3-JOC) to use a |
| 94 | + compatible E-AC3 decoder if needed. |
71 | 95 | * Change `AudioCapabilities` APIs to require passing explicitly |
72 | 96 | `AudioCapabilities.DEFAULT_AUDIO_CAPABILITIES` instead of `null`. |
73 | 97 | * Allow customization of the `AudioTrack` buffer size calculation by |
74 | | - injecting an `AudioTrackBufferSizeProvider` to `DefaultAudioSink`. |
| 98 | + injecting an `AudioTrackBufferSizeProvider` to `DefaultAudioSink` |
75 | 99 | ([#8891](https://github.com/google/ExoPlayer/issues/8891)). |
76 | | - * Retry `AudioTrack` creation if the requested buffer size was > 1MB. |
| 100 | + * Retry `AudioTrack` creation if the requested buffer size was > 1MB |
77 | 101 | ([#9712](https://github.com/google/ExoPlayer/issues/9712)). |
78 | 102 | * Extractors: |
79 | 103 | * WAV: Add support for RF64 streams |
|
120 | 144 | * Support the `forced-subtitle` track role |
121 | 145 | ([#9727](https://github.com/google/ExoPlayer/issues/9727)). |
122 | 146 | * Stop interpreting the `main` track role as `C.SELECTION_FLAG_DEFAULT`. |
123 | | - * Fix base URL exclusion logic for manifests that do not declare the DVB namespace ([#9856](https://github.com/google/ExoPlayer/issues/9856)). |
| 147 | + * Fix base URL exclusion logic for manifests that do not declare the DVB |
| 148 | + namespace ([#9856](https://github.com/google/ExoPlayer/issues/9856)). |
124 | 149 | * Support relative `MPD.Location` URLs |
125 | 150 | ([#9939](https://github.com/google/ExoPlayer/issues/9939)). |
126 | 151 | * HLS: |
|
133 | 158 | `HlsMediaSource.Factory.setAllowChunklessPreparation(false)`. |
134 | 159 | * Support key-frame accurate seeking in HLS |
135 | 160 | ([#2882](https://github.com/google/ExoPlayer/issues/2882)). |
136 | | - * Correctly populate `Format.label` for audio only HLS streams |
137 | | - ([#9608](https://github.com/google/ExoPlayer/issues/9608)). |
138 | 161 | * RTSP: |
139 | 162 | * Provide a client API to override the `SocketFactory` used for any server |
140 | 163 | connection ([#9606](https://github.com/google/ExoPlayer/pull/9606)). |
|
154 | 177 | * Fix potential NPE in `Transformer.getProgress` when releasing the muxer |
155 | 178 | throws. |
156 | 179 | * Add a demo app for applying transformations. |
157 | | - * The transformer module is no longer included by depending on |
158 | | - `com.google.android.exoplayer:exoplayer`. To continue using transformer, |
159 | | - add an additional dependency on |
160 | | - `com.google.android.exoplayer:exoplayer-transformer`. |
161 | 180 | * MediaSession extension: |
162 | | - * By default, `MediaSessionConnector` now clears the playlist on stop. Apps that want the playlist to be retained can call `setClearMediaItemsOnStop(false)` on the connector. |
| 181 | + * By default, `MediaSessionConnector` now clears the playlist on stop. |
| 182 | + Apps that want the playlist to be retained can call |
| 183 | + `setClearMediaItemsOnStop(false)` on the connector. |
163 | 184 | * Cast extension: |
164 | 185 | * Fix bug that prevented `CastPlayer` from calling `onIsPlayingChanged` |
165 | 186 | correctly ([#9792](https://github.com/google/ExoPlayer/issues/9792)). |
|
178 | 199 | ([#9528](https://github.com/google/ExoPlayer/issues/9528)). |
179 | 200 | * Remove deprecated symbols: |
180 | 201 | * Remove `Player.EventLister`. Use `Player.Listener` instead. |
181 | | - * Remove `MediaSourceFactory#setDrmSessionManager`, |
182 | | - `MediaSourceFactory#setDrmHttpDataSourceFactory`, and |
183 | | - `MediaSourceFactory#setDrmUserAgent`. Use |
184 | | - `MediaSourceFactory#setDrmSessionManagerProvider` instead. |
185 | | - * Remove `MediaSourceFactory#setStreamKeys`. Use |
186 | | - `MediaItem.Builder#setStreamKeys` instead. |
187 | | - * Remove `MediaSourceFactory#createMediaSource(Uri)`. Use |
188 | | - `MediaSourceFactory#createMediaSource(MediaItem)` instead. |
| 202 | + * Remove `MediaSourceFactory.setDrmSessionManager`, |
| 203 | + `MediaSourceFactory.setDrmHttpDataSourceFactory`, and |
| 204 | + `MediaSourceFactory.setDrmUserAgent`. Use |
| 205 | + `MediaSourceFactory.setDrmSessionManagerProvider` instead. |
| 206 | + * Remove `MediaSourceFactory.setStreamKeys`. Use |
| 207 | + `MediaItem.Builder.setStreamKeys` instead. |
| 208 | + * Remove `MediaSourceFactory.createMediaSource(Uri)`. Use |
| 209 | + `MediaSourceFactory.createMediaSource(MediaItem)` instead. |
189 | 210 | * Remove `setTag` from `DashMediaSource`, `HlsMediaSource` and |
190 | | - `SsMediaSource`. Use `MediaItem.Builder#setTag` instead. |
191 | | - * Remove `DashMediaSource#setLivePresentationDelayMs(long, boolean)`. Use |
192 | | - `MediaItem.Builder#setLiveConfiguration` and |
193 | | - `MediaItem.LiveConfiguration.Builder#setTargetOffsetMs` to override the |
194 | | - manifest, or `DashMediaSource#setFallbackTargetLiveOffsetMs` to provide |
| 211 | + `SsMediaSource`. Use `MediaItem.Builder.setTag` instead. |
| 212 | + * Remove `DashMediaSource.setLivePresentationDelayMs(long, boolean)`. Use |
| 213 | + `MediaItem.Builder.setLiveConfiguration` and |
| 214 | + `MediaItem.LiveConfiguration.Builder.setTargetOffsetMs` to override the |
| 215 | + manifest, or `DashMediaSource.setFallbackTargetLiveOffsetMs` to provide |
195 | 216 | a fallback value. |
196 | 217 | * Remove `(Simple)ExoPlayer.setThrowsWhenUsingWrongThread`. Opting out of |
197 | 218 | the thread enforcement is no longer possible. |
198 | 219 | * Remove `ActionFile` and `ActionFileUpgradeUtil`. Use ExoPlayer 2.16.1 or |
199 | 220 | before to use `ActionFileUpgradeUtil` to merge legacy action files into |
200 | 221 | `DefaultDownloadIndex`. |
201 | | - * Remove `ProgressiveMediaSource#setExtractorsFactory`. Use |
| 222 | + * Remove `ProgressiveMediaSource.setExtractorsFactory`. Use |
202 | 223 | `ProgressiveMediaSource.Factory(DataSource.Factory, ExtractorsFactory)` |
203 | 224 | constructor instead. |
204 | | - * Remove `ProgressiveMediaSource.Factory#setTag` and, and |
205 | | - `ProgressiveMediaSource.Factory#setCustomCacheKey`. Use |
206 | | - `MediaItem.Builder#setTag` and `MediaItem.Builder#setCustomCacheKey` |
| 225 | + * Remove `ProgressiveMediaSource.Factory.setTag` and |
| 226 | + `ProgressiveMediaSource.Factory.setCustomCacheKey`. Use |
| 227 | + `MediaItem.Builder.setTag` and `MediaItem.Builder.setCustomCacheKey` |
207 | 228 | instead. |
208 | 229 | * Remove `DefaultRenderersFactory(Context, @ExtensionRendererMode int)` |
209 | 230 | and `DefaultRenderersFactory(Context, @ExtensionRendererMode int, long)` |
210 | 231 | constructors. Use the `DefaultRenderersFactory(Context)` constructor, |
211 | | - `DefaultRenderersFactory#setExtensionRendererMode`, and |
212 | | - `DefaultRenderersFactory#setAllowedVideoJoiningTimeMs` instead. |
| 232 | + `DefaultRenderersFactory.setExtensionRendererMode`, and |
| 233 | + `DefaultRenderersFactory.setAllowedVideoJoiningTimeMs` instead. |
213 | 234 | * Remove all public `CronetDataSource` constructors. Use |
214 | 235 | `CronetDataSource.Factory` instead. |
215 | 236 | * Change the following `IntDefs` to `@Target(TYPE_USE)` only. This may break |
|
0 commit comments