- Common library:
- Add
Format.primaryTrackGroupIdto identify the primary group of embeddedFormatinstances (#294).
- Add
- ExoPlayer:
- Track selection:
- Change signature of
DefaultTrackSelector.selectAllTracksto include the output array as a parameter, pre-populated with track overrides. - Fix issue where embedded metadata tracks are selected irrespective of whether the corresponding primary track is selected (#294).
- Stabilize
TrackSelectionParametersoptions forpreferredVideoLanguages,preferredVideoLabels,preferredAudioLabels,preferredTextLabelsandselectTextByDefault.
- Change signature of
- Extractors:
- MP4: Support files with large
uuidboxes before other boxes likemoov(#3046). - MP4: Add support for Versatile Video Coding (VVC) tracks in MP4 containers.
- MP4: Support files with large
- Audio:
- Improve the retry logic of
AudioOutputinitialization inDefaultAudioSink(#2905). - Attempt to match the output layout of the speakers (or Spatializer if applicable) when decoding IAMF, both with the IAMF extension and media codec decoders, supported by new fields and logic in AudioCapabilities and AudioCapabilitiesReceiver.
- Improve the retry logic of
- Metadata:
- Increase default count of metadata renderers to four to cover all potential metadata tracks published by HLS variants and renditions (#3043).
- Session:
- UI:
- Add
PlayerComposable tomedia3-ui-compose-material3which combines aContentFramewith customizable controls aligned to top, center, and bottom.
- Add
- HLS extension:
- DASH extension:
- Decoder extensions (FFmpeg, VP9, AV1, etc.):
- Add MPEG-H UI manager support to the MPEG-H decoder extension (#3066).
- Remove deprecated symbols:
- Remove
androidx.media3.extractor.metadata.flac.VorbisComment. Useandroidx.media3.extractor.metadata.vorbis.VorbisCommentinstead. - Remove
MediaSource.prepareSource(MediaSourceCaller, TransferListener). UseMediaSource.prepareSource(MediaSourceCaller, TransferListener, PlayerId)instead.
- Remove