|
1 | 1 | # Release notes
|
2 | 2 |
|
| 3 | +### 2.18.2 (2022-11-22) |
| 4 | + |
| 5 | +This release corresponds to the |
| 6 | +[AndroidX Media3 1.0.0-beta03 release](https://github.com/androidx/media/releases/tag/1.0.0-beta03). |
| 7 | + |
| 8 | +* Core library: |
| 9 | + * Add `ExoPlayer.isTunnelingEnabled` to check if tunneling is enabled for |
| 10 | + the currently selected tracks |
| 11 | + ([#2518](https://github.com/google/ExoPlayer/issues/2518)). |
| 12 | + * Add `WrappingMediaSource` to simplify wrapping a single `MediaSource` |
| 13 | + ([#7279](https://github.com/google/ExoPlayer/issues/7279)). |
| 14 | + * Discard back buffer before playback gets stuck due to insufficient |
| 15 | + available memory. |
| 16 | + * Close the Tracing "doSomeWork" block when offload is enabled. |
| 17 | + * Fix session tracking problem with fast seeks in `PlaybackStatsListener` |
| 18 | + ([#180](https://github.com/androidx/media/issues/180)). |
| 19 | + * Send missing `onMediaItemTransition` callback when calling `seekToNext` |
| 20 | + or `seekToPrevious` in a single-item playlist |
| 21 | + ([#10667](https://github.com/google/ExoPlayer/issues/10667)). |
| 22 | + * Add `Player.getSurfaceSize` that returns the size of the surface on |
| 23 | + which the video is rendered. |
| 24 | + * Fix bug where removing listeners during the player release can cause an |
| 25 | + `IllegalStateException` |
| 26 | + ([#10758](https://github.com/google/ExoPlayer/issues/10758)). |
| 27 | +* Build: |
| 28 | + * Enforce minimum `compileSdkVersion` to avoid compilation errors |
| 29 | + ([#10684](https://github.com/google/ExoPlayer/issues/10684)). |
| 30 | + * Avoid publishing block when included in another gradle build. |
| 31 | +* Track selection: |
| 32 | + * Prefer other tracks to Dolby Vision if display does not support it. |
| 33 | + ([#8944](https://github.com/google/ExoPlayer/issues/8944)). |
| 34 | +* Downloads: |
| 35 | + * Fix potential infinite loop in `ProgressiveDownloader` caused by |
| 36 | + simultaneous download and playback with the same `PriorityTaskManager` |
| 37 | + ([#10570](https://github.com/google/ExoPlayer/pull/10570)). |
| 38 | + * Make download notification appear immediately |
| 39 | + ([#183](https://github.com/androidx/media/pull/183)). |
| 40 | + * Limit parallel download removals to 1 to avoid excessive thread creation |
| 41 | + ([#10458](https://github.com/google/ExoPlayer/issues/10458)). |
| 42 | +* Video: |
| 43 | + * Try alternative decoder for Dolby Vision if display does not support it. |
| 44 | + ([#9794](https://github.com/google/ExoPlayer/issues/9794)). |
| 45 | +* Audio: |
| 46 | + * Use `SingleThreadExecutor` for releasing `AudioTrack` instances to avoid |
| 47 | + OutOfMemory errors when releasing multiple players at the same time |
| 48 | + ([#10057](https://github.com/google/ExoPlayer/issues/10057)). |
| 49 | + * Adds `AudioOffloadListener.onExperimentalOffloadedPlayback` for the |
| 50 | + AudioTrack offload state. |
| 51 | + ([#134](https://github.com/androidx/media/issues/134)). |
| 52 | + * Make `AudioTrackBufferSizeProvider` a public interface. |
| 53 | + * Add `ExoPlayer.setPreferredAudioDevice` to set the preferred audio |
| 54 | + output device ([#135](https://github.com/androidx/media/issues/135)). |
| 55 | + * Rename `com.google.android.exoplayer2.audio.AudioProcessor` to |
| 56 | + `com.google.android.exoplayer2.audio.AudioProcessor`. |
| 57 | + * Map 8-channel and 12-channel audio to the 7.1 and 7.1.4 channel masks |
| 58 | + respectively on all Android versions |
| 59 | + ([#10701](https://github.com/google/ExoPlayer/issues/10701)). |
| 60 | +* Metadata: |
| 61 | + * `MetadataRenderer` can now be configured to render metadata as soon as |
| 62 | + they are available. Create an instance with |
| 63 | + `MetadataRenderer(MetadataOutput, Looper, MetadataDecoderFactory, |
| 64 | + boolean)` to specify whether the renderer will output metadata early or |
| 65 | + in sync with the player position. |
| 66 | +* DRM: |
| 67 | + * Work around a bug in the Android 13 ClearKey implementation that returns |
| 68 | + a non-empty but invalid license URL. |
| 69 | + * Fix `setMediaDrmSession failed: session not opened` error when switching |
| 70 | + between DRM schemes in a playlist (e.g. Widevine to ClearKey). |
| 71 | +* Text: |
| 72 | + * CEA-608: Ensure service switch commands on field 2 are handled correctly |
| 73 | + ([#10666](https://github.com/google/ExoPlayer/issues/10666)). |
| 74 | +* DASH: |
| 75 | + * Parse `EventStream.presentationTimeOffset` from manifests |
| 76 | + ([#10460](https://github.com/google/ExoPlayer/issues/10460)). |
| 77 | +* UI: |
| 78 | + * Use current overrides of the player as preset in |
| 79 | + `TrackSelectionDialogBuilder` |
| 80 | + ([#10429](https://github.com/google/ExoPlayer/issues/10429)). |
| 81 | +* RTSP: |
| 82 | + * Add H263 fragmented packet handling |
| 83 | + ([#119](https://github.com/androidx/media/pull/119)). |
| 84 | + * Add support for MP4A-LATM |
| 85 | + ([#162](https://github.com/androidx/media/pull/162)). |
| 86 | +* IMA: |
| 87 | + * Add timeout for loading ad information to handle cases where the IMA SDK |
| 88 | + gets stuck loading an ad |
| 89 | + ([#10510](https://github.com/google/ExoPlayer/issues/10510)). |
| 90 | + * Prevent skipping mid-roll ads when seeking to the end of the content |
| 91 | + ([#10685](https://github.com/google/ExoPlayer/issues/10685)). |
| 92 | + * Correctly calculate window duration for live streams with server-side |
| 93 | + inserted ads, for example IMA DAI |
| 94 | + ([#10764](https://github.com/google/ExoPlayer/issues/10764)). |
| 95 | +* FFmpeg extension: |
| 96 | + * Add newly required flags to link FFmpeg libraries with NDK 23.1.7779620 |
| 97 | + and above ([#9933](https://github.com/google/ExoPlayer/issues/9933)). |
| 98 | +* AV1 extension: |
| 99 | + * Update CMake version to avoid incompatibilities with the latest Android |
| 100 | + Studio releases |
| 101 | + ([#9933](https://github.com/google/ExoPlayer/issues/9933)). |
| 102 | +* Cast extension: |
| 103 | + * Implement `getDeviceInfo()` to be able to identify `CastPlayer` when |
| 104 | + controlling playback with a `MediaController` |
| 105 | + ([#142](https://github.com/androidx/media/issues/142)). |
| 106 | +* Transformer: |
| 107 | + * Add muxer watchdog timer to detect when generating an output sample is |
| 108 | + too slow. |
| 109 | +* Remove deprecated symbols: |
| 110 | + * Remove `Transformer.Builder.setOutputMimeType(String)`. This feature has |
| 111 | + been removed. The MIME type will always be MP4 when the default muxer is |
| 112 | + used. |
| 113 | + |
3 | 114 | ### 2.18.1 (2022-07-21)
|
4 | 115 |
|
5 | 116 | This release corresponds to the
|
|
0 commit comments