-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: flutter/packages
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 471bfd305f4e
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: flutter/packages
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3dc682deffb4
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 2 commits
- 16 files changed
- 2 contributors
Commits on Jun 30, 2025
-
[dependabot]: Bump exoplayer_version from 1.4.1 to 1.5.1 in /packages…
…/video_player/video_player_android/android (#8414) Bumps `exoplayer_version` from 1.4.1 to 1.5.1. Updates `androidx.media3:media3-exoplayer` from 1.4.1 to 1.5.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/androidx/media/releases">androidx.media3:media3-exoplayer's releases</a>.</em></p> <blockquote> <h2>1.5.1</h2> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/HEAD/#150-2024-11-27">1.5.0 release</a>:</p> <ul> <li>ExoPlayer: <ul> <li>Disable use of asynchronous decryption in MediaCodec to avoid reported codec timeout issues with this platform API (<a href="https://redirect.github.com/androidx/media/issues/1641">#1641</a>).</li> </ul> </li> <li>Extractors: <ul> <li>MP3: Don't stop playback early when a <code>VBRI</code> frame's table of contents doesn't cover all the MP3 data in a file (<a href="https://redirect.github.com/androidx/media/issues/1904">#1904</a>).</li> </ul> </li> <li>Video: <ul> <li>Rollback of using <code>MediaCodecAdapter</code> supplied pixel aspect ratio values when provided while processing <code>onOutputFormatChanged</code> (<a href="https://redirect.github.com/androidx/media/pull/1371">#1371</a>).</li> </ul> </li> <li>Text: <ul> <li>Fix bug in <code>ReplacingCuesResolver.discardCuesBeforeTimeUs</code> where the cue active at <code>timeUs</code> (started before but not yet ended) was incorrectly discarded (<a href="https://redirect.github.com/androidx/media/issues/1939">#1939</a>).</li> </ul> </li> <li>Metadata: <ul> <li>Extract disc/track numbering and genre from Vorbis comments into <code>MediaMetadata</code> (<a href="https://redirect.github.com/androidx/media/issues/1958">#1958</a>).</li> </ul> </li> </ul> <h2>1.5.0</h2> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/HEAD/#141-2024-08-23">1.4.1 release</a>:</p> <ul> <li>Common Library: <ul> <li>Add <code>ForwardingSimpleBasePlayer</code> that allows forwarding to another player with small adjustments while ensuring full consistency and listener handling (<a href="https://redirect.github.com/androidx/media/issues/1183">#1183</a>).</li> <li>Replace <code>SimpleBasePlayer.State.playlist</code> by <code>getPlaylist()</code> method.</li> <li>Add override for <code>SimpleBasePlayer.State.Builder.setPlaylist()</code> to directly specify a <code>Timeline</code> and current <code>Tracks</code> and <code>Metadata</code> instead of building a playlist structure.</li> <li>Increase <code>minSdk</code> to 21 (Android Lollipop). This is aligned with all other AndroidX libraries.</li> <li>Add <code>androidx.media3:media3-common-ktx</code> artifact which provides Kotlin-specific functionality built on top of the Common library</li> <li>Add <code>Player.listen</code> suspending extension function to spin a coroutine to listen to <code>Player.Events</code> to the <code>media3-common-ktx</code> library.</li> <li>Remove <code>@DoNotInline</code> annotations from manually out-of-lined inner classes designed to avoid <a href="https://chromium.googlesource.com/chromium/src/+/HEAD/build/android/docs/class_verification_failures.md">runtime class verification failures</a>. Recent versions of <a href="https://developer.android.com/build/shrink-code">R8</a> now automatically out-of-line calls like these to avoid the runtime failures (so the manual out-of-lining is no longer required). All Gradle users of the library must already be a using a version of the Android Gradle Plugin that uses a version of R8 which does this, <a href="https://issuetracker.google.com/345472586#comment7">due to <code>compileSdk = 35</code></a>. Users of the library with non-Gradle build systems will need to ensure their R8-equivalent shrinking/obfuscating step does a similar automatic out-of-lining process in order to avoid runtime class verification failures. This change has <a href="http://r.android.com/3156141">already been done in other AndroidX libraries</a>.</li> </ul> </li> <li>ExoPlayer: <ul> <li><code>MediaCodecRenderer.onProcessedStreamChange()</code> can now be called for every media item. Previously it was not called for the first one. Use <code>MediaCodecRenderer.experimentalEnableProcessedStreamChangedAtStart()</code> to enable this.</li> <li>Add <code>PreloadMediaSource.PreloadControl.onPreloadError</code> to allow <code>PreloadMediaSource.PreloadControl</code> implementations to take actions when error occurs.</li> <li>Add <code>BasePreloadManager.Listener</code> to propagate preload events to apps.</li> <li>Allow changing SNTP client timeout and retry alternative addresses on timeout (<a href="https://redirect.github.com/androidx/media/issues/1540">#1540</a>).</li> <li>Remove <code>MediaCodecAdapter.Configuration.flags</code> as the field was always zero.</li> <li>Allow the user to select the built-in speaker for playback on Wear OS API 35+ (where the device advertises support for this).</li> <li>Defer the blocking call to <code>Context.getSystemService(Context.AUDIO_SERVICE)</code> until audio focus handling is enabled. This ensures the blocking call isn't done if audio focus handling is not enabled (<a href="https://redirect.github.com/androidx/media/pull/1616">#1616</a>).</li> <li>Allow playback regardless of buffered duration when loading fails (<a href="https://redirect.github.com/androidx/media/issues/1571">#1571</a>).</li> <li>Add <code>AnalyticsListener.onRendererReadyChanged()</code> to signal when individual renderers allow playback to be ready.</li> <li>Fix <code>MediaCodec.CryptoException</code> sometimes being reported as an "unexpected runtime error" when <code>MediaCodec</code> is operated in asynchronous mode (default behaviour on API 31+).</li> <li>Pass <code>bufferedDurationUs</code> instead of <code>bufferedPositionUs</code> with <code>PreloadMediaSource.PreloadControl.onContinueLoadingRequested()</code>. Also changes <code>DefaultPreloadManager.Status.STAGE_LOADED_TO_POSITION_MS</code> to <code>DefaultPreloadManager.Status.STAGE_LOADED_FOR_DURATION_MS</code>, apps then need to pass a value representing a specific duration from the default start position for which the corresponding media source has to be preloaded with this IntDef, instead of a position.</li> <li>Add <code>ForwardingRenderer</code> implementation that forwards all method calls to another renderer (<a href="https://redirect.github.com/androidx/media/pull/1703">1703</a>).</li> <li>Add playlist preloading for the next item in the playlist. Apps can enable preloading by calling <code>ExoPlayer.setPreloadConfiguration(PreloadConfiguration)</code> accordingly. By default preloading is disabled. When opted-in and to not interfere with playback, <code>DefaultLoadControl</code> restricts preloading to start and continue only when the player is not loading for playback. Apps can change this behaviour by implementing <code>LoadControl.shouldContinuePreloading()</code> accordingly (like when overriding this method in <code>DefaultLoadControl</code>). The default implementation of <code>LoadControl</code> disables preloading in case an app is using a custom implementation of <code>LoadControl</code>.</li> <li>Add method <code>MediaSourceEventListener.EventDispatcher.dispatchEvent()</code> to allow invoking events of subclass listeners (<a href="https://redirect.github.com/androidx/media/pull/1736">1736</a>).</li> <li>Add <code>DefaultPreloadManager.Builder</code> that builds the <code>DefaultPreloadManager</code> and <code>ExoPlayer</code> instances with consistently shared configurations.</li> <li>Remove <code>Renderer[]</code> parameter from <code>LoadControl.onTracksSelected()</code> as <code>DefaultLoadControl</code> implementation can retrieve the stream types from <code>ExoTrackSelection[]</code>.</li> <li>Deprecated <code>DefaultLoadControl.calculateTargetBufferBytes(Renderer[], ExoTrackSelection[])</code> and marked method as final to prevent overrides. The new <code>DefaultLoadControl.calculateTargetBufferBytes(ExoTrackSelection[])</code> should be used instead.</li> <li>Report <code>MediaSourceEventListener</code> events from secondary sources in <code>MergingMediaSource</code>. This will result in load start/error/cancelled/completed events being reported for sideloaded subtitles (those added with <code>MediaItem.LocalConfiguration.subtitleConfigurations</code>), which may appear as duplicate load events emitted from <code>AnalyticsListener</code>.</li> <li>Prevent subtitle & metadata errors from completely stopping playback. Instead the problematic track is disabled and playback of the remaining tracks continues (<a href="https://redirect.github.com/google/ExoPlayer/issues/1722">#1722</a>). <ul> <li>In new subtitle handling (during extraction), associated parse (e.g. invalid subtitle data) and load errors (e.g. HTTP 404) are emitted via <code>onLoadError</code> callbacks.</li> <li>In legacy subtitle handling (during rendering), only associated load errors are emitted via <code>onLoadError</code> callbacks while parse errors are silently ignored (this is pre-existing behaviour).</li> </ul> </li> <li>Fix bug where playlist items or periods in multi-period DASH streams with durations that don't match the actual content could cause frame freezes at the end of the item (<a href="https://redirect.github.com/androidx/media/issues/1698">#1698</a>).</li> <li>Add a setter to <code>SntpClient</code> to set the max elapsed time since the last update after which the client is re-initialized (<a href="https://redirect.github.com/androidx/media/pull/1794">#1794</a>).</li> </ul> </li> <li>Transformer:</li> </ul> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/androidx/media/blob/release/RELEASENOTES.md">androidx.media3:media3-exoplayer's changelog</a>.</em></p> <blockquote> <h3>1.5.1 (2024-12-19)</h3> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/release/#150-2024-11-27">1.5.0 release</a>:</p> <ul> <li>ExoPlayer: <ul> <li>Disable use of asynchronous decryption in MediaCodec to avoid reported codec timeout issues with this platform API (<a href="https://redirect.github.com/androidx/media/issues/1641">#1641</a>).</li> </ul> </li> <li>Extractors: <ul> <li>MP3: Don't stop playback early when a <code>VBRI</code> frame's table of contents doesn't cover all the MP3 data in a file (<a href="https://redirect.github.com/androidx/media/issues/1904">#1904</a>).</li> </ul> </li> <li>Video: <ul> <li>Rollback of using <code>MediaCodecAdapter</code> supplied pixel aspect ratio values when provided while processing <code>onOutputFormatChanged</code> (<a href="https://redirect.github.com/androidx/media/pull/1371">#1371</a>).</li> </ul> </li> <li>Text: <ul> <li>Fix bug in <code>ReplacingCuesResolver.discardCuesBeforeTimeUs</code> where the cue active at <code>timeUs</code> (started before but not yet ended) was incorrectly discarded (<a href="https://redirect.github.com/androidx/media/issues/1939">#1939</a>).</li> </ul> </li> <li>Metadata: <ul> <li>Extract disc/track numbering and genre from Vorbis comments into <code>MediaMetadata</code> (<a href="https://redirect.github.com/androidx/media/issues/1958">#1958</a>).</li> </ul> </li> </ul> <h3>1.5.0 (2024-11-27)</h3> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/release/#141-2024-08-23">1.4.1 release</a>:</p> <ul> <li>Common Library: <ul> <li>Add <code>ForwardingSimpleBasePlayer</code> that allows forwarding to another player with small adjustments while ensuring full consistency and listener handling (<a href="https://redirect.github.com/androidx/media/issues/1183">#1183</a>).</li> <li>Replace <code>SimpleBasePlayer.State.playlist</code> by <code>getPlaylist()</code> method.</li> <li>Add override for <code>SimpleBasePlayer.State.Builder.setPlaylist()</code> to directly specify a <code>Timeline</code> and current <code>Tracks</code> and <code>Metadata</code> instead of building a playlist structure.</li> <li>Increase <code>minSdk</code> to 21 (Android Lollipop). This is aligned with all other AndroidX libraries.</li> <li>Add <code>androidx.media3:media3-common-ktx</code> artifact which provides Kotlin-specific functionality built on top of the Common library</li> <li>Add <code>Player.listen</code> suspending extension function to spin a coroutine to listen to <code>Player.Events</code> to the <code>media3-common-ktx</code> library.</li> <li>Remove <code>@DoNotInline</code> annotations from manually out-of-lined inner classes designed to avoid <a href="https://chromium.googlesource.com/chromium/src/+/HEAD/build/android/docs/class_verification_failures.md">runtime class verification failures</a>. Recent versions of <a href="https://developer.android.com/build/shrink-code">R8</a></li> </ul> </li> </ul> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/androidx/media/commit/76088cd6af7f263aba238b7a48d64bd4f060cb8b"><code>76088cd</code></a> Bump Media3 version to 1.5.1</li> <li><a href="https://github.com/androidx/media/commit/7ae9ddf1662b7174a2d82eb14a0f07fc5d7a3e95"><code>7ae9ddf</code></a> Update release notes for Media3 1.5.1 release</li> <li><a href="https://github.com/androidx/media/commit/e4e59cd929af4d80b84d9a392ae82cb4aa07cf0b"><code>e4e59cd</code></a> Switch default of async crypto mode to disabled</li> <li><a href="https://github.com/androidx/media/commit/508a4258a32c4f03ae69721a0609075d9d817b77"><code>508a425</code></a> Switch play FGS exemption to use custom action instead of commands</li> <li><a href="https://github.com/androidx/media/commit/52f976179622c764794859195dbecd6bea4104a4"><code>52f9761</code></a> Don't check codec's profile for MV-HEVC video.</li> <li><a href="https://github.com/androidx/media/commit/de91ebc6ae101cdd4c9e4246cb6840a7962aa38b"><code>de91ebc</code></a> Add vorbis comment support for track/disc numbering fields, and genre</li> <li><a href="https://github.com/androidx/media/commit/5d9badcb502aebc57027ba407959344b55731e9d"><code>5d9badc</code></a> Fix ReplacingCuesResolver.discardCuesBeforeTimeUs to retain active cue</li> <li><a href="https://github.com/androidx/media/commit/121b79ae96e334e79ec0f886fccf81357b9054d0"><code>121b79a</code></a> Merge pull request <a href="https://redirect.github.com/androidx/media/issues/1943">#1943</a> from DolbyLaboratories:dlb/ac4-ajoc/dev</li> <li><a href="https://github.com/androidx/media/commit/fa9689ef9ad10d97f60b8b9496222ae0e2624cd5"><code>fa9689e</code></a> Clarify <code>CommandButton</code> javadoc around <code>iconResId</code> and <code>ICON_UNDEFINED</code></li> <li><a href="https://github.com/androidx/media/commit/f5bbb39e90ef54e163e716e5b01122d730192503"><code>f5bbb39</code></a> Merge pull request <a href="https://redirect.github.com/androidx/media/issues/1823">#1823</a> from MGaetan89:remove_outdated_sdk_check</li> <li>Additional commits viewable in <a href="https://github.com/androidx/media/compare/1.4.1...1.5.1">compare view</a></li> </ul> </details> <br /> Updates `androidx.media3:media3-exoplayer-hls` from 1.4.1 to 1.5.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/androidx/media/releases">androidx.media3:media3-exoplayer-hls's releases</a>.</em></p> <blockquote> <h2>1.5.1</h2> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/HEAD/#150-2024-11-27">1.5.0 release</a>:</p> <ul> <li>ExoPlayer: <ul> <li>Disable use of asynchronous decryption in MediaCodec to avoid reported codec timeout issues with this platform API (<a href="https://redirect.github.com/androidx/media/issues/1641">#1641</a>).</li> </ul> </li> <li>Extractors: <ul> <li>MP3: Don't stop playback early when a <code>VBRI</code> frame's table of contents doesn't cover all the MP3 data in a file (<a href="https://redirect.github.com/androidx/media/issues/1904">#1904</a>).</li> </ul> </li> <li>Video: <ul> <li>Rollback of using <code>MediaCodecAdapter</code> supplied pixel aspect ratio values when provided while processing <code>onOutputFormatChanged</code> (<a href="https://redirect.github.com/androidx/media/pull/1371">#1371</a>).</li> </ul> </li> <li>Text: <ul> <li>Fix bug in <code>ReplacingCuesResolver.discardCuesBeforeTimeUs</code> where the cue active at <code>timeUs</code> (started before but not yet ended) was incorrectly discarded (<a href="https://redirect.github.com/androidx/media/issues/1939">#1939</a>).</li> </ul> </li> <li>Metadata: <ul> <li>Extract disc/track numbering and genre from Vorbis comments into <code>MediaMetadata</code> (<a href="https://redirect.github.com/androidx/media/issues/1958">#1958</a>).</li> </ul> </li> </ul> <h2>1.5.0</h2> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/HEAD/#141-2024-08-23">1.4.1 release</a>:</p> <ul> <li>Common Library: <ul> <li>Add <code>ForwardingSimpleBasePlayer</code> that allows forwarding to another player with small adjustments while ensuring full consistency and listener handling (<a href="https://redirect.github.com/androidx/media/issues/1183">#1183</a>).</li> <li>Replace <code>SimpleBasePlayer.State.playlist</code> by <code>getPlaylist()</code> method.</li> <li>Add override for <code>SimpleBasePlayer.State.Builder.setPlaylist()</code> to directly specify a <code>Timeline</code> and current <code>Tracks</code> and <code>Metadata</code> instead of building a playlist structure.</li> <li>Increase <code>minSdk</code> to 21 (Android Lollipop). This is aligned with all other AndroidX libraries.</li> <li>Add <code>androidx.media3:media3-common-ktx</code> artifact which provides Kotlin-specific functionality built on top of the Common library</li> <li>Add <code>Player.listen</code> suspending extension function to spin a coroutine to listen to <code>Player.Events</code> to the <code>media3-common-ktx</code> library.</li> <li>Remove <code>@DoNotInline</code> annotations from manually out-of-lined inner classes designed to avoid <a href="https://chromium.googlesource.com/chromium/src/+/HEAD/build/android/docs/class_verification_failures.md">runtime class verification failures</a>. Recent versions of <a href="https://developer.android.com/build/shrink-code">R8</a> now automatically out-of-line calls like these to avoid the runtime failures (so the manual out-of-lining is no longer required). All Gradle users of the library must already be a using a version of the Android Gradle Plugin that uses a version of R8 which does this, <a href="https://issuetracker.google.com/345472586#comment7">due to <code>compileSdk = 35</code></a>. Users of the library with non-Gradle build systems will need to ensure their R8-equivalent shrinking/obfuscating step does a similar automatic out-of-lining process in order to avoid runtime class verification failures. This change has <a href="http://r.android.com/3156141">already been done in other AndroidX libraries</a>.</li> </ul> </li> <li>ExoPlayer: <ul> <li><code>MediaCodecRenderer.onProcessedStreamChange()</code> can now be called for every media item. Previously it was not called for the first one. Use <code>MediaCodecRenderer.experimentalEnableProcessedStreamChangedAtStart()</code> to enable this.</li> <li>Add <code>PreloadMediaSource.PreloadControl.onPreloadError</code> to allow <code>PreloadMediaSource.PreloadControl</code> implementations to take actions when error occurs.</li> <li>Add <code>BasePreloadManager.Listener</code> to propagate preload events to apps.</li> <li>Allow changing SNTP client timeout and retry alternative addresses on timeout (<a href="https://redirect.github.com/androidx/media/issues/1540">#1540</a>).</li> <li>Remove <code>MediaCodecAdapter.Configuration.flags</code> as the field was always zero.</li> <li>Allow the user to select the built-in speaker for playback on Wear OS API 35+ (where the device advertises support for this).</li> <li>Defer the blocking call to <code>Context.getSystemService(Context.AUDIO_SERVICE)</code> until audio focus handling is enabled. This ensures the blocking call isn't done if audio focus handling is not enabled (<a href="https://redirect.github.com/androidx/media/pull/1616">#1616</a>).</li> <li>Allow playback regardless of buffered duration when loading fails (<a href="https://redirect.github.com/androidx/media/issues/1571">#1571</a>).</li> <li>Add <code>AnalyticsListener.onRendererReadyChanged()</code> to signal when individual renderers allow playback to be ready.</li> <li>Fix <code>MediaCodec.CryptoException</code> sometimes being reported as an "unexpected runtime error" when <code>MediaCodec</code> is operated in asynchronous mode (default behaviour on API 31+).</li> <li>Pass <code>bufferedDurationUs</code> instead of <code>bufferedPositionUs</code> with <code>PreloadMediaSource.PreloadControl.onContinueLoadingRequested()</code>. Also changes <code>DefaultPreloadManager.Status.STAGE_LOADED_TO_POSITION_MS</code> to <code>DefaultPreloadManager.Status.STAGE_LOADED_FOR_DURATION_MS</code>, apps then need to pass a value representing a specific duration from the default start position for which the corresponding media source has to be preloaded with this IntDef, instead of a position.</li> <li>Add <code>ForwardingRenderer</code> implementation that forwards all method calls to another renderer (<a href="https://redirect.github.com/androidx/media/pull/1703">1703</a>).</li> <li>Add playlist preloading for the next item in the playlist. Apps can enable preloading by calling <code>ExoPlayer.setPreloadConfiguration(PreloadConfiguration)</code> accordingly. By default preloading is disabled. When opted-in and to not interfere with playback, <code>DefaultLoadControl</code> restricts preloading to start and continue only when the player is not loading for playback. Apps can change this behaviour by implementing <code>LoadControl.shouldContinuePreloading()</code> accordingly (like when overriding this method in <code>DefaultLoadControl</code>). The default implementation of <code>LoadControl</code> disables preloading in case an app is using a custom implementation of <code>LoadControl</code>.</li> <li>Add method <code>MediaSourceEventListener.EventDispatcher.dispatchEvent()</code> to allow invoking events of subclass listeners (<a href="https://redirect.github.com/androidx/media/pull/1736">1736</a>).</li> <li>Add <code>DefaultPreloadManager.Builder</code> that builds the <code>DefaultPreloadManager</code> and <code>ExoPlayer</code> instances with consistently shared configurations.</li> <li>Remove <code>Renderer[]</code> parameter from <code>LoadControl.onTracksSelected()</code> as <code>DefaultLoadControl</code> implementation can retrieve the stream types from <code>ExoTrackSelection[]</code>.</li> <li>Deprecated <code>DefaultLoadControl.calculateTargetBufferBytes(Renderer[], ExoTrackSelection[])</code> and marked method as final to prevent overrides. The new <code>DefaultLoadControl.calculateTargetBufferBytes(ExoTrackSelection[])</code> should be used instead.</li> <li>Report <code>MediaSourceEventListener</code> events from secondary sources in <code>MergingMediaSource</code>. This will result in load start/error/cancelled/completed events being reported for sideloaded subtitles (those added with <code>MediaItem.LocalConfiguration.subtitleConfigurations</code>), which may appear as duplicate load events emitted from <code>AnalyticsListener</code>.</li> <li>Prevent subtitle & metadata errors from completely stopping playback. Instead the problematic track is disabled and playback of the remaining tracks continues (<a href="https://redirect.github.com/google/ExoPlayer/issues/1722">#1722</a>). <ul> <li>In new subtitle handling (during extraction), associated parse (e.g. invalid subtitle data) and load errors (e.g. HTTP 404) are emitted via <code>onLoadError</code> callbacks.</li> <li>In legacy subtitle handling (during rendering), only associated load errors are emitted via <code>onLoadError</code> callbacks while parse errors are silently ignored (this is pre-existing behaviour).</li> </ul> </li> <li>Fix bug where playlist items or periods in multi-period DASH streams with durations that don't match the actual content could cause frame freezes at the end of the item (<a href="https://redirect.github.com/androidx/media/issues/1698">#1698</a>).</li> <li>Add a setter to <code>SntpClient</code> to set the max elapsed time since the last update after which the client is re-initialized (<a href="https://redirect.github.com/androidx/media/pull/1794">#1794</a>).</li> </ul> </li> <li>Transformer:</li> </ul> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/androidx/media/blob/release/RELEASENOTES.md">androidx.media3:media3-exoplayer-hls's changelog</a>.</em></p> <blockquote> <h3>1.5.1 (2024-12-19)</h3> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/release/#150-2024-11-27">1.5.0 release</a>:</p> <ul> <li>ExoPlayer: <ul> <li>Disable use of asynchronous decryption in MediaCodec to avoid reported codec timeout issues with this platform API (<a href="https://redirect.github.com/androidx/media/issues/1641">#1641</a>).</li> </ul> </li> <li>Extractors: <ul> <li>MP3: Don't stop playback early when a <code>VBRI</code> frame's table of contents doesn't cover all the MP3 data in a file (<a href="https://redirect.github.com/androidx/media/issues/1904">#1904</a>).</li> </ul> </li> <li>Video: <ul> <li>Rollback of using <code>MediaCodecAdapter</code> supplied pixel aspect ratio values when provided while processing <code>onOutputFormatChanged</code> (<a href="https://redirect.github.com/androidx/media/pull/1371">#1371</a>).</li> </ul> </li> <li>Text: <ul> <li>Fix bug in <code>ReplacingCuesResolver.discardCuesBeforeTimeUs</code> where the cue active at <code>timeUs</code> (started before but not yet ended) was incorrectly discarded (<a href="https://redirect.github.com/androidx/media/issues/1939">#1939</a>).</li> </ul> </li> <li>Metadata: <ul> <li>Extract disc/track numbering and genre from Vorbis comments into <code>MediaMetadata</code> (<a href="https://redirect.github.com/androidx/media/issues/1958">#1958</a>).</li> </ul> </li> </ul> <h3>1.5.0 (2024-11-27)</h3> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/release/#141-2024-08-23">1.4.1 release</a>:</p> <ul> <li>Common Library: <ul> <li>Add <code>ForwardingSimpleBasePlayer</code> that allows forwarding to another player with small adjustments while ensuring full consistency and listener handling (<a href="https://redirect.github.com/androidx/media/issues/1183">#1183</a>).</li> <li>Replace <code>SimpleBasePlayer.State.playlist</code> by <code>getPlaylist()</code> method.</li> <li>Add override for <code>SimpleBasePlayer.State.Builder.setPlaylist()</code> to directly specify a <code>Timeline</code> and current <code>Tracks</code> and <code>Metadata</code> instead of building a playlist structure.</li> <li>Increase <code>minSdk</code> to 21 (Android Lollipop). This is aligned with all other AndroidX libraries.</li> <li>Add <code>androidx.media3:media3-common-ktx</code> artifact which provides Kotlin-specific functionality built on top of the Common library</li> <li>Add <code>Player.listen</code> suspending extension function to spin a coroutine to listen to <code>Player.Events</code> to the <code>media3-common-ktx</code> library.</li> <li>Remove <code>@DoNotInline</code> annotations from manually out-of-lined inner classes designed to avoid <a href="https://chromium.googlesource.com/chromium/src/+/HEAD/build/android/docs/class_verification_failures.md">runtime class verification failures</a>. Recent versions of <a href="https://developer.android.com/build/shrink-code">R8</a></li> </ul> </li> </ul> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/androidx/media/commit/76088cd6af7f263aba238b7a48d64bd4f060cb8b"><code>76088cd</code></a> Bump Media3 version to 1.5.1</li> <li><a href="https://github.com/androidx/media/commit/7ae9ddf1662b7174a2d82eb14a0f07fc5d7a3e95"><code>7ae9ddf</code></a> Update release notes for Media3 1.5.1 release</li> <li><a href="https://github.com/androidx/media/commit/e4e59cd929af4d80b84d9a392ae82cb4aa07cf0b"><code>e4e59cd</code></a> Switch default of async crypto mode to disabled</li> <li><a href="https://github.com/androidx/media/commit/508a4258a32c4f03ae69721a0609075d9d817b77"><code>508a425</code></a> Switch play FGS exemption to use custom action instead of commands</li> <li><a href="https://github.com/androidx/media/commit/52f976179622c764794859195dbecd6bea4104a4"><code>52f9761</code></a> Don't check codec's profile for MV-HEVC video.</li> <li><a href="https://github.com/androidx/media/commit/de91ebc6ae101cdd4c9e4246cb6840a7962aa38b"><code>de91ebc</code></a> Add vorbis comment support for track/disc numbering fields, and genre</li> <li><a href="https://github.com/androidx/media/commit/5d9badcb502aebc57027ba407959344b55731e9d"><code>5d9badc</code></a> Fix ReplacingCuesResolver.discardCuesBeforeTimeUs to retain active cue</li> <li><a href="https://github.com/androidx/media/commit/121b79ae96e334e79ec0f886fccf81357b9054d0"><code>121b79a</code></a> Merge pull request <a href="https://redirect.github.com/androidx/media/issues/1943">#1943</a> from DolbyLaboratories:dlb/ac4-ajoc/dev</li> <li><a href="https://github.com/androidx/media/commit/fa9689ef9ad10d97f60b8b9496222ae0e2624cd5"><code>fa9689e</code></a> Clarify <code>CommandButton</code> javadoc around <code>iconResId</code> and <code>ICON_UNDEFINED</code></li> <li><a href="https://github.com/androidx/media/commit/f5bbb39e90ef54e163e716e5b01122d730192503"><code>f5bbb39</code></a> Merge pull request <a href="https://redirect.github.com/androidx/media/issues/1823">#1823</a> from MGaetan89:remove_outdated_sdk_check</li> <li>Additional commits viewable in <a href="https://github.com/androidx/media/compare/1.4.1...1.5.1">compare view</a></li> </ul> </details> <br /> Updates `androidx.media3:media3-exoplayer-dash` from 1.4.1 to 1.5.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/androidx/media/releases">androidx.media3:media3-exoplayer-dash's releases</a>.</em></p> <blockquote> <h2>1.5.1</h2> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/HEAD/#150-2024-11-27">1.5.0 release</a>:</p> <ul> <li>ExoPlayer: <ul> <li>Disable use of asynchronous decryption in MediaCodec to avoid reported codec timeout issues with this platform API (<a href="https://redirect.github.com/androidx/media/issues/1641">#1641</a>).</li> </ul> </li> <li>Extractors: <ul> <li>MP3: Don't stop playback early when a <code>VBRI</code> frame's table of contents doesn't cover all the MP3 data in a file (<a href="https://redirect.github.com/androidx/media/issues/1904">#1904</a>).</li> </ul> </li> <li>Video: <ul> <li>Rollback of using <code>MediaCodecAdapter</code> supplied pixel aspect ratio values when provided while processing <code>onOutputFormatChanged</code> (<a href="https://redirect.github.com/androidx/media/pull/1371">#1371</a>).</li> </ul> </li> <li>Text: <ul> <li>Fix bug in <code>ReplacingCuesResolver.discardCuesBeforeTimeUs</code> where the cue active at <code>timeUs</code> (started before but not yet ended) was incorrectly discarded (<a href="https://redirect.github.com/androidx/media/issues/1939">#1939</a>).</li> </ul> </li> <li>Metadata: <ul> <li>Extract disc/track numbering and genre from Vorbis comments into <code>MediaMetadata</code> (<a href="https://redirect.github.com/androidx/media/issues/1958">#1958</a>).</li> </ul> </li> </ul> <h2>1.5.0</h2> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/HEAD/#141-2024-08-23">1.4.1 release</a>:</p> <ul> <li>Common Library: <ul> <li>Add <code>ForwardingSimpleBasePlayer</code> that allows forwarding to another player with small adjustments while ensuring full consistency and listener handling (<a href="https://redirect.github.com/androidx/media/issues/1183">#1183</a>).</li> <li>Replace <code>SimpleBasePlayer.State.playlist</code> by <code>getPlaylist()</code> method.</li> <li>Add override for <code>SimpleBasePlayer.State.Builder.setPlaylist()</code> to directly specify a <code>Timeline</code> and current <code>Tracks</code> and <code>Metadata</code> instead of building a playlist structure.</li> <li>Increase <code>minSdk</code> to 21 (Android Lollipop). This is aligned with all other AndroidX libraries.</li> <li>Add <code>androidx.media3:media3-common-ktx</code> artifact which provides Kotlin-specific functionality built on top of the Common library</li> <li>Add <code>Player.listen</code> suspending extension function to spin a coroutine to listen to <code>Player.Events</code> to the <code>media3-common-ktx</code> library.</li> <li>Remove <code>@DoNotInline</code> annotations from manually out-of-lined inner classes designed to avoid <a href="https://chromium.googlesource.com/chromium/src/+/HEAD/build/android/docs/class_verification_failures.md">runtime class verification failures</a>. Recent versions of <a href="https://developer.android.com/build/shrink-code">R8</a> now automatically out-of-line calls like these to avoid the runtime failures (so the manual out-of-lining is no longer required). All Gradle users of the library must already be a using a version of the Android Gradle Plugin that uses a version of R8 which does this, <a href="https://issuetracker.google.com/345472586#comment7">due to <code>compileSdk = 35</code></a>. Users of the library with non-Gradle build systems will need to ensure their R8-equivalent shrinking/obfuscating step does a similar automatic out-of-lining process in order to avoid runtime class verification failures. This change has <a href="http://r.android.com/3156141">already been done in other AndroidX libraries</a>.</li> </ul> </li> <li>ExoPlayer: <ul> <li><code>MediaCodecRenderer.onProcessedStreamChange()</code> can now be called for every media item. Previously it was not called for the first one. Use <code>MediaCodecRenderer.experimentalEnableProcessedStreamChangedAtStart()</code> to enable this.</li> <li>Add <code>PreloadMediaSource.PreloadControl.onPreloadError</code> to allow <code>PreloadMediaSource.PreloadControl</code> implementations to take actions when error occurs.</li> <li>Add <code>BasePreloadManager.Listener</code> to propagate preload events to apps.</li> <li>Allow changing SNTP client timeout and retry alternative addresses on timeout (<a href="https://redirect.github.com/androidx/media/issues/1540">#1540</a>).</li> <li>Remove <code>MediaCodecAdapter.Configuration.flags</code> as the field was always zero.</li> <li>Allow the user to select the built-in speaker for playback on Wear OS API 35+ (where the device advertises support for this).</li> <li>Defer the blocking call to <code>Context.getSystemService(Context.AUDIO_SERVICE)</code> until audio focus handling is enabled. This ensures the blocking call isn't done if audio focus handling is not enabled (<a href="https://redirect.github.com/androidx/media/pull/1616">#1616</a>).</li> <li>Allow playback regardless of buffered duration when loading fails (<a href="https://redirect.github.com/androidx/media/issues/1571">#1571</a>).</li> <li>Add <code>AnalyticsListener.onRendererReadyChanged()</code> to signal when individual renderers allow playback to be ready.</li> <li>Fix <code>MediaCodec.CryptoException</code> sometimes being reported as an "unexpected runtime error" when <code>MediaCodec</code> is operated in asynchronous mode (default behaviour on API 31+).</li> <li>Pass <code>bufferedDurationUs</code> instead of <code>bufferedPositionUs</code> with <code>PreloadMediaSource.PreloadControl.onContinueLoadingRequested()</code>. Also changes <code>DefaultPreloadManager.Status.STAGE_LOADED_TO_POSITION_MS</code> to <code>DefaultPreloadManager.Status.STAGE_LOADED_FOR_DURATION_MS</code>, apps then need to pass a value representing a specific duration from the default start position for which the corresponding media source has to be preloaded with this IntDef, instead of a position.</li> <li>Add <code>ForwardingRenderer</code> implementation that forwards all method calls to another renderer (<a href="https://redirect.github.com/androidx/media/pull/1703">1703</a>).</li> <li>Add playlist preloading for the next item in the playlist. Apps can enable preloading by calling <code>ExoPlayer.setPreloadConfiguration(PreloadConfiguration)</code> accordingly. By default preloading is disabled. When opted-in and to not interfere with playback, <code>DefaultLoadControl</code> restricts preloading to start and continue only when the player is not loading for playback. Apps can change this behaviour by implementing <code>LoadControl.shouldContinuePreloading()</code> accordingly (like when overriding this method in <code>DefaultLoadControl</code>). The default implementation of <code>LoadControl</code> disables preloading in case an app is using a custom implementation of <code>LoadControl</code>.</li> <li>Add method <code>MediaSourceEventListener.EventDispatcher.dispatchEvent()</code> to allow invoking events of subclass listeners (<a href="https://redirect.github.com/androidx/media/pull/1736">1736</a>).</li> <li>Add <code>DefaultPreloadManager.Builder</code> that builds the <code>DefaultPreloadManager</code> and <code>ExoPlayer</code> instances with consistently shared configurations.</li> <li>Remove <code>Renderer[]</code> parameter from <code>LoadControl.onTracksSelected()</code> as <code>DefaultLoadControl</code> implementation can retrieve the stream types from <code>ExoTrackSelection[]</code>.</li> <li>Deprecated <code>DefaultLoadControl.calculateTargetBufferBytes(Renderer[], ExoTrackSelection[])</code> and marked method as final to prevent overrides. The new <code>DefaultLoadControl.calculateTargetBufferBytes(ExoTrackSelection[])</code> should be used instead.</li> <li>Report <code>MediaSourceEventListener</code> events from secondary sources in <code>MergingMediaSource</code>. This will result in load start/error/cancelled/completed events being reported for sideloaded subtitles (those added with <code>MediaItem.LocalConfiguration.subtitleConfigurations</code>), which may appear as duplicate load events emitted from <code>AnalyticsListener</code>.</li> <li>Prevent subtitle & metadata errors from completely stopping playback. Instead the problematic track is disabled and playback of the remaining tracks continues (<a href="https://redirect.github.com/google/ExoPlayer/issues/1722">#1722</a>). <ul> <li>In new subtitle handling (during extraction), associated parse (e.g. invalid subtitle data) and load errors (e.g. HTTP 404) are emitted via <code>onLoadError</code> callbacks.</li> <li>In legacy subtitle handling (during rendering), only associated load errors are emitted via <code>onLoadError</code> callbacks while parse errors are silently ignored (this is pre-existing behaviour).</li> </ul> </li> <li>Fix bug where playlist items or periods in multi-period DASH streams with durations that don't match the actual content could cause frame freezes at the end of the item (<a href="https://redirect.github.com/androidx/media/issues/1698">#1698</a>).</li> <li>Add a setter to <code>SntpClient</code> to set the max elapsed time since the last update after which the client is re-initialized (<a href="https://redirect.github.com/androidx/media/pull/1794">#1794</a>).</li> </ul> </li> <li>Transformer:</li> </ul> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/androidx/media/blob/release/RELEASENOTES.md">androidx.media3:media3-exoplayer-dash's changelog</a>.</em></p> <blockquote> <h3>1.5.1 (2024-12-19)</h3> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/release/#150-2024-11-27">1.5.0 release</a>:</p> <ul> <li>ExoPlayer: <ul> <li>Disable use of asynchronous decryption in MediaCodec to avoid reported codec timeout issues with this platform API (<a href="https://redirect.github.com/androidx/media/issues/1641">#1641</a>).</li> </ul> </li> <li>Extractors: <ul> <li>MP3: Don't stop playback early when a <code>VBRI</code> frame's table of contents doesn't cover all the MP3 data in a file (<a href="https://redirect.github.com/androidx/media/issues/1904">#1904</a>).</li> </ul> </li> <li>Video: <ul> <li>Rollback of using <code>MediaCodecAdapter</code> supplied pixel aspect ratio values when provided while processing <code>onOutputFormatChanged</code> (<a href="https://redirect.github.com/androidx/media/pull/1371">#1371</a>).</li> </ul> </li> <li>Text: <ul> <li>Fix bug in <code>ReplacingCuesResolver.discardCuesBeforeTimeUs</code> where the cue active at <code>timeUs</code> (started before but not yet ended) was incorrectly discarded (<a href="https://redirect.github.com/androidx/media/issues/1939">#1939</a>).</li> </ul> </li> <li>Metadata: <ul> <li>Extract disc/track numbering and genre from Vorbis comments into <code>MediaMetadata</code> (<a href="https://redirect.github.com/androidx/media/issues/1958">#1958</a>).</li> </ul> </li> </ul> <h3>1.5.0 (2024-11-27)</h3> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/release/#141-2024-08-23">1.4.1 release</a>:</p> <ul> <li>Common Library: <ul> <li>Add <code>ForwardingSimpleBasePlayer</code> that allows forwarding to another player with small adjustments while ensuring full consistency and listener handling (<a href="https://redirect.github.com/androidx/media/issues/1183">#1183</a>).</li> <li>Replace <code>SimpleBasePlayer.State.playlist</code> by <code>getPlaylist()</code> method.</li> <li>Add override for <code>SimpleBasePlayer.State.Builder.setPlaylist()</code> to directly specify a <code>Timeline</code> and current <code>Tracks</code> and <code>Metadata</code> instead of building a playlist structure.</li> <li>Increase <code>minSdk</code> to 21 (Android Lollipop). This is aligned with all other AndroidX libraries.</li> <li>Add <code>androidx.media3:media3-common-ktx</code> artifact which provides Kotlin-specific functionality built on top of the Common library</li> <li>Add <code>Player.listen</code> suspending extension function to spin a coroutine to listen to <code>Player.Events</code> to the <code>media3-common-ktx</code> library.</li> <li>Remove <code>@DoNotInline</code> annotations from manually out-of-lined inner classes designed to avoid <a href="https://chromium.googlesource.com/chromium/src/+/HEAD/build/android/docs/class_verification_failures.md">runtime class verification failures</a>. Recent versions of <a href="https://developer.android.com/build/shrink-code">R8</a></li> </ul> </li> </ul> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/androidx/media/commit/76088cd6af7f263aba238b7a48d64bd4f060cb8b"><code>76088cd</code></a> Bump Media3 version to 1.5.1</li> <li><a href="https://github.com/androidx/media/commit/7ae9ddf1662b7174a2d82eb14a0f07fc5d7a3e95"><code>7ae9ddf</code></a> Update release notes for Media3 1.5.1 release</li> <li><a href="https://github.com/androidx/media/commit/e4e59cd929af4d80b84d9a392ae82cb4aa07cf0b"><code>e4e59cd</code></a> Switch default of async crypto mode to disabled</li> <li><a href="https://github.com/androidx/media/commit/508a4258a32c4f03ae69721a0609075d9d817b77"><code>508a425</code></a> Switch play FGS exemption to use custom action instead of commands</li> <li><a href="https://github.com/androidx/media/commit/52f976179622c764794859195dbecd6bea4104a4"><code>52f9761</code></a> Don't check codec's profile for MV-HEVC video.</li> <li><a href="https://github.com/androidx/media/commit/de91ebc6ae101cdd4c9e4246cb6840a7962aa38b"><code>de91ebc</code></a> Add vorbis comment support for track/disc numbering fields, and genre</li> <li><a href="https://github.com/androidx/media/commit/5d9badcb502aebc57027ba407959344b55731e9d"><code>5d9badc</code></a> Fix ReplacingCuesResolver.discardCuesBeforeTimeUs to retain active cue</li> <li><a href="https://github.com/androidx/media/commit/121b79ae96e334e79ec0f886fccf81357b9054d0"><code>121b79a</code></a> Merge pull request <a href="https://redirect.github.com/androidx/media/issues/1943">#1943</a> from DolbyLaboratories:dlb/ac4-ajoc/dev</li> <li><a href="https://github.com/androidx/media/commit/fa9689ef9ad10d97f60b8b9496222ae0e2624cd5"><code>fa9689e</code></a> Clarify <code>CommandButton</code> javadoc around <code>iconResId</code> and <code>ICON_UNDEFINED</code></li> <li><a href="https://github.com/androidx/media/commit/f5bbb39e90ef54e163e716e5b01122d730192503"><code>f5bbb39</code></a> Merge pull request <a href="https://redirect.github.com/androidx/media/issues/1823">#1823</a> from MGaetan89:remove_outdated_sdk_check</li> <li>Additional commits viewable in <a href="https://github.com/androidx/media/compare/1.4.1...1.5.1">compare view</a></li> </ul> </details> <br /> Updates `androidx.media3:media3-exoplayer-rtsp` from 1.4.1 to 1.5.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/androidx/media/releases">androidx.media3:media3-exoplayer-rtsp's releases</a>.</em></p> <blockquote> <h2>1.5.1</h2> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/HEAD/#150-2024-11-27">1.5.0 release</a>:</p> <ul> <li>ExoPlayer: <ul> <li>Disable use of asynchronous decryption in MediaCodec to avoid reported codec timeout issues with this platform API (<a href="https://redirect.github.com/androidx/media/issues/1641">#1641</a>).</li> </ul> </li> <li>Extractors: <ul> <li>MP3: Don't stop playback early when a <code>VBRI</code> frame's table of contents doesn't cover all the MP3 data in a file (<a href="https://redirect.github.com/androidx/media/issues/1904">#1904</a>).</li> </ul> </li> <li>Video: <ul> <li>Rollback of using <code>MediaCodecAdapter</code> supplied pixel aspect ratio values when provided while processing <code>onOutputFormatChanged</code> (<a href="https://redirect.github.com/androidx/media/pull/1371">#1371</a>).</li> </ul> </li> <li>Text: <ul> <li>Fix bug in <code>ReplacingCuesResolver.discardCuesBeforeTimeUs</code> where the cue active at <code>timeUs</code> (started before but not yet ended) was incorrectly discarded (<a href="https://redirect.github.com/androidx/media/issues/1939">#1939</a>).</li> </ul> </li> <li>Metadata: <ul> <li>Extract disc/track numbering and genre from Vorbis comments into <code>MediaMetadata</code> (<a href="https://redirect.github.com/androidx/media/issues/1958">#1958</a>).</li> </ul> </li> </ul> <h2>1.5.0</h2> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/HEAD/#141-2024-08-23">1.4.1 release</a>:</p> <ul> <li>Common Library: <ul> <li>Add <code>ForwardingSimpleBasePlayer</code> that allows forwarding to another player with small adjustments while ensuring full consistency and listener handling (<a href="https://redirect.github.com/androidx/media/issues/1183">#1183</a>).</li> <li>Replace <code>SimpleBasePlayer.State.playlist</code> by <code>getPlaylist()</code> method.</li> <li>Add override for <code>SimpleBasePlayer.State.Builder.setPlaylist()</code> to directly specify a <code>Timeline</code> and current <code>Tracks</code> and <code>Metadata</code> instead of building a playlist structure.</li> <li>Increase <code>minSdk</code> to 21 (Android Lollipop). This is aligned with all other AndroidX libraries.</li> <li>Add <code>androidx.media3:media3-common-ktx</code> artifact which provides Kotlin-specific functionality built on top of the Common library</li> <li>Add <code>Player.listen</code> suspending extension function to spin a coroutine to listen to <code>Player.Events</code> to the <code>media3-common-ktx</code> library.</li> <li>Remove <code>@DoNotInline</code> annotations from manually out-of-lined inner classes designed to avoid <a href="https://chromium.googlesource.com/chromium/src/+/HEAD/build/android/docs/class_verification_failures.md">runtime class verification failures</a>. Recent versions of <a href="https://developer.android.com/build/shrink-code">R8</a> now automatically out-of-line calls like these to avoid the runtime failures (so the manual out-of-lining is no longer required). All Gradle users of the library must already be a using a version of the Android Gradle Plugin that uses a version of R8 which does this, <a href="https://issuetracker.google.com/345472586#comment7">due to <code>compileSdk = 35</code></a>. Users of the library with non-Gradle build systems will need to ensure their R8-equivalent shrinking/obfuscating step does a similar automatic out-of-lining process in order to avoid runtime class verification failures. This change has <a href="http://r.android.com/3156141">already been done in other AndroidX libraries</a>.</li> </ul> </li> <li>ExoPlayer: <ul> <li><code>MediaCodecRenderer.onProcessedStreamChange()</code> can now be called for every media item. Previously it was not called for the first one. Use <code>MediaCodecRenderer.experimentalEnableProcessedStreamChangedAtStart()</code> to enable this.</li> <li>Add <code>PreloadMediaSource.PreloadControl.onPreloadError</code> to allow <code>PreloadMediaSource.PreloadControl</code> implementations to take actions when error occurs.</li> <li>Add <code>BasePreloadManager.Listener</code> to propagate preload events to apps.</li> <li>Allow changing SNTP client timeout and retry alternative addresses on timeout (<a href="https://redirect.github.com/androidx/media/issues/1540">#1540</a>).</li> <li>Remove <code>MediaCodecAdapter.Configuration.flags</code> as the field was always zero.</li> <li>Allow the user to select the built-in speaker for playback on Wear OS API 35+ (where the device advertises support for this).</li> <li>Defer the blocking call to <code>Context.getSystemService(Context.AUDIO_SERVICE)</code> until audio focus handling is enabled. This ensures the blocking call isn't done if audio focus handling is not enabled (<a href="https://redirect.github.com/androidx/media/pull/1616">#1616</a>).</li> <li>Allow playback regardless of buffered duration when loading fails (<a href="https://redirect.github.com/androidx/media/issues/1571">#1571</a>).</li> <li>Add <code>AnalyticsListener.onRendererReadyChanged()</code> to signal when individual renderers allow playback to be ready.</li> <li>Fix <code>MediaCodec.CryptoException</code> sometimes being reported as an "unexpected runtime error" when <code>MediaCodec</code> is operated in asynchronous mode (default behaviour on API 31+).</li> <li>Pass <code>bufferedDurationUs</code> instead of <code>bufferedPositionUs</code> with <code>PreloadMediaSource.PreloadControl.onContinueLoadingRequested()</code>. Also changes <code>DefaultPreloadManager.Status.STAGE_LOADED_TO_POSITION_MS</code> to <code>DefaultPreloadManager.Status.STAGE_LOADED_FOR_DURATION_MS</code>, apps then need to pass a value representing a specific duration from the default start position for which the corresponding media source has to be preloaded with this IntDef, instead of a position.</li> <li>Add <code>ForwardingRenderer</code> implementation that forwards all method calls to another renderer (<a href="https://redirect.github.com/androidx/media/pull/1703">1703</a>).</li> <li>Add playlist preloading for the next item in the playlist. Apps can enable preloading by calling <code>ExoPlayer.setPreloadConfiguration(PreloadConfiguration)</code> accordingly. By default preloading is disabled. When opted-in and to not interfere with playback, <code>DefaultLoadControl</code> restricts preloading to start and continue only when the player is not loading for playback. Apps can change this behaviour by implementing <code>LoadControl.shouldContinuePreloading()</code> accordingly (like when overriding this method in <code>DefaultLoadControl</code>). The default implementation of <code>LoadControl</code> disables preloading in case an app is using a custom implementation of <code>LoadControl</code>.</li> <li>Add method <code>MediaSourceEventListener.EventDispatcher.dispatchEvent()</code> to allow invoking events of subclass listeners (<a href="https://redirect.github.com/androidx/media/pull/1736">1736</a>).</li> <li>Add <code>DefaultPreloadManager.Builder</code> that builds the <code>DefaultPreloadManager</code> and <code>ExoPlayer</code> instances with consistently shared configurations.</li> <li>Remove <code>Renderer[]</code> parameter from <code>LoadControl.onTracksSelected()</code> as <code>DefaultLoadControl</code> implementation can retrieve the stream types from <code>ExoTrackSelection[]</code>.</li> <li>Deprecated <code>DefaultLoadControl.calculateTargetBufferBytes(Renderer[], ExoTrackSelection[])</code> and marked method as final to prevent overrides. The new <code>DefaultLoadControl.calculateTargetBufferBytes(ExoTrackSelection[])</code> should be used instead.</li> <li>Report <code>MediaSourceEventListener</code> events from secondary sources in <code>MergingMediaSource</code>. This will result in load start/error/cancelled/completed events being reported for sideloaded subtitles (those added with <code>MediaItem.LocalConfiguration.subtitleConfigurations</code>), which may appear as duplicate load events emitted from <code>AnalyticsListener</code>.</li> <li>Prevent subtitle & metadata errors from completely stopping playback. Instead the problematic track is disabled and playback of the remaining tracks continues (<a href="https://redirect.github.com/google/ExoPlayer/issues/1722">#1722</a>). <ul> <li>In new subtitle handling (during extraction), associated parse (e.g. invalid subtitle data) and load errors (e.g. HTTP 404) are emitted via <code>onLoadError</code> callbacks.</li> <li>In legacy subtitle handling (during rendering), only associated load errors are emitted via <code>onLoadError</code> callbacks while parse errors are silently ignored (this is pre-existing behaviour).</li> </ul> </li> <li>Fix bug where playlist items or periods in multi-period DASH streams with durations that don't match the actual content could cause frame freezes at the end of the item (<a href="https://redirect.github.com/androidx/media/issues/1698">#1698</a>).</li> <li>Add a setter to <code>SntpClient</code> to set the max elapsed time since the last update after which the client is re-initialized (<a href="https://redirect.github.com/androidx/media/pull/1794">#1794</a>).</li> </ul> </li> <li>Transformer:</li> </ul> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/androidx/media/blob/release/RELEASENOTES.md">androidx.media3:media3-exoplayer-rtsp's changelog</a>.</em></p> <blockquote> <h3>1.5.1 (2024-12-19)</h3> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/release/#150-2024-11-27">1.5.0 release</a>:</p> <ul> <li>ExoPlayer: <ul> <li>Disable use of asynchronous decryption in MediaCodec to avoid reported codec timeout issues with this platform API (<a href="https://redirect.github.com/androidx/media/issues/1641">#1641</a>).</li> </ul> </li> <li>Extractors: <ul> <li>MP3: Don't stop playback early when a <code>VBRI</code> frame's table of contents doesn't cover all the MP3 data in a file (<a href="https://redirect.github.com/androidx/media/issues/1904">#1904</a>).</li> </ul> </li> <li>Video: <ul> <li>Rollback of using <code>MediaCodecAdapter</code> supplied pixel aspect ratio values when provided while processing <code>onOutputFormatChanged</code> (<a href="https://redirect.github.com/androidx/media/pull/1371">#1371</a>).</li> </ul> </li> <li>Text: <ul> <li>Fix bug in <code>ReplacingCuesResolver.discardCuesBeforeTimeUs</code> where the cue active at <code>timeUs</code> (started before but not yet ended) was incorrectly discarded (<a href="https://redirect.github.com/androidx/media/issues/1939">#1939</a>).</li> </ul> </li> <li>Metadata: <ul> <li>Extract disc/track numbering and genre from Vorbis comments into <code>MediaMetadata</code> (<a href="https://redirect.github.com/androidx/media/issues/1958">#1958</a>).</li> </ul> </li> </ul> <h3>1.5.0 (2024-11-27)</h3> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/release/#141-2024-08-23">1.4.1 release</a>:</p> <ul> <li>Common Library: <ul> <li>Add <code>ForwardingSimpleBasePlayer</code> that allows forwarding to another player with small adjustments while ensuring full consistency and listener handling (<a href="https://redirect.github.com/androidx/media/issues/1183">#1183</a>).</li> <li>Replace <code>SimpleBasePlayer.State.playlist</code> by <code>getPlaylist()</code> method.</li> <li>Add override for <code>SimpleBasePlayer.State.Builder.setPlaylist()</code> to directly specify a <code>Timeline</code> and current <code>Tracks</code> and <code>Metadata</code> instead of building a playlist structure.</li> <li>Increase <code>minSdk</code> to 21 (Android Lollipop). This is aligned with all other AndroidX libraries.</li> <li>Add <code>androidx.media3:media3-common-ktx</code> artifact which provides Kotlin-specific functionality built on top of the Common library</li> <li>Add <code>Player.listen</code> suspending extension function to spin a coroutine to listen to <code>Player.Events</code> to the <code>media3-common-ktx</code> library.</li> <li>Remove <code>@DoNotInline</code> annotations from manually out-of-lined inner classes designed to avoid <a href="https://chromium.googlesource.com/chromium/src/+/HEAD/build/android/docs/class_verification_failures.md">runtime class verification failures</a>. Recent versions of <a href="https://developer.android.com/build/shrink-code">R8</a></li> </ul> </li> </ul> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/androidx/media/commit/76088cd6af7f263aba238b7a48d64bd4f060cb8b"><code>76088cd</code></a> Bump Media3 version to 1.5.1</li> <li><a href="https://github.com/androidx/media/commit/7ae9ddf1662b7174a2d82eb14a0f07fc5d7a3e95"><code>7ae9ddf</code></a> Update release notes for Media3 1.5.1 release</li> <li><a href="https://github.com/androidx/media/commit/e4e59cd929af4d80b84d9a392ae82cb4aa07cf0b"><code>e4e59cd</code></a> Switch default of async crypto mode to disabled</li> <li><a href="https://github.com/androidx/media/commit/508a4258a32c4f03ae69721a0609075d9d817b77"><code>508a425</code></a> Switch play FGS exemption to use custom action instead of commands</li> <li><a href="https://github.com/androidx/media/commit/52f976179622c764794859195dbecd6bea4104a4"><code>52f9761</code></a> Don't check codec's profile for MV-HEVC video.</li> <li><a href="https://github.com/androidx/media/commit/de91ebc6ae101cdd4c9e4246cb6840a7962aa38b"><code>de91ebc</code></a> Add vorbis comment support for track/disc numbering fields, and genre</li> <li><a href="https://github.com/androidx/media/commit/5d9badcb502aebc57027ba407959344b55731e9d"><code>5d9badc</code></a> Fix ReplacingCuesResolver.discardCuesBeforeTimeUs to retain active cue</li> <li><a href="https://github.com/androidx/media/commit/121b79ae96e334e79ec0f886fccf81357b9054d0"><code>121b79a</code></a> Merge pull request <a href="https://redirect.github.com/androidx/media/issues/1943">#1943</a> from DolbyLaboratories:dlb/ac4-ajoc/dev</li> <li><a href="https://github.com/androidx/media/commit/fa9689ef9ad10d97f60b8b9496222ae0e2624cd5"><code>fa9689e</code></a> Clarify <code>CommandButton</code> javadoc around <code>iconResId</code> and <code>ICON_UNDEFINED</code></li> <li><a href="https://github.com/androidx/media/commit/f5bbb39e90ef54e163e716e5b01122d730192503"><code>f5bbb39</code></a> Merge pull request <a href="https://redirect.github.com/androidx/media/issues/1823">#1823</a> from MGaetan89:remove_outdated_sdk_check</li> <li>Additional commits viewable in <a href="https://github.com/androidx/media/compare/1.4.1...1.5.1">compare view</a></li> </ul> </details> <br /> Updates `androidx.media3:media3-exoplayer-smoothstreaming` from 1.4.1 to 1.5.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/androidx/media/releases">androidx.media3:media3-exoplayer-smoothstreaming's releases</a>.</em></p> <blockquote> <h2>1.5.1</h2> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/HEAD/#150-2024-11-27">1.5.0 release</a>:</p> <ul> <li>ExoPlayer: <ul> <li>Disable use of asynchronous decryption in MediaCodec to avoid reported codec timeout issues with this platform API (<a href="https://redirect.github.com/androidx/media/issues/1641">#1641</a>).</li> </ul> </li> <li>Extractors: <ul> <li>MP3: Don't stop playback early when a <code>VBRI</code> frame's table of contents doesn't cover all the MP3 data in a file (<a href="https://redirect.github.com/androidx/media/issues/1904">#1904</a>).</li> </ul> </li> <li>Video: <ul> <li>Rollback of using <code>MediaCodecAdapter</code> supplied pixel aspect ratio values when provided while processing <code>onOutputFormatChanged</code> (<a href="https://redirect.github.com/androidx/media/pull/1371">#1371</a>).</li> </ul> </li> <li>Text: <ul> <li>Fix bug in <code>ReplacingCuesResolver.discardCuesBeforeTimeUs</code> where the cue active at <code>timeUs</code> (started before but not yet ended) was incorrectly discarded (<a href="https://redirect.github.com/androidx/media/issues/1939">#1939</a>).</li> </ul> </li> <li>Metadata: <ul> <li>Extract disc/track numbering and genre from Vorbis comments into <code>MediaMetadata</code> (<a href="https://redirect.github.com/androidx/media/issues/1958">#1958</a>).</li> </ul> </li> </ul> <h2>1.5.0</h2> <p>This release includes the following changes since the <a href="https://github.com/androidx/media/blob/HEAD/#141-2024-08-23">1.4.1 release</a>:</p> <ul> <li>Common Library: <ul> <li>Add <code>ForwardingSimpleBasePlayer</code> that allows forwarding to another player with small adjustments while ensuring full consistency and listener handling (<a href="https://redirect.github.com/androidx/media/issues/1183">#1183</a>).</li> <li>Replace <code>SimpleBasePlayer.State.playlist</code> by <code>getPlaylist()</code> method.</li> <li>Add override for <code>SimpleBasePlayer.State.Builder.setPlaylist()</code> to directly specify a <code>Timeline</code> and current <code>Tracks</code> and <code>Metadata</code> instead of building a playlist structure.</li> <li>Increase <code>minSdk</code> to 21 (Android Lollipop). This is aligned with all other AndroidX libraries.</li> <li>Add <code>androidx.media3:media3-common-ktx</code> artifact which provides Kotlin-specific functionality built on top of the Common library</li> <li>Add <code>Player.listen</code> suspending extension function to spin a coroutine to listen to <code>Player.Events</code> to the <code>media3-common-ktx</code> library.</li> <li>Remove <code>@DoNotInline</code> annotations from manually out-of-lined inner classes designed to avoid <a href="https://chromium.googlesource.com/chromium/src/+/HEAD/build/android/docs/class_verification_failures.md">runtime class verification failures</a>. Recent versions of <a href="https://developer.android.com/build/shrink-code">R8</a> now automatically out-of-line calls like these to avoid the runtime failures (so the manual out-of-lining is no longer required). All Gradle users of the library must already be a using a version of the Android Gradle Plugin that uses a version of R8 which does this, <a href="https://issuetracker.google.com/345472586#comment7">due to <code>compileSdk = 35</code></a>. Users of the library with non-Gradle build systems will need to ensure their R8-equivalent shrinking/obfuscating step does a similar automatic out-of-lining process in order to avoid runtime class verification failures. This change has <a href="http://r.android.com/3156141">already been done in other AndroidX libraries</a>.</li> </ul> </li> <li>ExoPlayer: <ul> <li><code>MediaCodecRenderer.onProcessedStreamChange()</code> can now be called for every media item. Previously it was not called for the first one. Use <code>MediaCodecRenderer.experimentalEnableProcessedStreamChangedAtStart()</code> to enable this.</li> <li>Add <code>PreloadMediaSource.PreloadControl.onPreloadError</code> to allow <code>PreloadMediaSource.PreloadControl</code> implementations to take actions when error occurs.</li> <li>Add <code>BasePreloadManager.Listener</code> to propagate preload events to apps.</li> <li>Allow changing SNTP client timeout and retry alternative addresses on timeout (<a href="https://redirect.github.com/androidx/media/issues/1540">#1540</a>).</li> <li>Remove <code>MediaCodecAdapter.Configuration.flags</code> as the fie... _Description has been truncated_ > **Note** > Automatic rebases have been disabled on this pull request as it has been…
Configuration menu - View commit details
-
Copy full SHA for 35eaf3e - Browse repository at this point
Copy the full SHA 35eaf3eView commit details
Commits on Jul 1, 2025
-
[video_player] Use CADisplayLink on macOS 14.0+ (#9533)
Marks the CVDisplayLink-based implementation that was previously used on macOS in all cases with deprecation suppressions, and switches macOS 14+ to share the CADisplayLink-based implementation that is currently used for iOS. Fixes flutter/flutter#171391 ## Pre-Review Checklist [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
Configuration menu - View commit details
-
Copy full SHA for 3dc682d - Browse repository at this point
Copy the full SHA 3dc682dView commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 471bfd305f4e...3dc682deffb4