- Core Library:
- Fix gradle config to allow specifying a relative path for
exoplayerRoot
when depending on ExoPlayer locally
(#8927). - Update
MediaItem.Builder
javadoc to discourage calling setters that will be (currently) ignored if another setter is not also called.
- Fix gradle config to allow specifying a relative path for
- Extractors:
- Add support for MPEG-H 3D Audio in MP4 extractors (#8860).
- Video:
- Fix bug that could cause
CodecException: Error 0xffffffff
to be thrown fromMediaCodec.native_setSurface
in use cases that involve both swapping the outputSurface
and a mixture of secure and non-secure content being played (#8776).
- Fix bug that could cause
- HLS:
- Use the
PRECISE
attribute inEXT-X-START
to select the default start position. - Fix a bug where skipping into spliced-in chunks triggered an assertion error (#8937).
- Use the
- DRM:
- Keep secure
MediaCodec
instances initialized when disabling (but not resetting)MediaCodecRenderer
. This helps re-use secure decoders in more contexts, which avoids the 'black flash' caused by detaching aSurface
from a secure decoder on some devices (#8842). It will also result in DRM license refresh network requests while the player is stopped ifPlayer#setForegroundMode
is true. - Fix issue where offline keys were unnecessarily (and incorrectly) restored into a session before being released. This call sequence is explicitly disallowed in OEMCrypto v16.
- Keep secure
- UI:
- Keep subtitle language features embedded (e.g. rubies & tate-chu-yoko) in
Cue.text
even whenSubtitleView#setApplyEmbeddedStyles()
isfalse
. - Fix
NullPointerException
inStyledPlayerView
that could occur after callingStyledPlayerView.setPlayer(null)
(#8985).
- Keep subtitle language features embedded (e.g. rubies & tate-chu-yoko) in
- RTSP:
- GL demo app:
- Fix texture transformation to avoid green bars shown on some videos (#8992).