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
f3444612
authored
Aug 10, 2021
by
christosts
Committed by
Christos Tsilopoulos
Aug 10, 2021
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Bump version to 2.15.0 and tidy release notes
PiperOrigin-RevId: 389871495
parent
067fcdb8
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
111 additions
and
110 deletions
RELEASENOTES.md
constants.gradle
library/common/src/main/java/com/google/android/exoplayer2/ExoPlayerLibraryInfo.java
RELEASENOTES.md
View file @
f3444612
# Release notes
# Release notes
### dev-v2 (not yet released)
### dev-v2 (not yet released)
*
Core Library:
*
Move
`com.google.android.exoplayer2.device.DeviceInfo`
to
`com.google.android.exoplayer2.DeviceInfo`
.
*
Android 12 compatibility:
*
Disable platform transcoding when playing content URIs on Android 12.
*
Add
`ExoPlayer.setVideoChangeFrameRateStrategy`
to allow disabling of
calls from the player to
`Surface.setFrameRate`
. This is useful for
applications wanting to call
`Surface.setFrameRate`
directly from
application code with Android 12's
`Surface.CHANGE_FRAME_RATE_ALWAYS`
.
*
GVR extension:
*
Remove
`GvrAudioProcessor`
, which has been deprecated since 2.11.0.
*
Remove deprecated symbols:
*
Remove
`Renderer.VIDEO_SCALING_MODE_*`
constants. Use identically named
constants in
`C`
instead.
*
Remove
`C.MSG_*`
constants. Use identically named constants in
`Renderer`
instead, except for
`C.MSG_SET_SURFACE`
, which is replaced
with
`Renderer.MSG_SET_VIDEO_OUTPUT`
.
*
Remove
`DeviceListener`
. Use
`Player.Listener`
instead.
### 2.15.0 (2021-08-10)
*
Core Library:
*
Core Library:
*
Add
`needsReconfiguration`
API to the
`MediaCodecAdapter`
interface.
*
Add
`MediaCodecAdapter.needsReconfiguration`
method.
*
Add
`getSeekBackIncrement`
,
`seekBack`
,
`getSeekForwardIncrement`
and
*
Add
`getSeekBackIncrement`
,
`seekBack`
,
`getSeekForwardIncrement`
,
`seekForward`
methods to
`Player`
.
`seekForward`
,
`getMaxSeekToPreviousPosition`
,
`seekToPrevious`
and
*
Add
`getMaxSeekToPreviousPosition`
,
`seekToPrevious`
and
`seekToNext`
`seekToNext`
methods to
`Player`
.
methods to
`Player`
.
*
Rename
`Player`
methods:
*
Rename
`Player`
methods
`hasPrevious`
,
`previous`
,
`hasNext`
and
`next`
*
`hasPrevious`
to
`hasPreviousWindow`
.
to
`hasPreviousWindow`
,
`seekToPreviousWindow`
,
`hasNextWindow`
and
*
`previous`
to
`seekToPreviousWindow`
.
`seekToNextWindow`
, respectively.
*
`hasNext`
to
`hasNextWindow`
.
*
Rename
`Player`
commands
`COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM`
,
*
`next`
to
`seekToNextWindow`
.
`COMMAND_SEEK_TO_NEXT_MEDIA_ITEM`
,
*
Rename
`Player`
commands:
`COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM`
,
`COMMAND_SEEK_TO_MEDIA_ITEM`
and
*
`COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM`
to
`COMMAND_GET_MEDIA_ITEMS`
to
`COMMAND_SEEK_IN_CURRENT_WINDOW`
,
`COMMAND_SEEK_IN_CURRENT_WINDOW`
.
`COMMAND_SEEK_TO_NEXT_WINDOW`
,
`COMMAND_SEEK_TO_PREVIOUS_WINDOW`
,
*
`COMMAND_SEEK_TO_NEXT_MEDIA_ITEM`
to
`COMMAND_SEEK_TO_NEXT_WINDOW`
.
`COMMAND_SEEK_TO_WINDOW`
and
`COMMAND_GET_TIMELINE`
, respectively.
*
`COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM`
to
`COMMAND_SEEK_TO_PREVIOUS_WINDOW`
.
*
`COMMAND_SEEK_TO_MEDIA_ITEM`
to
`COMMAND_SEEK_TO_WINDOW`
.
*
`COMMAND_GET_MEDIA_ITEMS`
to
`COMMAND_GET_TIMELINE`
.
*
Rename
`Player.EventFlags`
IntDef to
`Player.Event`
.
*
Make
`Player`
depend on the new
`PlaybackException`
class instead of
*
Make
`Player`
depend on the new
`PlaybackException`
class instead of
`ExoPlaybackException`
:
`ExoPlaybackException`
:
*
`Player.getPlayerError`
now returns a
`PlaybackException`
.
*
`Player.getPlayerError`
now returns a
`PlaybackException`
.
...
@@ -29,69 +53,33 @@
...
@@ -29,69 +53,33 @@
users can downcast the
`PlaybackException`
instance to obtain
users can downcast the
`PlaybackException`
instance to obtain
implementation-specific fields (like
implementation-specific fields (like
`ExoPlaybackException.rendererIndex`
).
`ExoPlaybackException.rendererIndex`
).
*
`PlaybackException`
introduces an
`errorCode`
which identifies the
*
`PlaybackException`
introduces an
`errorCode`
which identifies the cause
cause of the failure in order to simplify error handling
of the failure in order to simplify error handling
(
[
#1611
](
https://github.com/google/ExoPlayer/issues/1611
)
).
(
[
#1611
](
https://github.com/google/ExoPlayer/issues/1611
)
).
*
Add
`@FallbackType`
to
`LoadErrorHandlingPolicy`
to support
customization of the exclusion duration for locations and tracks.
*
Rename
`Player.EventFlags`
IntDef to
`Player.Event`
.
*
Add a
`DefaultMediaDescriptionAdapter`
for the
*
Add a
`DefaultMediaDescriptionAdapter`
for the
`PlayerNotificationManager`
, that makes use of the
`Player`
`PlayerNotificationManager`
, that makes use of the
`Player`
`MediaMetadata`
to populate the notification fields.
`MediaMetadata`
to populate the notification fields.
*
Deprecate
`Player.getCurrentStaticMetadata`
,
*
Add
`@FallbackType`
to
`LoadErrorHandlingPolicy`
to support
`Player.Listener.onStaticMetadataChanged`
and
customization of the exclusion duration for locations and tracks.
`Player.EVENT_STATIC_METADATA_CHANGED`
. Use
`Player.getMediaMetadata`
,
`Player.Listener.onMediaMetadataChanged`
and
`Player.EVENT_MEDIA_METADATA_CHANGED`
for convenient access to
structured metadata, or access the raw static metadata directly from the
`TrackSelection#getFormat()`
.
*
Deprecate
`ControlDispatcher`
and
`DefaultControlDispatcher`
. Use a
`ForwardingPlayer`
or configure the player to customize operations.
*
Change interface of
`LoadErrorHandlingPolicy`
to support configuring the
*
Change interface of
`LoadErrorHandlingPolicy`
to support configuring the
behavior of track and location fallback. Location fallback is currently
behavior of track and location fallback. Location fallback is currently
only supported for DASH manifests with multiple base URLs.
only supported for DASH manifests with multiple base URLs.
*
Disable platform transcoding when playing content URIs on Android 12.
*
Restrict use of
`AudioTrack.isDirectPlaybackSupported`
to TVs, to avoid
*
Restrict use of
`AudioTrack.isDirectPlaybackSupported`
to TVs, to avoid
listing audio offload encodings as supported for passthrough mode on
listing audio offload encodings as supported for passthrough mode on
mobile devices
mobile devices
(
[
#9239
](
https://github.com/google/ExoPlayer/issues/9239
)
).
(
[
#9239
](
https://github.com/google/ExoPlayer/issues/9239
)
).
*
Remove deprecated symbols:
*
Extractors:
*
Remove
`Player.getPlaybackError`
. Use
`Player.getPlayerError`
instead.
*
Add support for DTS-UHD in MP4
*
Remove
`Player.getCurrentTag`
. Use
`Player.getCurrentMediaItem`
and
(
[
#9163
](
https://github.com/google/ExoPlayer/issues/9163
)
).
`MediaItem.PlaybackProperties.tag`
instead.
*
Text:
*
Remove
`Player.Listener.onTimelineChanged(Timeline, Object, int)`
. Use
*
TTML: Inherit the
`rubyPosition`
value from a containing
`<span
`Player.Listener.onTimelineChanged(Timeline, int)`
instead. The manifest
ruby="container">`
element.
can be accessed using
`Player.getCurrentManifest`
.
*
WebVTT: Add support for CSS
`font-size`
property
*
Remove
`PlaybackPreparer`
. UI components that previously had
(
[
#8964
](
https://github.com/google/ExoPlayer/issues/8964
)
).
`setPlaybackPreparer`
methods will now call
`Player.prepare`
by default.
*
Ad playback:
If this behavior is sufficient, use of
`PlaybackPreparer`
can be removed
*
Support changing ad break positions in the player logic
from application code without replacement. For custom preparation logic,
(
[
#5067
](
https://github.com/google/ExoPlayer/issues/5067
)
).
use a
`ForwardingPlayer`
that implements custom preparation logic in
*
Support resuming content with an offset after an ad group.
`prepare`
.
*
Remove
`setRewindIncrementMs`
and
`setFastForwardIncrementMs`
from UI
components. These increments can be customized by configuring the
`Player`
(see
`setSeekBackIncrementMs`
and
`setSeekForwardIncrementMs`
in
`SimpleExoPlayer.Builder`
), or by using a
`ForwardingPlayer`
that
overrides
`getSeekBackIncrement`
,
`seekBack`
,
`getSeekForwardIncrement`
and
`seekForward`
. The rewind and fast forward buttons can be disabled
by using a
`ForwardingPlayer`
that removes
`COMMAND_SEEK_BACK`
and
`COMMAND_SEEK_FORWARD`
from the available commands.
*
Remove
`PlayerNotificationManager`
constructors and
`createWith`
methods. Use
`PlayerNotificationManager.Builder`
instead.
*
Remove
`PlayerNotificationManager.setNotificationListener`
. Use
`PlayerNotificationManager.Builder.setNotificationListener`
instead.
*
Remove
`PlayerNotificationManager`
`setUseNavigationActions`
and
`setUseNavigationActionsInCompactView`
. Use
`setUseNextAction`
,
`setUsePreviousAction`
,
`setUseNextActionInCompactView`
and
`setUsePreviousActionInCompactView`
instead.
*
Remove
`Format.create`
methods. Use
`Format.Builder`
instead.
*
Remove
`Timeline.getWindow(int, Window, boolean)`
. Use
`Timeline.getWindow(int, Window)`
instead, which will always set tags.
*
Remove
`MediaSource.getTag`
. Use
`MediaSource.getMediaItem`
and
`MediaItem.PlaybackProperties.tag`
instead.
*
Remove
`CastPlayer`
specific playlist manipulation methods. Use
`setMediaItems`
,
`addMediaItems`
,
`removeMediaItem`
and
`moveMediaItem`
instead.
*
UI:
*
UI:
*
Add
`setUseRewindAction`
and
`setUseFastForwardAction`
to
*
Add
`setUseRewindAction`
and
`setUseFastForwardAction`
to
`PlayerNotificationManager`
, and
`setUseFastForwardActionInCompactView`
`PlayerNotificationManager`
, and
`setUseFastForwardActionInCompactView`
...
@@ -108,35 +96,15 @@
...
@@ -108,35 +96,15 @@
available commands.
available commands.
*
Update
`DefaultControlDispatcher`
`getRewindIncrementMs`
and
*
Update
`DefaultControlDispatcher`
`getRewindIncrementMs`
and
`getFastForwardIncrementMs`
to take the player as parameter.
`getFastForwardIncrementMs`
to take the player as parameter.
*
Deprecate
`setControlDispatcher`
in
`PlayerView`
,
`StyledPlayerView`
,
`PlayerControlView`
,
`StyledPlayerControlView`
and
`PlayerNotificationManager`
.
*
HLS:
*
HLS:
*
Fix issue that could cause some playbacks to be stuck buffering
*
Fix issue that could cause some playbacks to be stuck buffering
(
[
#8850
](
https://github.com/google/ExoPlayer/issues/8850
)
,
(
[
#8850
](
https://github.com/google/ExoPlayer/issues/8850
)
,
[
#9153
](
https://github.com/google/ExoPlayer/issues/9153
)
).
[
#9153
](
https://github.com/google/ExoPlayer/issues/9153
)
).
*
Extractors:
*
Report audio track type in
*
Add support for DTS-UHD in MP4
`AnalyticsListener.onDownstreamFormatChanged()`
for audio-only
(
[
#9163
](
https://github.com/google/ExoPlayer/issues/9163
)
).
playlists, so that the
`PlaybackStatsListener`
can derive audio
*
Text:
format-related information
*
TTML: Inherit the
`rubyPosition`
value from a containing
`<span
(
[
#9175
](
https://github.com/google/ExoPlayer/issues/9175
)
).
ruby="container">`
element.
*
WebVTT: Add support for CSS
`font-size`
property
(
[
#8964
](
https://github.com/google/ExoPlayer/issues/8964
)
).
*
Ad playback:
*
Support changing ad break positions in the player logic
(
[
#5067
](
https://github.com/google/ExoPlayer/issues/5067
)
.
*
Support resuming content with an offset after an ad group.
*
OkHttp extension:
*
Switch to OkHttp 4.9.1. This increases the extension's minimum SDK
version requirement from 16 to 21.
*
Cronet extension:
*
Add
`CronetDataSource.Factory.setRequestPriority`
to allow setting the
priority of requests made by
`CronetDataSource`
instances.
*
Leanback extension:
*
Deprecate
`setControlDispatcher`
in
`LeanbackPlayerAdapter`
.
*
Media2 extension:
*
Deprecate
`setControlDispatcher`
in
`SessionPlayerConnector`
.
*
RTSP:
*
RTSP:
*
Use standard RTSP header names
*
Use standard RTSP header names
(
[
#9182
](
https://github.com/google/ExoPlayer/issues/9182
)
).
(
[
#9182
](
https://github.com/google/ExoPlayer/issues/9182
)
).
...
@@ -144,19 +112,52 @@
...
@@ -144,19 +112,52 @@
(
[
#9247
](
https://github.com/google/ExoPlayer/pull/9247
)
).
(
[
#9247
](
https://github.com/google/ExoPlayer/pull/9247
)
).
*
Fix handling of special characters in the RTSP session ID
*
Fix handling of special characters in the RTSP session ID
(
[
#9254
](
https://github.com/google/ExoPlayer/issues/9254
)
).
(
[
#9254
](
https://github.com/google/ExoPlayer/issues/9254
)
).
*
MediaSession extension:
*
SmoothStreaming:
*
Deprecate
`setControlDispatcher`
in
`MediaSessionConnector`
. The
*
Propagate
`StreamIndex`
element
`Name`
attribute value as
`Format`
label
`ControlDispatcher`
parameter has also been deprecated in all
(
[
#9252
](
https://github.com/google/ExoPlayer/issues/9252
)
).
`MediaSessionConnector`
listener methods.
*
Cronet extension:
*
HLS:
*
Add
`CronetDataSource.Factory.setRequestPriority`
to allow setting the
*
Report audio track type in
priority of requests made by
`CronetDataSource`
instances.
`AnalyticsListener.onDownstreamFormatChanged()`
for audio-only
*
OkHttp extension:
playlists, so that the
`PlaybackStatsListener`
can derive audio
*
Switch to OkHttp 4.9.1. This increases the extension's minimum SDK
format-related information.
version requirement from 16 to 21.
(
[
#9175
](
https://github.com/google/ExoPlayer/issues/9175
)
).
*
Remove deprecated symbols:
*
SS:
*
Remove
`CastPlayer`
specific playlist manipulation methods. Use
*
Propagate
`StreamIndex`
element
`Name`
attribute value as
`Format`
`setMediaItems`
,
`addMediaItems`
,
`removeMediaItem`
and
`moveMediaItem`
label (
[
#9252
](
https://github.com/google/ExoPlayer/issues/9252
)
).
instead.
*
Remove
`Format.create`
methods. Use
`Format.Builder`
instead.
*
Remove
`MediaSource.getTag`
. Use
`MediaSource.getMediaItem`
and
`MediaItem.PlaybackProperties.tag`
instead.
*
Remove
`PlaybackPreparer`
. UI components that previously had
`setPlaybackPreparer`
methods will now call
`Player.prepare`
by default.
If this behavior is sufficient, use of
`PlaybackPreparer`
can be removed
from application code without replacement. For custom preparation logic,
use a
`ForwardingPlayer`
that implements custom preparation logic in
`prepare`
.
*
Remove
`Player.Listener.onTimelineChanged(Timeline, Object, int)`
. Use
`Player.Listener.onTimelineChanged(Timeline, int)`
instead. The manifest
can be accessed using
`Player.getCurrentManifest`
.
*
Remove
`Player.getCurrentTag`
. Use
`Player.getCurrentMediaItem`
and
`MediaItem.PlaybackProperties.tag`
instead.
*
Remove
`Player.getPlaybackError`
. Use
`Player.getPlayerError`
instead.
*
Remove
`PlayerNotificationManager`
constructors and
`createWith`
methods. Use
`PlayerNotificationManager.Builder`
instead.
*
Remove
`PlayerNotificationManager.setNotificationListener`
. Use
`PlayerNotificationManager.Builder.setNotificationListener`
instead.
*
Remove
`PlayerNotificationManager`
`setUseNavigationActions`
and
`setUseNavigationActionsInCompactView`
. Use
`setUseNextAction`
,
`setUsePreviousAction`
,
`setUseNextActionInCompactView`
and
`setUsePreviousActionInCompactView`
instead.
*
Remove
`setRewindIncrementMs`
and
`setFastForwardIncrementMs`
from UI
components. These increments can be customized by configuring the
`Player`
(see
`setSeekBackIncrementMs`
and
`setSeekForwardIncrementMs`
in
`SimpleExoPlayer.Builder`
), or by using a
`ForwardingPlayer`
that
overrides
`getSeekBackIncrement`
,
`seekBack`
,
`getSeekForwardIncrement`
and
`seekForward`
. The rewind and fast forward buttons can be disabled
by using a
`ForwardingPlayer`
that removes
`COMMAND_SEEK_BACK`
and
`COMMAND_SEEK_FORWARD`
from the available commands.
*
Remove
`Timeline.getWindow(int, Window, boolean)`
. Use
`Timeline.getWindow(int, Window)`
instead, which will always set tags.
### 2.14.2 (2021-07-20)
### 2.14.2 (2021-07-20)
...
...
constants.gradle
View file @
f3444612
...
@@ -13,8 +13,8 @@
...
@@ -13,8 +13,8 @@
// limitations under the License.
// limitations under the License.
project
.
ext
{
project
.
ext
{
// ExoPlayer version and version code.
// ExoPlayer version and version code.
releaseVersion
=
'2.1
4.2
'
releaseVersion
=
'2.1
5.0
'
releaseVersionCode
=
201
4002
releaseVersionCode
=
201
5000
minSdkVersion
=
16
minSdkVersion
=
16
appTargetSdkVersion
=
29
appTargetSdkVersion
=
29
targetSdkVersion
=
30
targetSdkVersion
=
30
...
...
library/common/src/main/java/com/google/android/exoplayer2/ExoPlayerLibraryInfo.java
View file @
f3444612
...
@@ -26,11 +26,11 @@ public final class ExoPlayerLibraryInfo {
...
@@ -26,11 +26,11 @@ public final class ExoPlayerLibraryInfo {
/** The version of the library expressed as a string, for example "1.2.3". */
/** The version of the library expressed as a string, for example "1.2.3". */
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION_INT) or vice versa.
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION_INT) or vice versa.
public
static
final
String
VERSION
=
"2.1
4.2
"
;
public
static
final
String
VERSION
=
"2.1
5.0
"
;
/** The version of the library expressed as {@code "ExoPlayerLib/" + VERSION}. */
/** The version of the library expressed as {@code "ExoPlayerLib/" + VERSION}. */
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION) or vice versa.
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION) or vice versa.
public
static
final
String
VERSION_SLASHY
=
"ExoPlayerLib/2.1
4.2
"
;
public
static
final
String
VERSION_SLASHY
=
"ExoPlayerLib/2.1
5.0
"
;
/**
/**
* The version of the library expressed as an integer, for example 1002003.
* The version of the library expressed as an integer, for example 1002003.
...
@@ -40,7 +40,7 @@ public final class ExoPlayerLibraryInfo {
...
@@ -40,7 +40,7 @@ public final class ExoPlayerLibraryInfo {
* integer version 123045006 (123-045-006).
* integer version 123045006 (123-045-006).
*/
*/
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION) or vice versa.
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION) or vice versa.
public
static
final
int
VERSION_INT
=
201
4002
;
public
static
final
int
VERSION_INT
=
201
5000
;
/**
/**
* The default user agent for requests made by the library.
* The default user agent for requests made by the library.
...
...
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