This release includes the following changes since the 1.3.0 release:
Common Library:
Add Format.labels to allow localized or other alternative labels.
ExoPlayer:
Fix issue where PreloadMediaPeriod cannot retain the streams when it is preloaded again.
Apply the correct corresponding TrackSelectionResult to 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 -keepclasseswithmembers rule for DefaultVideoFrameProcessor.Factory.Builder.build() (#1187).
Transformer:
Add workaround for exception thrown due to MediaMuxer not supporting negative presentation timestamps before API 30.
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.averageBitrate from metadata frames such as XING and VBRI.
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 CuesWithTiming instances from WebvttParser.parse (#1177).
DRM:
Work around a NoSuchMethodError which can be thrown by the MediaDrm framework instead of ResourceBusyException or NotProvisionedException on some Android 14 devices (#1145).
Effect:
Improved PQ to SDR tone-mapping by converting color spaces.
Session:
Fix issue where the current position jumps back when the controller replaces the current item (#951).
Fix issue where MediaMetadata with just non-null extras is not transmitted between media controllers and sessions (#1176).
UI:
Fallback to include audio track language name if Locale cannot identify a display name (#988).
DASH Extension:
Populate all Label elements from the manifest into Format.labels (#1054).
RTSP Extension:
Skip empty session information values (i-tags) in SDP parsing (#1087).
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.
This release includes the following changes since the
1.3.0 release:
Common Library:
Add Format.labels to allow localized or other alternative labels.
ExoPlayer:
Fix issue where PreloadMediaPeriod cannot retain the streams when it
is preloaded again.
Apply the correct corresponding TrackSelectionResult to 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 -keepclasseswithmembers rule for
DefaultVideoFrameProcessor.Factory.Builder.build()
(#1187).
Transformer:
Add workaround for exception thrown due to MediaMuxer not supporting
negative presentation timestamps before API 30.
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.averageBitrate from metadata frames such as
XING and VBRI.
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).
This release includes the following changes since the 1.3.0 release:
Common Library:
Add Format.labels to allow localized or other alternative labels.
ExoPlayer:
Fix issue where PreloadMediaPeriod cannot retain the streams when it is preloaded again.
Apply the correct corresponding TrackSelectionResult to 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 -keepclasseswithmembers rule for DefaultVideoFrameProcessor.Factory.Builder.build() (#1187).
Transformer:
Add workaround for exception thrown due to MediaMuxer not supporting negative presentation timestamps before API 30.
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.averageBitrate from metadata frames such as XING and VBRI.
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 CuesWithTiming instances from WebvttParser.parse (#1177).
DRM:
Work around a NoSuchMethodError which can be thrown by the MediaDrm framework instead of ResourceBusyException or NotProvisionedException on some Android 14 devices (#1145).
Effect:
Improved PQ to SDR tone-mapping by converting color spaces.
Session:
Fix issue where the current position jumps back when the controller replaces the current item (#951).
Fix issue where MediaMetadata with just non-null extras is not transmitted between media controllers and sessions (#1176).
UI:
Fallback to include audio track language name if Locale cannot identify a display name (#988).
DASH Extension:
Populate all Label elements from the manifest into Format.labels (#1054).
RTSP Extension:
Skip empty session information values (i-tags) in SDP parsing (#1087).
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.
This release includes the following changes since the
1.3.0 release:
Common Library:
Add Format.labels to allow localized or other alternative labels.
ExoPlayer:
Fix issue where PreloadMediaPeriod cannot retain the streams when it
is preloaded again.
Apply the correct corresponding TrackSelectionResult to 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 -keepclasseswithmembers rule for
DefaultVideoFrameProcessor.Factory.Builder.build()
(#1187).
Transformer:
Add workaround for exception thrown due to MediaMuxer not supporting
negative presentation timestamps before API 30.
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.averageBitrate from metadata frames such as
XING and VBRI.
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).
This release includes the following changes since the 1.3.0 release:
Common Library:
Add Format.labels to allow localized or other alternative labels.
ExoPlayer:
Fix issue where PreloadMediaPeriod cannot retain the streams when it is preloaded again.
Apply the correct corresponding TrackSelectionResult to 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 -keepclasseswithmembers rule for DefaultVideoFrameProcessor.Factory.Builder.build() (#1187).
Transformer:
Add workaround for exception thrown due to MediaMuxer not supporting negative presentation timestamps before API 30.
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.averageBitrate from metadata frames such as XING and VBRI.
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 CuesWithTiming instances from WebvttParser.parse (#1177).
DRM:
Work around a NoSuchMethodError which can be thrown by the MediaDrm framework instead of ResourceBusyException or NotProvisionedException on some Android 14 devices (#1145).
Effect:
Improved PQ to SDR tone-mapping by converting color spaces.
Session:
Fix issue where the current position jumps back when the controller replaces the current item (#951).
Fix issue where MediaMetadata with just non-null extras is not transmitted between media controllers and sessions (#1176).
UI:
Fallback to include audio track language name if Locale cannot identify a display name (#988).
DASH Extension:
Populate all Label elements from the manifest into Format.labels (#1054).
RTSP Extension:
Skip empty session information values (i-tags) in SDP parsing (#1087).
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.
This release includes the following changes since the
1.3.0 release:
Common Library:
Add Format.labels to allow localized or other alternative labels.
ExoPlayer:
Fix issue where PreloadMediaPeriod cannot retain the streams when it
is preloaded again.
Apply the correct corresponding TrackSelectionResult to 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 -keepclasseswithmembers rule for
DefaultVideoFrameProcessor.Factory.Builder.build()
(#1187).
Transformer:
Add workaround for exception thrown due to MediaMuxer not supporting
negative presentation timestamps before API 30.
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.averageBitrate from metadata frames such as
XING and VBRI.
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).
This release includes the following changes since the 1.3.0 release:
Common Library:
Add Format.labels to allow localized or other alternative labels.
ExoPlayer:
Fix issue where PreloadMediaPeriod cannot retain the streams when it is preloaded again.
Apply the correct corresponding TrackSelectionResult to 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 -keepclasseswithmembers rule for DefaultVideoFrameProcessor.Factory.Builder.build() (#1187).
Transformer:
Add workaround for exception thrown due to MediaMuxer not supporting negative presentation timestamps before API 30.
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.averageBitrate from metadata frames such as XING and VBRI.
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 CuesWithTiming instances from WebvttParser.parse (#1177).
DRM:
Work around a NoSuchMethodError which can be thrown by the MediaDrm framework instead of ResourceBusyException or NotProvisionedException on some Android 14 devices (#1145).
Effect:
Improved PQ to SDR tone-mapping by converting color spaces.
Session:
Fix issue where the current position jumps back when the controller replaces the current item (#951).
Fix issue where MediaMetadata with just non-null extras is not transmitted between media controllers and sessions (#1176).
UI:
Fallback to include audio track language name if Locale cannot identify a display name (#988).
DASH Extension:
Populate all Label elements from the manifest into Format.labels (#1054).
RTSP Extension:
Skip empty session information values (i-tags) in SDP parsing (#1087).
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.
This release includes the following changes since the
1.3.0 release:
Common Library:
Add Format.labels to allow localized or other alternative labels.
ExoPlayer:
Fix issue where PreloadMediaPeriod cannot retain the streams when it
is preloaded again.
Apply the correct corresponding TrackSelectionResult to 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 -keepclasseswithmembers rule for
DefaultVideoFrameProcessor.Factory.Builder.build()
(#1187).
Transformer:
Add workaround for exception thrown due to MediaMuxer not supporting
negative presentation timestamps before API 30.
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.averageBitrate from metadata frames such as
XING and VBRI.
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).
This release includes the following changes since the 1.3.0 release:
Common Library:
Add Format.labels to allow localized or other alternative labels.
ExoPlayer:
Fix issue where PreloadMediaPeriod cannot retain the streams when it is preloaded again.
Apply the correct corresponding TrackSelectionResult to 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 -keepclasseswithmembers rule for DefaultVideoFrameProcessor.Factory.Builder.build() (#1187).
Transformer:
Add workaround for exception thrown due to MediaMuxer not supporting negative presentation timestamps before API 30.
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.averageBitrate from metadata frames such as XING and VBRI.
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 CuesWithTiming instances from WebvttParser.parse (#1177).
DRM:
Work around a NoSuchMethodError which can be thrown by the MediaDrm framework instead of ResourceBusyException or NotProvisionedException on some Android 14 devices (#1145).
Effect:
Improved PQ to SDR tone-mapping by converting color spaces.
Session:
Fix issue where the current position jumps back when the controller replaces the current item (#951).
Fix issue where MediaMetadata with just non-null extras is not transmitted between media controllers and sessions (#1176).
UI:
Fallback to include audio track language name if Locale cannot identify a display name (#988).
DASH Extension:
Populate all Label elements from the manifest into Format.labels (#1054).
RTSP Extension:
Skip empty session information values (i-tags) in SDP parsing (#1087).
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.
This release includes the following changes since the
1.3.0 release:
Common Library:
Add Format.labels to allow localized or other alternative labels.
ExoPlayer:
Fix issue where PreloadMediaPeriod cannot retain the streams when it
is preloaded again.
Apply the correct corresponding TrackSelectionResult to 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 -keepclasseswithmembers rule for
DefaultVideoFrameProcessor.Factory.Builder.build()
(#1187).
Transformer:
Add workaround for exception thrown due to MediaMuxer not supporting
negative presentation timestamps before API 30.
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.averageBitrate from metadata frames such as
XING and VBRI.
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).
This release includes the following changes since the 1.3.0 release:
Common Library:
Add Format.labels to allow localized or other alternative labels.
ExoPlayer:
Fix issue where PreloadMediaPeriod cannot retain the streams when it is preloaded again.
Apply the correct corresponding TrackSelectionResult to 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 -keepclasseswithmembers rule for DefaultVideoFrameProcessor.Factory.Builder.build() (#1187).
Transformer:
Add workaround for exception thrown due to MediaMuxer not supporting negative presentation timestamps before API 30.
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.averageBitrate from metadata frames such as XING and VBRI.
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 CuesWithTiming instances from WebvttParser.parse (#1177).
DRM:
Work around a NoSuchMethodError which can be thrown by the MediaDrm framework instead of ResourceBusyException or NotProvisionedException on some Android 14 devices (#1145).
Effect:
Improved PQ to SDR tone-mapping by converting color spaces.
Session:
Fix issue where the current position jumps back when the controller replaces the current item (#951).
Fix issue where MediaMetadata with just non-null extras is not transmitted between media controllers and sessions (#1176).
UI:
Fallback to include audio track language name if Locale cannot identify a display name (#988).
DASH Extension:
Populate all Label elements from the manifest into Format.labels (#1054).
RTSP Extension:
Skip empty session information values (i-tags) in SDP parsing (#1087).
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.
This release includes the following changes since the
1.3.0 release:
Common Library:
Add Format.labels to allow localized or other alternative labels.
ExoPlayer:
Fix issue where PreloadMediaPeriod cannot retain the streams when it
is preloaded again.
Apply the correct corresponding TrackSelectionResult to 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 -keepclasseswithmembers rule for
DefaultVideoFrameProcessor.Factory.Builder.build()
(#1187).
Transformer:
Add workaround for exception thrown due to MediaMuxer not supporting
negative presentation timestamps before API 30.
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.averageBitrate from metadata frames such as
XING and VBRI.
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).
Bumps
media3Version
from 1.3.0 to 1.3.1. Updatesandroidx.media3:media3-exoplayer
from 1.3.0 to 1.3.1Release notes
Sourced from androidx.media3:media3-exoplayer's releases.
Changelog
Sourced from androidx.media3:media3-exoplayer's changelog.
... (truncated)
Commits
d833d59
Update Media3 version number1792723
Update release notes for 1.3.1 bug fix release1a710b0
Import string translations5fe906f
Rollback of https://github.com/androidx/media/commit/e665e2aee8f4cb0ad702a102...7b5522f
Merge pull request #1054 from jekopena:main4caed3c
AddPlayerView.setControllerAnimationEnabled(boolean)
26ce3f0
Fix javadoc onPlayerView.setControllerVisibilityListener
a5d0cb5
Don't apply performance point workaround from API 3588ebc89
Plumb MP3 average bitrate from metadata frames into Formatdca3c61
In-line versions only used by exoplayer-media2 extensionUpdates
androidx.media3:media3-exoplayer-hls
from 1.3.0 to 1.3.1Release notes
Sourced from androidx.media3:media3-exoplayer-hls's releases.
Changelog
Sourced from androidx.media3:media3-exoplayer-hls's changelog.
... (truncated)
Commits
d833d59
Update Media3 version number1792723
Update release notes for 1.3.1 bug fix release1a710b0
Import string translations5fe906f
Rollback of https://github.com/androidx/media/commit/e665e2aee8f4cb0ad702a102...7b5522f
Merge pull request #1054 from jekopena:main4caed3c
AddPlayerView.setControllerAnimationEnabled(boolean)
26ce3f0
Fix javadoc onPlayerView.setControllerVisibilityListener
a5d0cb5
Don't apply performance point workaround from API 3588ebc89
Plumb MP3 average bitrate from metadata frames into Formatdca3c61
In-line versions only used by exoplayer-media2 extensionUpdates
androidx.media3:media3-ui
from 1.3.0 to 1.3.1Release notes
Sourced from androidx.media3:media3-ui's releases.
Changelog
Sourced from androidx.media3:media3-ui's changelog.
... (truncated)
Commits
d833d59
Update Media3 version number1792723
Update release notes for 1.3.1 bug fix release1a710b0
Import string translations5fe906f
Rollback of https://github.com/androidx/media/commit/e665e2aee8f4cb0ad702a102...7b5522f
Merge pull request #1054 from jekopena:main4caed3c
AddPlayerView.setControllerAnimationEnabled(boolean)
26ce3f0
Fix javadoc onPlayerView.setControllerVisibilityListener
a5d0cb5
Don't apply performance point workaround from API 3588ebc89
Plumb MP3 average bitrate from metadata frames into Formatdca3c61
In-line versions only used by exoplayer-media2 extensionUpdates
androidx.media3:media3-session
from 1.3.0 to 1.3.1Release notes
Sourced from androidx.media3:media3-session's releases.
Changelog
Sourced from androidx.media3:media3-session's changelog.
... (truncated)
Commits
d833d59
Update Media3 version number1792723
Update release notes for 1.3.1 bug fix release1a710b0
Import string translations5fe906f
Rollback of https://github.com/androidx/media/commit/e665e2aee8f4cb0ad702a102...7b5522f
Merge pull request #1054 from jekopena:main4caed3c
AddPlayerView.setControllerAnimationEnabled(boolean)
26ce3f0
Fix javadoc onPlayerView.setControllerVisibilityListener
a5d0cb5
Don't apply performance point workaround from API 3588ebc89
Plumb MP3 average bitrate from metadata frames into Formatdca3c61
In-line versions only used by exoplayer-media2 extensionUpdates
androidx.media3:media3-transformer
from 1.3.0 to 1.3.1Release notes
Sourced from androidx.media3:media3-transformer's releases.
Changelog
Sourced from androidx.media3:media3-transformer's changelog.
... (truncated)
Commits
d833d59
Update Media3 version number1792723
Update release notes for 1.3.1 bug fix release1a710b0
Import string translations5fe906f
Rollback of https://github.com/androidx/media/commit/e665e2aee8f4cb0ad702a102...7b5522f
Merge pull request #1054 from jekopena:main4caed3c
AddPlayerView.setControllerAnimationEnabled(boolean)
26ce3f0
Fix javadoc onPlayerView.setControllerVisibilityListener
a5d0cb5
Don't apply performance point workaround from API 3588ebc89
Plumb MP3 average bitrate from metadata frames into Formatdca3c61
In-line versions only used by exoplayer-media2 extensionUpdates
androidx.media3:media3-common
from 1.3.0 to 1.3.1Release notes
Sourced from androidx.media3:media3-common's releases.
Changelog
Sourced from androidx.media3:media3-common's changelog.
... (truncated)
Commits
d833d59
Update Media3 version number1792723
Update release notes for 1.3.1 bug fix release1a710b0
Import string translations5fe906f
Rollback of https://github.com/androidx/media/commit/e665e2aee8f4cb0ad702a102...