Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
20ab0510
authored
Nov 12, 2019
by
olly
Committed by
Oliver Woodman
Nov 15, 2019
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
First pass at finalizing 2.11.0 release notes
PiperOrigin-RevId: 280056790
parent
69e51505
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
119 additions
and
98 deletions
RELEASENOTES.md
RELEASENOTES.md
View file @
20ab0510
...
@@ -2,118 +2,139 @@
...
@@ -2,118 +2,139 @@
### dev-v2 (not yet released) ###
### 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) ###
### 2.11.0 (not yet released) ###
*
AV1 extension: Uses libgav1 to decode AV1 videos. Android 10 includes an AV1
*
Core library:
decoder, but the older versions of Android require this extension for playback
*
Replace
`ExoPlayerFactory`
by
`SimpleExoPlayer.Builder`
and
of AV1 streams (
[
#3353
](
https://github.com/google/ExoPlayer/issues/3353
)
). You
`ExoPlayer.Builder`
.
can read more about playing AV1 videos with ExoPlayer
*
Add automatic
`WakeLock`
handling to
`SimpleExoPlayer`
, which can be enabled
[
here
](
https://medium.com/google-exoplayer/playing-av1-videos-with-exoplayer-a7cb19bedef9
)
.
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:
*
DRM:
*
Inject
`DrmSessionManager`
into the
`MediaSources`
instead of
`Renderers`
*
Inject
`DrmSessionManager`
into the
`MediaSources`
instead of
`Renderers`
(
[
#5619
](
https://github.com/google/ExoPlayer/issues/5619
)
).
(
[
#5619
](
https://github.com/google/ExoPlayer/issues/5619
)
).
*
Add a
`DefaultDrmSessionManager.Builder`
.
*
Add a
`DefaultDrmSessionManager.Builder`
.
*
Add support for the use of secure decoders in clear sections of content
*
Add support for the use of secure decoders in clear sections of content
(
[
#4867
](
https://github.com/google/ExoPlayer/issues/4867
)
).
(
[
#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
*
Add support for custom
`LoadErrorHandlingPolicies`
in key and provisioning
requests (
[
#6334
](
https://github.com/google/ExoPlayer/issues/6334
)
).
requests (
[
#6334
](
https://github.com/google/ExoPlayer/issues/6334
)
).
*
Remove
`DefaultDrmSessionManager`
factory methods that leak
`ExoMediaDrm`
*
Remove
`DefaultDrmSessionManager`
factory methods that leak
`ExoMediaDrm`
instances (
[
#4721
](
https://github.com/google/ExoPlayer/issues/4721
)
).
instances (
[
#4721
](
https://github.com/google/ExoPlayer/issues/4721
)
).
*
Remove the
`DataSpec.FLAG_ALLOW_ICY_METADATA`
flag. Instead, set the header
*
Track selection:
`IcyHeaders.REQUEST_HEADER_ENABLE_METADATA_NAME`
in the
`DataSpec`
*
Update
`DefaultTrackSelector`
to set a viewport constraint for the default
`httpRequestHeaders`
.
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
*
DASH: Support negative @r values in segment timelines
(
[
#1787
](
https://github.com/google/ExoPlayer/issues/1787
)
).
(
[
#1787
](
https://github.com/google/ExoPlayer/issues/1787
)
).
*
Add
`allowedCapturePolicy`
field to
`AudioAttributes`
wrapper to allow to
*
HLS: Fix issue where streams could get stuck in an infinite buffering state
opt-out of audio recording.
after a postroll ad
*
Add
`DataSpec.httpRequestHeaders`
to set HTTP request headers when connecting
(
[
#6314
](
https://github.com/google/ExoPlayer/issues/6314
)
).
to an HTTP source.
`DefaultHttpDataSource`
,
`CronetDataSource`
and
*
AV1 extension:
`OkHttpDataSource`
include headers set in the DataSpec when connecting to the
*
New in this release. The AV1 extension allows use of the
source.
[
libgav1 software decoder
](
https://chromium.googlesource.com/codecs/libgav1/
)
*
Surface information provided by methods
`isHardwareAccelerated`
,
in ExoPlayer. You can read more about playing AV1 videos with ExoPlayer
`isSoftwareOnly`
and
`isVendor`
added in Android 10 in
`MediaCodecInfo`
class
[
here
](
https://medium.com/google-exoplayer/playing-av1-videos-with-exoplayer-a7cb19bedef9
)
.
(
[
#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
)
).
*
VP9 extension:
*
VP9 extension:
*
Rename
`VpxVideoSurfaceView`
to
`VideoDecoderSurfaceView`
*
Update to use NDK r20.
and move it to the core library.
*
Rename
`VpxVideoSurfaceView`
to
`VideoDecoderSurfaceView`
and move it to the
core library.
*
Move
`LibvpxVideoRenderer.MSG_SET_OUTPUT_BUFFER_RENDERER`
to
*
Move
`LibvpxVideoRenderer.MSG_SET_OUTPUT_BUFFER_RENDERER`
to
`C.MSG_SET_OUTPUT_BUFFER_RENDERER`
.
`C.MSG_SET_OUTPUT_BUFFER_RENDERER`
.
*
Use
`VideoDecoderRenderer`
as an implementation of
*
Use
`VideoDecoderRenderer`
as an implementation of
`VideoDecoderOutputBufferRenderer`
, instead of
`VideoDecoderSurfaceView`
.
`VideoDecoderOutputBufferRenderer`
, instead of
`VideoDecoderSurfaceView`
.
*
Rename
`spherical_view`
surface type to
`spherical_gl_surface_view`
.
*
Flac extension:
*
Add automatic audio becoming noisy handling to
`SimpleExoPlayer`
,
*
Update to use NDK r20.
available through
`SimpleExoPlayer.setHandleAudioBecomingNoisy`
.
*
Fix build
*
Post
`AudioFocusManager.onAudioFocusChange`
events to eventHandler, avoiding
(
[
#6601
](
https://github.com/google/ExoPlayer/issues/6601
)
.
multithreaded access to the player or audio focus manager.
*
FFmpeg extension:
*
Add
`Timeline.Window.isLive`
to indicate that a window is a live stream
*
Update to use NDK r20.
(
[
#2668
](
https://github.com/google/ExoPlayer/issues/2668
)
and
*
Update to use FFmpeg version 4.2. It is necessary to rebuild the native part
[
#5973
](
https://github.com/google/ExoPlayer/issues/5973
)
).
of the extension after this change, following the instructions in the
*
Fail more explicitly when local-file Uris contain invalid parts (e.g.
extension's readme.
fragment) (
[
#6470
](
https://github.com/google/ExoPlayer/issues/6470
)
).
*
Opus extension: Update to use NDK r20.
*
Add
`MediaPeriod.isLoading`
to improve
`Player.isLoading`
state.
*
GVR extension: This extension is now deprecated.
*
Make show and hide player controls accessible for TalkBack in
`PlayerView`
.
*
Demo apps (TODO: update links to point to r2.11.0 tag):
*
Pass the codec output
`MediaFormat`
to
`VideoFrameMetadataListener`
.
*
Add
[
SurfaceControl demo app
](
https://github.com/google/ExoPlayer/tree/dev-v2/demos/surface
)
*
Deprecate the GVR extension.
to show how to use the Android 10
`SurfaceControl`
API with ExoPlayer
*
Fix the start of audio getting truncated when transitioning to a new
(
[
#677
](
https://github.com/google/ExoPlayer/issues/677
)
).
item in a playlist of opus streams.
*
Add support for subtitle files to the
*
Fix FLAC extension build
[
Main demo app
](
https://github.com/google/ExoPlayer/tree/dev-v2/demos/main
)
(
[
#6601
](
https://github.com/google/ExoPlayer/issues/6601
)
.
(
[
#5523
](
https://github.com/google/ExoPlayer/issues/5523
)
).
*
Update the ffmpeg, flac and opus extension build instructions to use NDK r20.
*
Remove the IMA demo app. IMA functionality is demonstrated by the
*
Update the ffmpeg extension to release 4.2. It is necessary to rebuild the
[
main demo app
](
https://github.com/google/ExoPlayer/tree/dev-v2/demos/main
)
.
native part of the extension after this change, following the instructions in
*
Add basic DRM support to the
the extension's readme.
[
Cast demo app
](
https://github.com/google/ExoPlayer/tree/dev-v2/demos/cast
)
.
*
Add support for subtitle files to the demo app
*
TestUtils: Publish the
`testutils`
module to simplify unit testing with
(
[
#5523
](
https://github.com/google/ExoPlayer/issues/5523
)
).
ExoPlayer (
[
#6267
](
https://github.com/google/ExoPlayer/issues/6267
)
).
*
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
)
.
### 2.10.7 (2019-11-12) ###
### 2.10.7 (2019-11-12) ###
...
@@ -121,7 +142,7 @@
...
@@ -121,7 +142,7 @@
*
MediaSession extension: Update shuffle and repeat modes when playback state
*
MediaSession extension: Update shuffle and repeat modes when playback state
is invalidated (
[
#6582
](
https://github.com/google/ExoPlayer/issues/6582
)
).
is invalidated (
[
#6582
](
https://github.com/google/ExoPlayer/issues/6582
)
).
*
Fix the start of audio getting truncated when transitioning to a new
*
Fix the start of audio getting truncated when transitioning to a new
item in a playlist of
o
pus streams.
item in a playlist of
O
pus streams.
### 2.10.6 (2019-10-17) ###
### 2.10.6 (2019-10-17) ###
...
@@ -690,7 +711,7 @@
...
@@ -690,7 +711,7 @@
and
`AnalyticsListener`
callbacks
and
`AnalyticsListener`
callbacks
(
[
#4361
](
https://github.com/google/ExoPlayer/issues/4361
)
and
(
[
#4361
](
https://github.com/google/ExoPlayer/issues/4361
)
and
[
#4615
](
https://github.com/google/ExoPlayer/issues/4615
)
).
[
#4615
](
https://github.com/google/ExoPlayer/issues/4615
)
).
*
UI
components
:
*
UI:
*
Add option to
`PlayerView`
to show buffering view when playWhenReady is
*
Add option to
`PlayerView`
to show buffering view when playWhenReady is
false (
[
#4304
](
https://github.com/google/ExoPlayer/issues/4304
)
).
false (
[
#4304
](
https://github.com/google/ExoPlayer/issues/4304
)
).
*
Allow any
`Drawable`
to be used as
`PlayerView`
default artwork.
*
Allow any
`Drawable`
to be used as
`PlayerView`
default artwork.
...
@@ -846,7 +867,7 @@
...
@@ -846,7 +867,7 @@
*
OkHttp extension: Fix to correctly include response headers in thrown
*
OkHttp extension: Fix to correctly include response headers in thrown
`InvalidResponseCodeException`
s.
`InvalidResponseCodeException`
s.
*
Add possibility to cancel
`PlayerMessage`
s.
*
Add possibility to cancel
`PlayerMessage`
s.
*
UI
components
:
*
UI:
*
Add
`PlayerView.setKeepContentOnPlayerReset`
to keep the currently displayed
*
Add
`PlayerView.setKeepContentOnPlayerReset`
to keep the currently displayed
video frame or media artwork visible when the player is reset
video frame or media artwork visible when the player is reset
(
[
#2843
](
https://github.com/google/ExoPlayer/issues/2843
)
).
(
[
#2843
](
https://github.com/google/ExoPlayer/issues/2843
)
).
...
@@ -896,7 +917,7 @@
...
@@ -896,7 +917,7 @@
*
Support live stream clipping with
`ClippingMediaSource`
.
*
Support live stream clipping with
`ClippingMediaSource`
.
*
Allow setting tags for all media sources in their factories. The tag of the
*
Allow setting tags for all media sources in their factories. The tag of the
current window can be retrieved with
`Player.getCurrentTag`
.
current window can be retrieved with
`Player.getCurrentTag`
.
*
UI
components
:
*
UI:
*
Add support for displaying error messages and a buffering spinner in
*
Add support for displaying error messages and a buffering spinner in
`PlayerView`
.
`PlayerView`
.
*
Add support for listening to
`AspectRatioFrameLayout`
's aspect ratio update
*
Add support for listening to
`AspectRatioFrameLayout`
's aspect ratio update
...
@@ -1060,7 +1081,7 @@
...
@@ -1060,7 +1081,7 @@
`SsMediaSource.Factory`
, and
`MergingMediaSource`
.
`SsMediaSource.Factory`
, and
`MergingMediaSource`
.
*
Play out existing buffer before retrying for progressive live streams
*
Play out existing buffer before retrying for progressive live streams
(
[
#1606
](
https://github.com/google/ExoPlayer/issues/1606
)
).
(
[
#1606
](
https://github.com/google/ExoPlayer/issues/1606
)
).
*
UI
components
:
*
UI:
*
Generalized player and control views to allow them to bind with any
*
Generalized player and control views to allow them to bind with any
`Player`
, and renamed them to
`PlayerView`
and
`PlayerControlView`
`Player`
, and renamed them to
`PlayerView`
and
`PlayerControlView`
respectively.
respectively.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment