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
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
117 additions
and
96 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`
.
*
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.
display by default.
*
Add
`PlaybackStatsListener`
to collect
`PlaybackStats`
for playbacks analysis
*
Update
`DefaultTrackSelector`
to set text language and role flag
and analytics reporting (TODO: link to developer guide page/blog post).
constraints for the device's accessibility settings by default
*
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
)
).
(
[
#5749
](
https://github.com/google/ExoPlayer/issues/5749
)
).
*
Remove
`AnalyticsCollector.Factory`
. Instances can be created directly and
*
Add option to set preferred text role flags using
the
`Player`
set later using
`AnalyticsCollector.setPlayer`
.
`DefaultTrackSelector.ParametersBuilder.setPreferredTextRoleFlags`
.
*
Replace
`ExoPlayerFactory`
by
`SimpleExoPlayer.Builder`
and
*
Android 10:
`ExoPlayer.Builder`
.
*
Set
`compileSdkVersion`
to 29 to enable use of Android 10 APIs.
*
Fix issue where player errors are thrown too early at playlist transitions
*
Expose new
`isHardwareAccelerated`
,
`isSoftwareOnly`
and
`isVendor`
flags
(
[
#5407
](
https://github.com/google/ExoPlayer/issues/5407
)
).
in
`MediaCodecInfo`
*
Deprecate
`setTag`
parameter of
`Timeline.getWindow`
. Tags will always be set.
(
[
#5839
](
https://github.com/google/ExoPlayer/issues/5839
)
).
*
Support out-of-band HDR10+ metadata for VP9 in WebM/Matroska.
*
Add
`allowedCapturePolicy`
field to
`AudioAttributes`
to allow to
*
Fix issue where HLS streams get stuck in infinite buffering state after
configuration of the audio capture policy.
postroll ad (
[
#6314
](
https://github.com/google/ExoPlayer/issues/6314
)
).
*
Video:
*
Publish
`testutils`
module to simplify unit testing with ExoPlayer
*
Pass the codec output
`MediaFormat`
to
`VideoFrameMetadataListener`
.
(
[
#6267
](
https://github.com/google/ExoPlayer/issues/6267
)
).
*
Support out-of-band HDR10+ metadata for VP9 in WebM/Matroska.
*
Add
`uid`
to
`Timeline.Window`
to uniquely identify window instances.
*
Assume that protected content requires a secure decoder when evaluating
*
Fix Dolby Vision fallback to AVC and HEVC.
whether
`MediaCodecVideoRenderer`
supports a given video format
*
Add demo app to show how to use the Android 10
`SurfaceControl`
API with
(
[
#5568
](
https://github.com/google/ExoPlayer/issues/5568
)
).
ExoPlayer (
[
#677
](
https://github.com/google/ExoPlayer/issues/677
)
).
*
Fix Dolby Vision fallback to AVC and HEVC.
*
Add automatic
`WakeLock`
handling to
`SimpleExoPlayer`
through calling
*
Audio:
`setEnableWakeLock`
, which requires the
*
Fix E-AC3 JOC passthrough playback failing to initialize due to incorrect
`android.Manifest.permission#WAKE_LOCK`
permission
channel count check.
(
[
#5846
](
https://github.com/google/ExoPlayer/issues/5846
)
).
*
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
)
).
*
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:
*
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
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
)
.
(
[
#6601
](
https://github.com/google/ExoPlayer/issues/6601
)
.
*
Update the ffmpeg, flac and opus extension build instructions to use NDK r20.
*
FFmpeg extension:
*
Update the ffmpeg extension to release 4.2. It is necessary to rebuild the
*
Update to use NDK r20.
native part of the extension after this change, following the instructions in
*
Update to use FFmpeg version 4.2. It is necessary to rebuild the native part
the extension's readme.
of the extension after this change, following the instructions in the
*
Add support for subtitle files to the demo app
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
)
).
(
[
#5523
](
https://github.com/google/ExoPlayer/issues/5523
)
).
*
Handle new signaling for E-AC3 JOC audio in DASH
*
Remove the IMA demo app. IMA functionality is demonstrated by the
(
[
#6636
](
https://github.com/google/ExoPlayer/issues/6636
)
).
[
main demo app
](
https://github.com/google/ExoPlayer/tree/dev-v2/demos/main
)
.
*
Require an end time or duration for SubRip (SRT) and SubStation Alpha
*
Add basic DRM support to the
(SSA/ASS) subtitles. This applies to both sidecar files & subtitles
[
Cast demo app
](
https://github.com/google/ExoPlayer/tree/dev-v2/demos/cast
)
.
[
embedded in Matroska streams
](
https://matroska.org/technical/specs/subtitles/index.html
)
.
*
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) ###
### 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