1.9.0-rc01
·
1680 commits
to release
since this release
- Common Library:
- Fix auto-detection of
TrackGrouptrack type by not ignoring custom sample MIME type and falling back to using the potentially wrong track type from the container MIME type (#2860).
- Fix auto-detection of
- ExoPlayer:
- Add API to set and observe codec parameters for audio and video tracks. This feature is implemented for
MediaCodecbased renderers and requires API 29+.- Use
ExoPlayer.setAudioCodecParameters()andExoPlayer.setVideoCodecParameters()to apply parameters. - Use
ExoPlayer.addAudioCodecParametersChangeListener()andExoPlayer.addVideoCodecParametersChangeListener()to listen for changes. Observing vendor-specific keys requires API 31+.
- Use
- Fix
IllegalStateExceptioncaused by setting an empty media source after seeking to a non-zero position and then preparing the player with a non-empty media source. - Fix bug where seeking into other media items while in scrubbing mode could cause
IllegalStateException. - Fix potential
NullPointerExceptioninDefaultPlaybackSessionManager(#2885). - Enable improvements in seeking performance for eligible videos.
- Re-enable use of asynchronous decryption in MediaCodec on API 36+ where timeout issues with this platform API have been fixed (#1641).
- Change the default value of
MediaCodecVideoRenderer.experimentalSetLateThresholdToDropDecoderInputUsto 15ms and enable more efficient dropping of video frames before decoding for eligible videos. - Add maximum memory limit to the automatic memory calculation in
DefaultLoadControl. This should only take effect if an excessive number of tracks get selected (#2860). - Fix bug where, if playing in a playlist or repeat mode, seeking in scrub mode near the end could cause a seek to the next media item.
- Add API to set and observe codec parameters for audio and video tracks. This feature is implemented for
- Extractors:
- MP3: Change
Mp3Extractorto default to a constant bitrate (CBR) assumption when no seeking metadata (e.g., Xing, VBRI) is found, even whenFLAG_ENABLE_INDEX_SEEKINGis set. This is based on the MP3 specification's history, where CBR was standard and VBR requires explicit headers. This improves immediate seekability for files without metadata at the cost of potential accuracy for VBR files lacking headers. Index seeking is now used as a fallback if the CBR assumption is not seekable (e.g., for streams of unknown length) (#2848).
- MP3: Change
- Inspector:
- Add
androidx.media3.inspector.MediaExtractorCompat, a drop-in replacement for the platform'sandroid.media.MediaExtractorthat provides a way to extract raw, encoded media samples from a media file. The existingandroidx.media3.exoplayer.MediaExtractorCompatis now deprecated in favor of this new class.
- Add
- Session:
- Add backwards-compatibility for
CommandButtoninstances usingPlayer.Commandor non-customSessionCommandto define their action. These are now correctly represented in platform media sessions, for example for System UI or Android Auto. - Fix issue where the same
Bitmapis compressed multiple times when connecting aMediaControllerto a platform media session.
- Add backwards-compatibility for
- HLS extension:
- Properly handle fetching the next chunk for an
HlsMediaPlaylistwith no segments (#2821). - Use the default start position for pre rolls with live streams.
- Properly handle fetching the next chunk for an
- Decoder extensions (FFmpeg, VP9, AV1, etc.):
- FFmpeg extension: Fix an issue that prevented some FLAC files from playing by ensuring the
STREAMINFOblock is correctly parsed and passed to the decoder (#2887).
- FFmpeg extension: Fix an issue that prevented some FLAC files from playing by ensuring the
- Remove deprecated symbols:
- Remove
BitmapFactoryImageDecoder.BitmapDecoder. UseExternallyLoadedImageDecoderinstead. - Remove deprecated
ShadowMediaCodecConfig.forAllSupportedMimeTypes(). UseShadowMediaCodecConfig.withAllDefaultSupportedCodecs()instead. - Remove deprecated
ShadowMediaCodecConfig.withNoDefaultSupportedMimeTypes(). UseShadowMediaCodecConfig.withNoDefaultSupportedCodecs()instead.
- Remove