|
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