|
1 | 1 | # Release notes # |
2 | 2 |
|
| 3 | +### 2.8.0 ### |
| 4 | + |
| 5 | +* Downloading: |
| 6 | + * Add `DownloadService`, `DownloadManager` and related classes |
| 7 | + ([#2643](https://github.com/google/ExoPlayer/issues/2643)). Information on |
| 8 | + using these components to download progressive formats can be found |
| 9 | + [here](https://medium.com/google-exoplayer/downloading-streams-6d259eec7f95). |
| 10 | + To see how to download DASH, HLS and SmoothStreaming media, take a look at |
| 11 | + the app. |
| 12 | + * Updated main demo app to support downloading DASH, HLS, SmoothStreaming and |
| 13 | + progressive media. |
| 14 | +* MediaSources: |
| 15 | + * Allow reusing media sources after they have been released and |
| 16 | + also in parallel to allow adding them multiple times to a concatenation. |
| 17 | + ([#3498](https://github.com/google/ExoPlayer/issues/3498)). |
| 18 | + * Merged `DynamicConcatenatingMediaSource` into `ConcatenatingMediaSource` and |
| 19 | + deprecated `DynamicConcatenatingMediaSource`. |
| 20 | + * Allow clipping of child media sources where the period and window have a |
| 21 | + non-zero offset with `ClippingMediaSource`. |
| 22 | + * Allow adding and removing `MediaSourceEventListener`s to MediaSources after |
| 23 | + they have been created. Listening to events is now supported for all |
| 24 | + media sources including composite sources. |
| 25 | + * Added callbacks to `MediaSourceEventListener` to get notified when media |
| 26 | + periods are created, released and being read from. |
| 27 | + * Support live stream clipping with `ClippingMediaSource`. |
| 28 | + * Allow setting tags for all media sources in their factories. The tag of the |
| 29 | + current window can be retrieved with `ExoPlayer.getCurrentTag`. |
| 30 | +* UI components: |
| 31 | + * Add support for displaying error messages and a buffering spinner in |
| 32 | + `PlayerView`. |
| 33 | + * Add support for listening to `AspectRatioFrameLayout`'s aspect ratio update |
| 34 | + ([#3736](https://github.com/google/ExoPlayer/issues/3736)). |
| 35 | + * Add `PlayerNotificationManager` for displaying notifications reflecting the |
| 36 | + player state. |
| 37 | + * Add `TrackSelectionView` for selecting tracks with `DefaultTrackSelector`. |
| 38 | + * Add `TrackNameProvider` for converting track `Format`s to textual |
| 39 | + descriptions, and `DefaultTrackNameProvider` as a default implementation. |
| 40 | +* Track selection: |
| 41 | + * Reworked `MappingTrackSelector` and `DefaultTrackSelector`. |
| 42 | + * `DefaultTrackSelector.Parameters` now implements `Parcelable`. |
| 43 | + * Added UI components for track selection (see above). |
| 44 | +* Audio: |
| 45 | + * Support extracting data from AMR container formats, including both narrow |
| 46 | + and wide band ([#2527](https://github.com/google/ExoPlayer/issues/2527)). |
| 47 | + * FLAC: |
| 48 | + * Sniff FLAC files correctly if they have ID3 headers |
| 49 | + ([#4055](https://github.com/google/ExoPlayer/issues/4055)). |
| 50 | + * Supports FLAC files with high sample rate (176400 and 192000) |
| 51 | + ([#3769](https://github.com/google/ExoPlayer/issues/3769)). |
| 52 | + * Factor out `AudioTrack` position tracking from `DefaultAudioSink`. |
| 53 | + * Fix an issue where the playback position would pause just after playback |
| 54 | + begins, and poll the audio timestamp less frequently once it starts |
| 55 | + advancing ([#3841](https://github.com/google/ExoPlayer/issues/3841)). |
| 56 | + * Add an option to skip silent audio in `PlaybackParameters` |
| 57 | + ((#2635)[https://github.com/google/ExoPlayer/issues/2635]). |
| 58 | + * Fix an issue where playback of TrueHD streams would get stuck after seeking |
| 59 | + due to not finding a syncframe |
| 60 | + ((#3845)[https://github.com/google/ExoPlayer/issues/3845]). |
| 61 | + * Fix an issue with eac3-joc playback where a codec would fail to configure |
| 62 | + ((#4165)[https://github.com/google/ExoPlayer/issues/4165]). |
| 63 | + * Handle non-empty end-of-stream buffers, to fix gapless playback of streams |
| 64 | + with encoder padding when the decoder returns a non-empty final buffer. |
| 65 | + * Allow trimming more than one sample when applying an elst audio edit via |
| 66 | + gapless playback info. |
| 67 | + * Allow overriding skipping/scaling with custom `AudioProcessor`s |
| 68 | + ((#3142)[https://github.com/google/ExoPlayer/issues/3142]). |
| 69 | +* Caching: |
| 70 | + * Add release method to the `Cache` interface, and prevent multiple instances |
| 71 | + of `SimpleCache` using the same folder at the same time. |
| 72 | + * Cache redirect URLs |
| 73 | + ([#2360](https://github.com/google/ExoPlayer/issues/2360)). |
| 74 | +* DRM: |
| 75 | + * Allow multiple listeners for `DefaultDrmSessionManager`. |
| 76 | + * Pass `DrmSessionManager` to `ExoPlayerFactory` instead of `RendererFactory`. |
| 77 | + * Change minimum API requirement for CBC and pattern encryption from 24 to 25 |
| 78 | + ([#4022][https://github.com/google/ExoPlayer/issues/4022]). |
| 79 | + * Fix handling of 307/308 redirects when making license requests |
| 80 | + ([#4108](https://github.com/google/ExoPlayer/issues/4108)). |
| 81 | +* HLS: |
| 82 | + * Fix playlist loading error propagation when the current selection does |
| 83 | + not include all of the playlist's variants. |
| 84 | + * Fix SAMPLE-AES-CENC and SAMPLE-AES-CTR EXT-X-KEY methods |
| 85 | + ([#4145](https://github.com/google/ExoPlayer/issues/4145)). |
| 86 | + * Preeptively declare an ID3 track in chunkless preparation |
| 87 | + ([#4016](https://github.com/google/ExoPlayer/issues/4016)). |
| 88 | + * Add support for multiple #EXT-X-MAP tags in a media playlist |
| 89 | + ([#4164](https://github.com/google/ExoPlayer/issues/4182)). |
| 90 | + * Fix seeking in live streams |
| 91 | + ([#4187](https://github.com/google/ExoPlayer/issues/4187)). |
| 92 | +* IMA: |
| 93 | + * Allow setting the ad media load timeout |
| 94 | + ([#3691](https://github.com/google/ExoPlayer/issues/3691)). |
| 95 | + * Expose ad load errors via `MediaSourceEventListener` on `AdsMediaSource`, |
| 96 | + and allow setting an ad event listener on `ImaAdsLoader`. Deprecate the |
| 97 | + `AdsMediaSource.EventListener`. |
| 98 | +* Add `AnalyticsListener` interface which can be registered in |
| 99 | + `SimpleExoPlayer` to receive detailed metadata for each ExoPlayer event. |
| 100 | +* Optimize seeking in FMP4 by enabling seeking to the nearest sync sample within |
| 101 | + a fragment. This benefits standalone FMP4 playbacks, DASH and SmoothStreaming. |
| 102 | +* Updated default max buffer length in `DefaultLoadControl`. |
| 103 | +* Fix ClearKey decryption error if the key contains a forward slash |
| 104 | + ([#4075](https://github.com/google/ExoPlayer/issues/4075)). |
| 105 | +* Fix crash when switching surface on Huawei P9 Lite |
| 106 | + ([#4084](https://github.com/google/ExoPlayer/issues/4084)), and Philips QM163E |
| 107 | + ([#4104](https://github.com/google/ExoPlayer/issues/4104)). |
| 108 | +* Support ZLIB compressed PGS subtitles. |
| 109 | +* Added `getPlaybackError` to `Player` interface. |
| 110 | +* Moved initial bitrate estimate from `AdaptiveTrackSelection` to |
| 111 | + `DefaultBandwidthMeter`. |
| 112 | +* Removed default renderer time offset of 60000000 from internal player. The |
| 113 | + actual renderer timestamp offset can be obtained by listening to |
| 114 | + `BaseRenderer.onStreamChanged`. |
| 115 | +* Added dependencies on checkerframework annotations for static code analysis. |
| 116 | + |
3 | 117 | ### 2.7.3 ### |
4 | 118 |
|
5 | 119 | * Fix ProGuard configuration for Cast, IMA and OkHttp extensions. |
|
93 | 207 | ([#3630](https://github.com/google/ExoPlayer/issues/3630)). |
94 | 208 | * DASH: |
95 | 209 | * Support in-band Emsg events targeting the player with scheme id |
96 | | - "urn:mpeg:dash:event:2012" and scheme values "1", "2" and "3". |
| 210 | + `urn:mpeg:dash:event:2012` and scheme values "1", "2" and "3". |
97 | 211 | * Support EventStream elements in DASH manifests. |
98 | 212 | * HLS: |
99 | 213 | * Add opt-in support for chunkless preparation in HLS. This allows an |
|
163 | 277 | ([#3792](https://github.com/google/ExoPlayer/issues/3792). |
164 | 278 | * Support 14-bit mode and little endianness in DTS PES packets |
165 | 279 | ([#3340](https://github.com/google/ExoPlayer/issues/3340)). |
| 280 | +* Demo app: Add ability to download not DRM protected content. |
166 | 281 |
|
167 | 282 | ### 2.6.1 ### |
168 | 283 |
|
|
0 commit comments