mirror of
https://github.com/androidx/media.git
synced 2025-05-15 11:39:56 +08:00
First pass at finalizing 2.11.0 release notes
PiperOrigin-RevId: 280056790
This commit is contained in:
parent
69e51505e4
commit
20ab05103b
217
RELEASENOTES.md
217
RELEASENOTES.md
@ -2,118 +2,139 @@
|
||||
|
||||
### dev-v2 (not yet released) ###
|
||||
|
||||
* Require an end time or duration for SubRip (SRT) and SubStation Alpha
|
||||
(SSA/ASS) subtitles. This applies to both sidecar files & subtitles
|
||||
[embedded in Matroska streams](https://matroska.org/technical/specs/subtitles/index.html).
|
||||
|
||||
### 2.11.0 (not yet released) ###
|
||||
|
||||
* AV1 extension: Uses libgav1 to decode AV1 videos. Android 10 includes an AV1
|
||||
decoder, but the older versions of Android require this extension for playback
|
||||
of AV1 streams ([#3353](https://github.com/google/ExoPlayer/issues/3353)). You
|
||||
can read more about playing AV1 videos with ExoPlayer
|
||||
[here](https://medium.com/google-exoplayer/playing-av1-videos-with-exoplayer-a7cb19bedef9).
|
||||
* Core library:
|
||||
* Replace `ExoPlayerFactory` by `SimpleExoPlayer.Builder` and
|
||||
`ExoPlayer.Builder`.
|
||||
* Add automatic `WakeLock` handling to `SimpleExoPlayer`, which can be enabled
|
||||
by calling `SimpleExoPlayer.setHandleWakeLock`
|
||||
([#5846](https://github.com/google/ExoPlayer/issues/5846)). To use this
|
||||
feature, you must add the
|
||||
[WAKE_LOCK](https://developer.android.com/reference/android/Manifest.permission.html#WAKE_LOCK)
|
||||
permission to your application's manifest file.
|
||||
* Add automatic "audio becoming noisy" handling to `SimpleExoPlayer`, which
|
||||
can be enabled by calling `SimpleExoPlayer.setHandleAudioBecomingNoisy`.
|
||||
* Wrap decoder exceptions in a new `DecoderException` class and report them as
|
||||
renderer errors.
|
||||
* Add `Timeline.Window.isLive` to indicate that a window is a live stream
|
||||
([#2668](https://github.com/google/ExoPlayer/issues/2668) and
|
||||
[#5973](https://github.com/google/ExoPlayer/issues/5973)).
|
||||
* Add `Timeline.Window.uid` to uniquely identify window instances.
|
||||
* Deprecate `setTag` parameter of `Timeline.getWindow`. Tags will always be
|
||||
set.
|
||||
* Deprecate passing the manifest directly to
|
||||
`Player.EventListener.onTimelineChanged`. It can be accessed through
|
||||
`Timeline.Window.manifest` or `Player.getCurrentManifest()`
|
||||
* Add `MediaSource.enable` and `MediaSource.disable` to improve resource
|
||||
management in playlists.
|
||||
* Add `MediaPeriod.isLoading` to improve `Player.isLoading` state.
|
||||
* Fix issue where player errors are thrown too early at playlist transitions
|
||||
([#5407](https://github.com/google/ExoPlayer/issues/5407)).
|
||||
* DRM:
|
||||
* Inject `DrmSessionManager` into the `MediaSources` instead of `Renderers`
|
||||
([#5619](https://github.com/google/ExoPlayer/issues/5619)).
|
||||
* Add a `DefaultDrmSessionManager.Builder`.
|
||||
* Add support for the use of secure decoders in clear sections of content
|
||||
([#4867](https://github.com/google/ExoPlayer/issues/4867)).
|
||||
* Add basic DRM support to the Cast demo app.
|
||||
* Add support for custom `LoadErrorHandlingPolicies` in key and provisioning
|
||||
requests ([#6334](https://github.com/google/ExoPlayer/issues/6334)).
|
||||
* Remove `DefaultDrmSessionManager` factory methods that leak `ExoMediaDrm`
|
||||
instances ([#4721](https://github.com/google/ExoPlayer/issues/4721)).
|
||||
* Remove the `DataSpec.FLAG_ALLOW_ICY_METADATA` flag. Instead, set the header
|
||||
`IcyHeaders.REQUEST_HEADER_ENABLE_METADATA_NAME` in the `DataSpec`
|
||||
`httpRequestHeaders`.
|
||||
* Track selection:
|
||||
* Update `DefaultTrackSelector` to set a viewport constraint for the default
|
||||
display by default.
|
||||
* Update `DefaultTrackSelector` to set text language and role flag
|
||||
constraints for the device's accessibility settings by default
|
||||
([#5749](https://github.com/google/ExoPlayer/issues/5749)).
|
||||
* Add option to set preferred text role flags using
|
||||
`DefaultTrackSelector.ParametersBuilder.setPreferredTextRoleFlags`.
|
||||
* Android 10:
|
||||
* Set `compileSdkVersion` to 29 to enable use of Android 10 APIs.
|
||||
* Expose new `isHardwareAccelerated`, `isSoftwareOnly` and `isVendor` flags
|
||||
in `MediaCodecInfo`
|
||||
([#5839](https://github.com/google/ExoPlayer/issues/5839)).
|
||||
* Add `allowedCapturePolicy` field to `AudioAttributes` to allow to
|
||||
configuration of the audio capture policy.
|
||||
* Video:
|
||||
* Pass the codec output `MediaFormat` to `VideoFrameMetadataListener`.
|
||||
* Support out-of-band HDR10+ metadata for VP9 in WebM/Matroska.
|
||||
* Assume that protected content requires a secure decoder when evaluating
|
||||
whether `MediaCodecVideoRenderer` supports a given video format
|
||||
([#5568](https://github.com/google/ExoPlayer/issues/5568)).
|
||||
* Fix Dolby Vision fallback to AVC and HEVC.
|
||||
* Audio:
|
||||
* Fix E-AC3 JOC passthrough playback failing to initialize due to incorrect
|
||||
channel count check.
|
||||
* Handle new signaling for E-AC3 JOC audio in DASH
|
||||
([#6636](https://github.com/google/ExoPlayer/issues/6636)).
|
||||
* Fix the start of audio getting truncated when transitioning to a new
|
||||
item in a playlist of Opus streams.
|
||||
* Workaround broken raw audio decoding on Oppo R9
|
||||
([#5782](https://github.com/google/ExoPlayer/issues/5782)).
|
||||
* UI:
|
||||
* Make showing and hiding player controls accessible to TalkBack in
|
||||
`PlayerView`.
|
||||
* Rename `spherical_view` surface type to `spherical_gl_surface_view`.
|
||||
* Analytics:
|
||||
* Remove `AnalyticsCollector.Factory`. Instances should be created directly,
|
||||
and the `Player` should be set by calling `AnalyticsCollector.setPlayer`.
|
||||
* Add `PlaybackStatsListener` to collect `PlaybackStats` for analysis and
|
||||
analytics reporting (TODO: link to developer guide page/blog post).
|
||||
* DataSource
|
||||
* Add `DataSpec.httpRequestHeaders` to support setting per-request headers for
|
||||
HTTP and HTTPS.
|
||||
* Remove the `DataSpec.FLAG_ALLOW_ICY_METADATA` flag. Use is replaced by
|
||||
setting the `IcyHeaders.REQUEST_HEADER_ENABLE_METADATA_NAME` header in
|
||||
`DataSpec.httpRequestHeaders`.
|
||||
* Fail more explicitly when local file URIs contain invalid parts (e.g. a
|
||||
fragment) ([#6470](https://github.com/google/ExoPlayer/issues/6470)).
|
||||
* DASH: Support negative @r values in segment timelines
|
||||
([#1787](https://github.com/google/ExoPlayer/issues/1787)).
|
||||
* Add `allowedCapturePolicy` field to `AudioAttributes` wrapper to allow to
|
||||
opt-out of audio recording.
|
||||
* Add `DataSpec.httpRequestHeaders` to set HTTP request headers when connecting
|
||||
to an HTTP source. `DefaultHttpDataSource`, `CronetDataSource` and
|
||||
`OkHttpDataSource` include headers set in the DataSpec when connecting to the
|
||||
source.
|
||||
* Surface information provided by methods `isHardwareAccelerated`,
|
||||
`isSoftwareOnly` and `isVendor` added in Android 10 in `MediaCodecInfo` class
|
||||
([#5839](https://github.com/google/ExoPlayer/issues/5839)).
|
||||
* Update `DefaultTrackSelector` to apply a viewport constraint for the default
|
||||
display by default.
|
||||
* Add `PlaybackStatsListener` to collect `PlaybackStats` for playbacks analysis
|
||||
and analytics reporting (TODO: link to developer guide page/blog post).
|
||||
* Assume that encrypted content requires secure decoders in renderer support
|
||||
checks ([#5568](https://github.com/google/ExoPlayer/issues/5568)).
|
||||
* Decoders: Prefer decoders that advertise format support over ones that do not,
|
||||
even if they are listed lower in the `MediaCodecList`.
|
||||
* Add a workaround for broken raw audio decoding on Oppo R9
|
||||
([#5782](https://github.com/google/ExoPlayer/issues/5782)).
|
||||
* Wrap decoder exceptions in a new `DecoderException` class and report as
|
||||
renderer error.
|
||||
* Do not pass the manifest to callbacks of `Player.EventListener` and
|
||||
`SourceInfoRefreshListener` anymore. Instead make it accessible through
|
||||
`Player.getCurrentManifest()` and `Timeline.Window.manifest`. Also rename
|
||||
`SourceInfoRefreshListener` to `MediaSourceCaller`.
|
||||
* Set `compileSdkVersion` to 29 to use Android 10 APIs.
|
||||
* Add `enable` and `disable` methods to `MediaSource` to improve resource
|
||||
management in playlists.
|
||||
* Text selection logic:
|
||||
* Allow to set preferred role flags using
|
||||
`DefaultTrackSelector.ParametersBuilder.setPreferredTextRoleFlags`.
|
||||
* Default text language and role flags to accessibility captioning settings
|
||||
([#5749](https://github.com/google/ExoPlayer/issues/5749)).
|
||||
* Remove `AnalyticsCollector.Factory`. Instances can be created directly and
|
||||
the `Player` set later using `AnalyticsCollector.setPlayer`.
|
||||
* Replace `ExoPlayerFactory` by `SimpleExoPlayer.Builder` and
|
||||
`ExoPlayer.Builder`.
|
||||
* Fix issue where player errors are thrown too early at playlist transitions
|
||||
([#5407](https://github.com/google/ExoPlayer/issues/5407)).
|
||||
* Deprecate `setTag` parameter of `Timeline.getWindow`. Tags will always be set.
|
||||
* Support out-of-band HDR10+ metadata for VP9 in WebM/Matroska.
|
||||
* Fix issue where HLS streams get stuck in infinite buffering state after
|
||||
postroll ad ([#6314](https://github.com/google/ExoPlayer/issues/6314)).
|
||||
* Publish `testutils` module to simplify unit testing with ExoPlayer
|
||||
([#6267](https://github.com/google/ExoPlayer/issues/6267)).
|
||||
* Add `uid` to `Timeline.Window` to uniquely identify window instances.
|
||||
* Fix Dolby Vision fallback to AVC and HEVC.
|
||||
* Add demo app to show how to use the Android 10 `SurfaceControl` API with
|
||||
ExoPlayer ([#677](https://github.com/google/ExoPlayer/issues/677)).
|
||||
* Add automatic `WakeLock` handling to `SimpleExoPlayer` through calling
|
||||
`setEnableWakeLock`, which requires the
|
||||
`android.Manifest.permission#WAKE_LOCK` permission
|
||||
([#5846](https://github.com/google/ExoPlayer/issues/5846)).
|
||||
* HLS: Fix issue where streams could get stuck in an infinite buffering state
|
||||
after a postroll ad
|
||||
([#6314](https://github.com/google/ExoPlayer/issues/6314)).
|
||||
* AV1 extension:
|
||||
* New in this release. The AV1 extension allows use of the
|
||||
[libgav1 software decoder](https://chromium.googlesource.com/codecs/libgav1/)
|
||||
in ExoPlayer. You can read more about playing AV1 videos with ExoPlayer
|
||||
[here](https://medium.com/google-exoplayer/playing-av1-videos-with-exoplayer-a7cb19bedef9).
|
||||
* VP9 extension:
|
||||
* Rename `VpxVideoSurfaceView` to `VideoDecoderSurfaceView`
|
||||
and move it to the core library.
|
||||
* Update to use NDK r20.
|
||||
* Rename `VpxVideoSurfaceView` to `VideoDecoderSurfaceView` and move it to the
|
||||
core library.
|
||||
* Move `LibvpxVideoRenderer.MSG_SET_OUTPUT_BUFFER_RENDERER` to
|
||||
`C.MSG_SET_OUTPUT_BUFFER_RENDERER`.
|
||||
* Use `VideoDecoderRenderer` as an implementation of
|
||||
`VideoDecoderOutputBufferRenderer`, instead of `VideoDecoderSurfaceView`.
|
||||
* Rename `spherical_view` surface type to `spherical_gl_surface_view`.
|
||||
* Add automatic audio becoming noisy handling to `SimpleExoPlayer`,
|
||||
available through `SimpleExoPlayer.setHandleAudioBecomingNoisy`.
|
||||
* Post `AudioFocusManager.onAudioFocusChange` events to eventHandler, avoiding
|
||||
multithreaded access to the player or audio focus manager.
|
||||
* Add `Timeline.Window.isLive` to indicate that a window is a live stream
|
||||
([#2668](https://github.com/google/ExoPlayer/issues/2668) and
|
||||
[#5973](https://github.com/google/ExoPlayer/issues/5973)).
|
||||
* Fail more explicitly when local-file Uris contain invalid parts (e.g.
|
||||
fragment) ([#6470](https://github.com/google/ExoPlayer/issues/6470)).
|
||||
* Add `MediaPeriod.isLoading` to improve `Player.isLoading` state.
|
||||
* Make show and hide player controls accessible for TalkBack in `PlayerView`.
|
||||
* Pass the codec output `MediaFormat` to `VideoFrameMetadataListener`.
|
||||
* Deprecate the GVR extension.
|
||||
* Fix the start of audio getting truncated when transitioning to a new
|
||||
item in a playlist of opus streams.
|
||||
* Fix FLAC extension build
|
||||
([#6601](https://github.com/google/ExoPlayer/issues/6601).
|
||||
* Update the ffmpeg, flac and opus extension build instructions to use NDK r20.
|
||||
* Update the ffmpeg extension to release 4.2. It is necessary to rebuild the
|
||||
native part of the extension after this change, following the instructions in
|
||||
the extension's readme.
|
||||
* Add support for subtitle files to the demo app
|
||||
([#5523](https://github.com/google/ExoPlayer/issues/5523)).
|
||||
* Handle new signaling for E-AC3 JOC audio in DASH
|
||||
([#6636](https://github.com/google/ExoPlayer/issues/6636)).
|
||||
* Require an end time or duration for SubRip (SRT) and SubStation Alpha
|
||||
(SSA/ASS) subtitles. This applies to both sidecar files & subtitles
|
||||
[embedded in Matroska streams](https://matroska.org/technical/specs/subtitles/index.html).
|
||||
* Flac extension:
|
||||
* Update to use NDK r20.
|
||||
* Fix build
|
||||
([#6601](https://github.com/google/ExoPlayer/issues/6601).
|
||||
* FFmpeg extension:
|
||||
* Update to use NDK r20.
|
||||
* Update to use FFmpeg version 4.2. It is necessary to rebuild the native part
|
||||
of the extension after this change, following the instructions in the
|
||||
extension's readme.
|
||||
* Opus extension: Update to use NDK r20.
|
||||
* GVR extension: This extension is now deprecated.
|
||||
* Demo apps (TODO: update links to point to r2.11.0 tag):
|
||||
* Add [SurfaceControl demo app](https://github.com/google/ExoPlayer/tree/dev-v2/demos/surface)
|
||||
to show how to use the Android 10 `SurfaceControl` API with ExoPlayer
|
||||
([#677](https://github.com/google/ExoPlayer/issues/677)).
|
||||
* Add support for subtitle files to the
|
||||
[Main demo app](https://github.com/google/ExoPlayer/tree/dev-v2/demos/main)
|
||||
([#5523](https://github.com/google/ExoPlayer/issues/5523)).
|
||||
* Remove the IMA demo app. IMA functionality is demonstrated by the
|
||||
[main demo app](https://github.com/google/ExoPlayer/tree/dev-v2/demos/main).
|
||||
* Add basic DRM support to the
|
||||
[Cast demo app](https://github.com/google/ExoPlayer/tree/dev-v2/demos/cast).
|
||||
* TestUtils: Publish the `testutils` module to simplify unit testing with
|
||||
ExoPlayer ([#6267](https://github.com/google/ExoPlayer/issues/6267)).
|
||||
|
||||
### 2.10.7 (2019-11-12) ###
|
||||
|
||||
@ -121,7 +142,7 @@
|
||||
* MediaSession extension: Update shuffle and repeat modes when playback state
|
||||
is invalidated ([#6582](https://github.com/google/ExoPlayer/issues/6582)).
|
||||
* Fix the start of audio getting truncated when transitioning to a new
|
||||
item in a playlist of opus streams.
|
||||
item in a playlist of Opus streams.
|
||||
|
||||
### 2.10.6 (2019-10-17) ###
|
||||
|
||||
@ -690,7 +711,7 @@
|
||||
and `AnalyticsListener` callbacks
|
||||
([#4361](https://github.com/google/ExoPlayer/issues/4361) and
|
||||
[#4615](https://github.com/google/ExoPlayer/issues/4615)).
|
||||
* UI components:
|
||||
* UI:
|
||||
* Add option to `PlayerView` to show buffering view when playWhenReady is
|
||||
false ([#4304](https://github.com/google/ExoPlayer/issues/4304)).
|
||||
* Allow any `Drawable` to be used as `PlayerView` default artwork.
|
||||
@ -846,7 +867,7 @@
|
||||
* OkHttp extension: Fix to correctly include response headers in thrown
|
||||
`InvalidResponseCodeException`s.
|
||||
* Add possibility to cancel `PlayerMessage`s.
|
||||
* UI components:
|
||||
* UI:
|
||||
* Add `PlayerView.setKeepContentOnPlayerReset` to keep the currently displayed
|
||||
video frame or media artwork visible when the player is reset
|
||||
([#2843](https://github.com/google/ExoPlayer/issues/2843)).
|
||||
@ -896,7 +917,7 @@
|
||||
* Support live stream clipping with `ClippingMediaSource`.
|
||||
* Allow setting tags for all media sources in their factories. The tag of the
|
||||
current window can be retrieved with `Player.getCurrentTag`.
|
||||
* UI components:
|
||||
* UI:
|
||||
* Add support for displaying error messages and a buffering spinner in
|
||||
`PlayerView`.
|
||||
* Add support for listening to `AspectRatioFrameLayout`'s aspect ratio update
|
||||
@ -1060,7 +1081,7 @@
|
||||
`SsMediaSource.Factory`, and `MergingMediaSource`.
|
||||
* Play out existing buffer before retrying for progressive live streams
|
||||
([#1606](https://github.com/google/ExoPlayer/issues/1606)).
|
||||
* UI components:
|
||||
* UI:
|
||||
* Generalized player and control views to allow them to bind with any
|
||||
`Player`, and renamed them to `PlayerView` and `PlayerControlView`
|
||||
respectively.
|
||||
|
Loading…
x
Reference in New Issue
Block a user