Skip to content

1.6.0-alpha02

Pre-release
Pre-release
Compare
Choose a tag to compare
@rohitjoins rohitjoins released this 31 Jan 17:12
· 676 commits to release since this release
  • Common Library:
    • Fix bug in SimpleBasePlayer where setting a new currentMediaItemIndex in State after setPlaylist with null MediaMetadata does not reevaluate the metadata (#1940).
  • ExoPlayer:
    • Add experimental 'ExoPlayer' pre-warming support for playback using MediaCodecVideoRenderer. You can configure DefaultRenderersFactory through experimentalSetEnableMediaCodecVideoRendererPrewarming to provide a secondary MediaCodecVideoRenderer to ExoPlayer. 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 two MetadataRenderer instances to enable apps to receive two different schemes of metadata by default.
    • Initialize DeviceInfo and device volume asynchronously (if enabled using setDeviceVolumeControlEnabled). These values aren't available instantly after ExoPlayer.Builder.build(), and Player.Listener notifies changes through onDeviceInfoChanged and onDeviceVolumeChanged.
    • Reevaluate whether the ongoing load of a chunk should be cancelled when playback is paused (#1785).
  • 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 with Transformer.Builder.setUsePlatformDiagnostics(false).
    • Split InAppMuxer into InAppMp4Muxer and InAppFragmentedMp4Muxer. You use InAppMp4Muxer to produce a non-fragmented MP4 file, while InAppFragmentedMp4Muxer is for producing a fragmented MP4 file.
    • Move Muxer interface from media3-muxer to media3-transformer.
    • Add support for transcoding and transmuxing Dolby Vision (profile 8) format.
  • 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 when SpeedChangingAudioProcessor is configured with default parameters.
    • Fix underflow in Sonic#getOutputSize() that could cause DefaultAudioSink to stall.
    • Fix MediaCodecAudioRenderer.getDurationToProgressUs() and DecoderAudioRenderer.getDurationToProgressUs() so that seeks correctly reset the provided durations.
  • Text:
    • TTML: Add support for referencing tts:origin and tts:extent using style (#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).
  • Muxers:
    • Renamed setSampleCopyEnabled() method to setSampleCopyingEnabled() in both Mp4Muxer.Builder and FragmentedMp4Muxer.Builder.
    • Mp4Muxer.addTrack() and FragmentedMp4Muxer.addTrack() now return an int track ID instead of a TrackToken.
    • Mp4Muxer and FragmentedMp4Muxer no longer implement Muxer interface.
  • Session:
    • Fix bug where calling a Player method on a MediaController connected to a legacy session dropped changes from a pending update.
  • UI:
    • Add PresentationState state holder class and the corresponding rememberPresentationState Composable to media3-ui-compose.
  • HLS Extension:
    • Parse SUPPLEMENTAL-CODECS tag from HLS playlist to detect Dolby Vision formats (#1785).
  • 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 of PlayerSurface Composable. This depends on the ContentScale type and covers it with a shutter-overlay before the first frame is rendered.
  • Remove deprecated symbols:
    • Removed ExoPlayer.VideoComponent, ExoPlayer.AudioComponent, ExoPlayer.TextComponent and ExoPlayer.DeviceComponent.