2024-04-09
·
93 commits
to main
since this release
Media3: v1.3.1
April 11, 2024
androidx.media3:media3-*:1.3.1 is released. Version 1.3.1 contains these commits.
- Common Library:
- Add
Format.labelsto allow localized or other alternative labels.
- Add
- ExoPlayer:
- Fix issue where
PreloadMediaPeriodcannot retain the streams when it is preloaded again. - Apply the correct corresponding
TrackSelectionResultto the playing period in track reselection. - Start early-enabled renderers only after advancing the playing period when transitioning between media items (#1017).
- Add missing return type to proguard
-keepclasseswithmembersrule forDefaultVideoFrameProcessor.Factory.Builder.build()(#1187).
- Fix issue where
- Transformer:
- Add workaround for exception thrown due to
MediaMuxernot supporting negative presentation timestamps before API 30.
- Add workaround for exception thrown due to
- Track Selection:
DefaultTrackSelector: Prefer video tracks with a 'reasonable' frame rate (>=10fps) over those with a lower or unset frame rate. This ensures the player selects the 'real' video track in MP4s extracted from motion photos that can contain two HEVC tracks where one has a higher resolution but a very small number of frames (#1051).
- Extractors:
- Fix issue where padding was not skipped when reading odd-sized chunks from WAV files (#1117).
- MP3: Populate
Format.averageBitratefrom metadata frames such asXINGandVBRI. - MPEG-TS: Revert a change that aimed to ensure the last frame is rendered by passing the last access unit of a stream to the sample queue (#7909). This is due to the change causing new problems with I-frame only HLS streams (#1150) and H.262 HLS streams (#1126).
- Audio:
- Allow renderer recovery by disabling offload if audio track fails to initialize in offload mode.
- Video:
- Add workaround for a device issue on Galaxy Tab S7 FE, Chromecast with Google TV, and Lenovo M10 FHD Plus that causes 60fps H265 streams to be marked as unsupported
- Add workaround that ensures the first frame is always rendered while tunneling even if the device does not do this automatically as required by the API (#1169). (#966).
- Fix issue where HDR color info handling causes codec misbehavior and prevents adaptive format switches for SDR video tracks (#1158).
- Text:
- WebVTT: Prevent directly consecutive cues from creating spurious additional
CuesWithTiminginstances fromWebvttParser.parse(#1177).
- WebVTT: Prevent directly consecutive cues from creating spurious additional
- DRM:
- Work around a
NoSuchMethodErrorwhich can be thrown by theMediaDrmframework instead ofResourceBusyExceptionorNotProvisionedExceptionon some Android 14 devices (#1145).
- Work around a
- Effect:
- Improved PQ to SDR tone-mapping by converting color spaces.
- Session:
- UI:
- Fallback to include audio track language name if
Localecannot identify a display name (#988).
- Fallback to include audio track language name if
- DASH Extension:
- Populate all
Labelelements from the manifest intoFormat.labels(#1054).
- Populate all
- RTSP Extension:
- Skip empty session information values (i-tags) in SDP parsing (#1087).
- Decoder Extensions (FFmpeg, VP9, AV1, MIDI, etc.):
- Disable the MIDI extension as a local dependency by default because it requires an additional Maven repository to be configured. Users who need this module from a local dependency can re-enable it.