1.6.0-alpha02
Pre-release
Pre-release
·
676 commits
to release
since this release
- Common Library:
- Fix bug in
SimpleBasePlayer
where setting a newcurrentMediaItemIndex
inState
aftersetPlaylist
withnull
MediaMetadata
does not reevaluate the metadata (#1940).
- Fix bug in
- ExoPlayer:
- Add experimental 'ExoPlayer' pre-warming support for playback using
MediaCodecVideoRenderer
. You can configureDefaultRenderersFactory
throughexperimentalSetEnableMediaCodecVideoRendererPrewarming
to provide a secondaryMediaCodecVideoRenderer
toExoPlayer
. If enabled,ExoPlayer
pre-processes the video of consecutive media items during playback to reduce media item transition latency. - Fix issue where additional decode-only frames may be displayed in quick succession when transitioning to content media after a mid-roll ad.
- Make
DefaultRenderersFactory
add twoMetadataRenderer
instances to enable apps to receive two different schemes of metadata by default. - Initialize
DeviceInfo
and device volume asynchronously (if enabled usingsetDeviceVolumeControlEnabled
). These values aren't available instantly afterExoPlayer.Builder.build()
, andPlayer.Listener
notifies changes throughonDeviceInfoChanged
andonDeviceVolumeChanged
. - Reevaluate whether the ongoing load of a chunk should be cancelled when playback is paused (#1785).
- Add experimental 'ExoPlayer' pre-warming support for playback using
- Transformer:
- Enable support for Android platform diagnostics using
MediaMetricsManager
. Transformer forwards editing events and performance data to the platform, which helps to provide system performance and debugging information on the device. This data may also be collected by Google if sharing usage and diagnostics data is enabled by the user of the device. Apps can opt-out of contributing to platform diagnostics for Transformer withTransformer.Builder.setUsePlatformDiagnostics(false)
. - Split
InAppMuxer
intoInAppMp4Muxer
andInAppFragmentedMp4Muxer
. You useInAppMp4Muxer
to produce a non-fragmented MP4 file, whileInAppFragmentedMp4Muxer
is for producing a fragmented MP4 file. - Move
Muxer
interface frommedia3-muxer
tomedia3-transformer
. - Add support for transcoding and transmuxing Dolby Vision (profile 8) format.
- Enable support for Android platform diagnostics using
- Extractors:
- Fix handling of NAL units with lengths expressed in 1 or 2 bytes (rather than 4).
- Fix
ArrayIndexOutOfBoundsException
in MP4 edit lists when the edit list starts at a non-sync frame with no preceding sync frame (#2062).
- Audio:
- Don't bypass
SonicAudioProcessor
whenSpeedChangingAudioProcessor
is configured with default parameters. - Fix underflow in
Sonic#getOutputSize()
that could causeDefaultAudioSink
to stall. - Fix
MediaCodecAudioRenderer.getDurationToProgressUs()
andDecoderAudioRenderer.getDurationToProgressUs()
so that seeks correctly reset the provided durations.
- Don't bypass
- Text:
- TTML: Add support for referencing
tts:origin
andtts:extent
usingstyle
(#2953). - Restrict WebVTT and SubRip timestamps to exactly 3 decimal places. Previously we incorrectly parsed any number of decimal places but always assumed the value was in milliseconds, leading to incorrect timestamps (#1997).
- Add support for VobSub subtitles (#8260).
- Fix playback hanging when a playlist contains clipped items with CEA-608 or CEA-708 captions.
- Fix
IllegalStateException
when an SSA file contains a cue with zero duration (start and end time equal) (#2052). - Suppress (and log) subtitle parsing errors when subtitles are muxed into the same container as audio and video (#2052).
- TTML: Add support for referencing
- Muxers:
- Renamed
setSampleCopyEnabled()
method tosetSampleCopyingEnabled()
in bothMp4Muxer.Builder
andFragmentedMp4Muxer.Builder
. Mp4Muxer.addTrack()
andFragmentedMp4Muxer.addTrack()
now return anint
track ID instead of aTrackToken
.Mp4Muxer
andFragmentedMp4Muxer
no longer implementMuxer
interface.
- Renamed
- Session:
- Fix bug where calling a
Player
method on aMediaController
connected to a legacy session dropped changes from a pending update.
- Fix bug where calling a
- UI:
- Add
PresentationState
state holder class and the correspondingrememberPresentationState
Composable tomedia3-ui-compose
.
- Add
- HLS Extension:
- Parse
SUPPLEMENTAL-CODECS
tag from HLS playlist to detect Dolby Vision formats (#1785).
- Parse
- DASH Extension:
- Fix issue when calculating the update interval for ad insertion in multi-period live streams (#1698).
- Parse
scte214:supplementalCodecs
attribute from DASH manifest to detect Dolby Vision formats (#1785). - Improve handling of period transitions in live streams where the period contains media samples beyond the declared period duration (#1698).
- Demo app:
- Use
PresentationState
to control the aspect ratio ofPlayerSurface
Composable. This depends on the ContentScale type and covers it with a shutter-overlay before the first frame is rendered.
- Use
- Remove deprecated symbols:
- Removed
ExoPlayer.VideoComponent
,ExoPlayer.AudioComponent
,ExoPlayer.TextComponent
andExoPlayer.DeviceComponent
.
- Removed