Deprecate SimpleExoPlayer. All functionality has been moved to ExoPlayer instead. ExoPlayer.Builder can be used instead of SimpleExoPlayer.Builder.
Add track selection methods to the Player interface, for example, Player.getCurrentTracksInfo and Player.setTrackSelectionParameters. These methods can be used instead of directly accessing the track selector.
Enable MediaCodec asynchronous queueing by default on devices with API level >= 31. Add methods in DefaultMediaCodecRendererFactory and DefaultRenderersFactory to force enable or force disable asynchronous queueing (6348).
Remove final dependency on jcenter().
Fix mediaMetadata being reset when media is repeated (#9458).
Adjust ExoPlayerMediaMetadata update priority, such that values input through the MediaItem.MediaMetadata are used above media derived values.
Move com.google.android.exoplayer2.device.DeviceInfo to com.google.android.exoplayer2.DeviceInfo.
Move com.google.android.exoplayer2.drm.DecryptionException to com.google.android.exoplayer2.decoder.CryptoException.
Move com.google.android.exoplayer2.upstream.cache.CachedRegionTracker to com.google.android.exoplayer2.upstream.CachedRegionTracker.
Move Player.addListener(EventListener) and Player.removeListener(EventListener) out of Player into subclasses.
Android 12 compatibility:
Keep DownloadService started and in the foreground whilst waiting for requirements to be met on Android 12. This is necessary due to new foreground service launch restrictions. DownloadService.getScheduler will not be called on Android 12 devices.
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.
Upgrade the WorkManager extension to depend on androidx.work:work-runtime:2.7.0. Earlier versions of work-runtime
are not compatible with apps targeting Android 12, and will crash with an IllegalArgumentException when creating PendingIntents (#9181).
Video:
Fix bug in MediaCodecVideoRenderer that resulted in re-using a released Surface when playing without an app-provided Surface (#9476).
DRM:
Log an error (instead of throwing IllegalStateException) when calling DefaultDrmSession#release() on a fully released session
(#9392).
UI:
SubtitleView no longer implements TextOutput. SubtitleView implements Player.Listener, so can be registered to a player with Player.addListener.
Fix initial timestamp display in PlayerControlView (#9524).
Fix capitalization of languages in the track selector (#9452).
Extractors:
MP4: Correctly handle HEVC tracks with pixel aspect ratios other than 1.
MP4: Add support for Dolby TrueHD (only for unfragmented streams) (#9496).
MP4: Avoid throwing ArrayIndexOutOfBoundsException when parsing invalid colr boxes produced by some device cameras (#9332).
MP4: Parse HDR static metadata from the clli and mdcv boxes.
TS: Correctly handle HEVC tracks with pixel aspect ratios other than 1.
Modify DownloadService behavior when DownloadService.getScheduler returns null, or returns a Scheduler that does not support the requirements for downloads to continue. In both cases, DownloadService will now remain started and in the foreground whilst waiting for requirements to be met.
Modify DownloadService behavior when running on Android 12 and above. See the "Android 12 compatibility" section above.
RTSP:
Support RFC4566 SDP attribute field grammar (#9430).
DASH:
Populate Format.sampleMimeType, width and height for image AdaptationSet elements (#9500).
Deprecate SimpleExoPlayer. All functionality has been moved to
ExoPlayer instead. ExoPlayer.Builder can be used instead of
SimpleExoPlayer.Builder.
Add track selection methods to the Player interface, for example,
Player.getCurrentTracksInfo and Player.setTrackSelectionParameters.
These methods can be used instead of directly accessing the track
selector.
Enable MediaCodec asynchronous queueing by default on devices with API
level >= 31. Add methods in DefaultMediaCodecRendererFactory and
DefaultRenderersFactory to force enable or force disable asynchronous
queueing (6348).
Remove final dependency on jcenter().
Fix mediaMetadata being reset when media is repeated
(#9458).
Adjust ExoPlayerMediaMetadata update priority, such that values
input through the MediaItem.MediaMetadata are used above media derived
values.
Move com.google.android.exoplayer2.device.DeviceInfo to
com.google.android.exoplayer2.DeviceInfo.
Move com.google.android.exoplayer2.drm.DecryptionException to
com.google.android.exoplayer2.decoder.CryptoException.
Move com.google.android.exoplayer2.upstream.cache.CachedRegionTracker
to com.google.android.exoplayer2.upstream.CachedRegionTracker.
Move Player.addListener(EventListener) and
Player.removeListener(EventListener) out of Player into subclasses.
Android 12 compatibility:
Keep DownloadService started and in the foreground whilst waiting for
requirements to be met on Android 12. This is necessary due to new
foreground service launch restrictions.
DownloadService.getScheduler will not be called on Android 12 devices.
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.
Upgrade the WorkManager extension to depend on
androidx.work:work-runtime:2.7.0. Earlier versions of work-runtime
are not compatible with apps targeting Android 12, and will crash with
an IllegalArgumentException when creating PendingIntents
(#9181).
Video:
Fix bug in MediaCodecVideoRenderer that resulted in re-using a
released Surface when playing without an app-provided Surface
(#9476).
DRM:
Log an error (instead of throwing IllegalStateException) when calling
DefaultDrmSession#release() on a fully released session
... (truncated)
Commits
7fe9ecc Merge pull request #9648 from google/dev-v2-r2.16.0
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps exoplayer from 2.15.1 to 2.16.0.
Release notes
Sourced from exoplayer's releases.
... (truncated)
Changelog
Sourced from exoplayer's changelog.
... (truncated)
Commits
7fe9ecc
Merge pull request #9648 from google/dev-v2-r2.16.07b89c43
Update Javadoc for 2.16.06388dc6
Update release notes for 2.16.0de71fd6
Bump version to 2.16.0f6e0790
Fix END_OF_STREAM transformer timestamp matching previous.293cf2f
Fix broken link on supported-formats dev guide page9e247d2
WavExtractor: split header reading state into 2 statesac66487
Add missing RetentionPolicy for IntDefbe4ea15
Parse HDR static metadata from MP4 filescddebdc
Suppress lint warnings in leanback module.Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)