1.0.0-rc01
christosts
released this
16 Feb 17:14
·
6970 commits
to release
since this release
- Core library:
- Tweak the renderer's decoder ordering logic to uphold the
MediaCodecSelector
's preferences, even if a decoder reports it may not be able to play the media performantly. For example with default selector, hardware decoder with only functional support will be
preferred over software decoder that fully supports the format (#10604). - Add
ExoPlayer.Builder.setPlaybackLooper
that sets a pre-existing playback thread for a new ExoPlayer instance. - Allow download manager helpers to be cleared (#10776).
- Add parameter to
BasePlayer.seekTo
to also indicate the command used for seeking. - Use theme when loading drawables on API 21+ (#220).
- Add
ConcatenatingMediaSource2
that allows combining multiple media items into a single window (#247).
- Tweak the renderer's decoder ordering logic to uphold the
- Extractors:
- Throw a
ParserException
instead of aNullPointerException
if the sample table (stbl) is missing a required sample description (stsd) when parsing trak atoms. - Correctly skip samples when seeking directly to a sync frame in fMP4 (#10941).
- Throw a
- Audio:
- Use the compressed audio format bitrate to calculate the min buffer size for
AudioTrack
in direct playbacks (passthrough).
- Use the compressed audio format bitrate to calculate the min buffer size for
- Text:
- Fix
TextRenderer
passing an invalid (negative) index toSubtitle.getEventTime
if a subtitle file contains no cues. - SubRip: Add support for UTF-16 files if they start with a byte order mark.
- Fix
- Metadata:
- Parse multiple null-separated values from ID3 frames, as permitted by ID3 v2.4.
- Add
MediaMetadata.mediaType
to denote the type of content or the type of folder described by the metadata. - Add
MediaMetadata.isBrowsable
as a replacement forMediaMetadata.folderType
. The folder type will be deprecated in the next release.
- DASH:
- Add full parsing for image adaptation sets, including tile counts (#3752).
- UI:
- Session:
- Add abstract
SimpleBasePlayer
to help implement thePlayer
interface for custom players. - Add helper method to convert platform session token to Media3
SessionToken
(#171). - Use
onMediaMetadataChanged
to trigger updates of the platform media session (#219). - Add the media session as an argument of
getMediaButtons()
of theDefaultMediaNotificationProvider
and use immutable lists for clarity (#216). - Add
onSetMediaItems
callback listener to provide means to modify/setMediaItem
list, starting index and position by session before setting onto Player (#156). - Avoid double tap detection for non-Bluetooth media button events (#233).
- Make
QueueTimeline
more robust in case of a shady legacy session state (#241).
- Add abstract
- Metadata:
- Parse multiple null-separated values from ID3 frames, as permitted by ID3 v2.4.
- Add
MediaMetadata.mediaType
to denote the type of content or the type of folder described by the metadata. - Add
MediaMetadata.isBrowsable
as a replacement forMediaMetadata.folderType
. The folder type will be deprecated in the next release.
- Cast extension:
- Bump Cast SDK version to 21.2.0.
- IMA extension:
- Remove player listener of the
ImaServerSideAdInsertionMediaSource
on the application thread to avoid threading issues. - Add a property
focusSkipButtonWhenAvailable
to theImaServerSideAdInsertionMediaSource.AdsLoader.Builder
to request focusing the skip button on TV devices and set it to true by default. - Add a method
focusSkipButton()
to theImaServerSideAdInsertionMediaSource.AdsLoader
to programmatically request to focus the skip button. - Bump IMA SDK version to 3.29.0.
- Remove player listener of the
- Demo app:
- Request notification permission for download notifications at runtime (#10884).