Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump the gradle-dependencies group across 1 directory with 10 updates #15

Closed

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Jul 25, 2024

Bumps the gradle-dependencies group with 10 updates in the / directory:

Package From To
androidx.annotation:annotation 1.8.0 1.8.1
androidx.activity:activity-compose 1.9.0 1.9.1
io.coil-kt:coil-compose 2.6.0 2.7.0
androidx.media3:media3-exoplayer 1.3.1 1.4.0
androidx.media3:media3-exoplayer-workmanager 1.3.1 1.4.0
androidx.media3:media3-session 1.3.1 1.4.0
io.nlopez.compose.rules:detekt 0.4.4 0.4.5
com.android.application 8.5.0 8.5.1
com.android.lint 8.5.0 8.5.1
com.google.devtools.ksp 2.0.0-1.0.22 2.0.0-1.0.23

Updates androidx.annotation:annotation from 1.8.0 to 1.8.1

Updates androidx.activity:activity-compose from 1.9.0 to 1.9.1

Updates io.coil-kt:coil-compose from 2.6.0 to 2.7.0

Release notes

Sourced from io.coil-kt:coil-compose's releases.

2.7.0

See CHANGELOG.md.

Changelog

Sourced from io.coil-kt:coil-compose's changelog.

[2.7.0] - July 17, 2024

  • Slightly optimize internal coroutines usage to improve the performance of ImageLoader.execute, AsyncImage, SubcomposeAsyncImage, and rememberAsyncImagePainter. (#2205)
  • Fix duplicate network calls for chunked responses. (#2363)
  • Update Kotlin to 2.0.0.
  • Update Compose UI to 1.6.8.
  • Update Okio to 3.9.0.

[3.0.0-alpha08] - July 8, 2024

  • BREAKING: Rename ImageRequest and ImageLoader dispatcher methods to coroutineContext. For instance, ImageRequest.Builder.dispatcher is now ImageRequest.Builder.coroutineContext. This was renamed as the method now accepts any CoroutineContext and no longer requires a Dispatcher.
  • Fix: Fix IllegalStateException: Reading a state that was created after the snapshot was taken or in a snapshot that has not yet been applied which could occur due to a race condition.
    • NOTE: This reintroduces a soft dependency on Dispatchers.Main.immediate. As a result you should re-add a dependency on kotlinx-coroutines-swing on JVM. If it's not imported then ImageRequests won't be dispatched immediately and will have one frame of delay before setting the ImageRequest.placeholder or resolving from the memory cache.

[3.0.0-alpha07] - June 26, 2024

  • BREAKING: AsyncImagePainter no longer waits for onDraw by default and instead uses Size.ORIGINAL.
  • BREAKING: Refactor the multiplatform Image API. Notably, asCoilImage has been renamed to asImage.
  • BREAKING: AsyncImagePainter.state has been changed to StateFlow<AsyncImagePainter.State>. Use collectAsState to observe its value. This improves performance.
  • BREAKING: AsyncImagePainter.imageLoader and AsyncImagePainter.request have been combined into StateFlow<AsyncImagePainter.Inputs>. Use collectAsState to observe its value. This improves performance.
  • BREAKING: Remove support for android.resource://example.package.name/drawable/image URIs as it prevents resource shrinking optimizations.
  • New: Introduce AsyncImagePreviewHandler to support controlling AsyncImagePainter's preview rendering behavior.
    • Use LocalAsyncImagePreviewHandler to override the preview behavior.
    • As part of this change and other coil-compose improvements, AsyncImagePainter now attempts to execute execute the ImageRequest by default instead of defaulting to displaying ImageRequest.placeholder. Requests that use the network or files are expected to fail in the preview environment, however Android resources should work.
  • New: Support extracting video image by frame index. (#2183)
  • New: Support passing CoroutineContext to any CoroutineDispatcher methods. (#2241).
  • New: Support the weak reference memory cache on JS and WASM JS.
  • Don't dispatch to Dispatchers.Main.immediate in Compose. As a side-effect, kotlinx-coroutines-swing no longer needs to be imported on JVM.
  • Don't call async and create a disposable in Compose to improve performance (thanks @​mlykotom!). (#2205)
  • Fix passing global ImageLoader extras to Options. (#2223)
  • Fix crossfade(false) not working on non-Android targets.
  • Fix VP8X feature flags byte offset (#2199).
  • Convert SvgDecoder on non-Android targets to render to a bitmap instead of render the image at draw-time. This improves performance.
    • This behavior can be controlled using SvgDecoder(renderToBitmap).
  • Move ScaleDrawable from coil-gif to coil-core.
  • Update Kotlin to 2.0.0.
  • Update Compose to 1.6.11.
  • Update Okio to 3.9.0.
  • Update Skiko to 0.8.4.
  • For the full list of important changes in 3.x, check out the upgrade guide.

[3.0.0-alpha06] - February 29, 2024

[3.0.0-alpha05] - February 28, 2024

... (truncated)

Commits

Updates androidx.media3:media3-exoplayer from 1.3.1 to 1.4.0

Release notes

Sourced from androidx.media3:media3-exoplayer's releases.

1.4.0

This release includes the following changes since the 1.3.1 release:

  • Common Library:
    • Forward presumed no-op seek calls to the protected BasePlayer.seekTo() and SimpleBasePlayer.handleSeek() methods instead of ignoring them. If you are implementing these methods in a custom player, you may need to handle these additional calls with mediaItemIndex == C.INDEX_UNSET.
    • Remove compile dependency on enhanced Java 8 desugaring (#1312).
    • Ensure the duration passed to MediaItem.Builder.setImageDurationMs() is ignored for a non-image MediaItem (as documented).
    • Add Format.customData to store app-provided custom information about Format instances.
  • ExoPlayer:
    • Add BasePreloadManager which coordinates the preloading for multiple sources based on the priorities defined by their rankingData. Customization is possible by extending this class. Add DefaultPreloadManager which uses PreloadMediaSource to preload media samples of the sources into memory, and uses an integer rankingData that indicates the index of an item on the UI.
    • Add PlayerId to most methods of LoadControl to enable LoadControl implementations to support multiple players.
    • Remove Buffer.isDecodeOnly() and C.BUFFER_FLAG_DECODE_ONLY. There is no need to set this flag as renderers and decoders will decide to skip buffers based on timestamp. Custom Renderer implementations should check if the buffer time is at least BaseRenderer.getLastResetPositionUs() to decide whether a sample should be shown. Custom SimpleDecoder implementations can check isAtLeastOutputStartTimeUs() if needed or mark other buffers with DecoderOutputBuffer.shouldBeSkipped to skip them.
    • Allow a null value to be returned by TargetPreloadStatusControl.getTargetPreloadStatus(T) to indicate not to preload a MediaSource with the given rankingData.
    • Add remove(MediaSource) to BasePreloadManager.
    • Add reset() to BasePreloadManager to release all the holding sources while keep the preload manager instance.
    • Add ExoPlayer.setPriority() (and Builder.setPriority()) to define the priority value used in PriorityTaskManager and for MediaCodec importance from API 35.
    • Fix issue with updating the last rebuffer time which resulted in incorrect bs (buffer starvation) key in CMCD (#1124).
    • Add PreloadMediaSource.PreloadControl.onLoadedToTheEndOfSource(PreloadMediaSource) to indicate that the source has loaded to the end. This allows the DefaultPreloadManager and the custom PreloadMediaSource.PreloadControl implementations to preload the next source or take other actions.
    • Fix bug where silence skipping at the end of items can trigger a playback exception.
    • Add clear to PreloadMediaSource to discard the preloading period.
    • Add new error code PlaybackException.ERROR_CODE_DECODING_RESOURCES_RECLAIMED that is used when codec resources are reclaimed for higher priority tasks.
    • Let AdsMediaSource load preroll ads before initial content media preparation completes (#1358).
    • Fix bug where playback moved to STATE_ENDED when re-preparing a multi-period DASH live stream after the original period was already removed from the manifest.
    • Rename onTimelineRefreshed() to onSourcePrepared() and onPrepared() to onTracksSelected() in PreloadMediaSource.PreloadControl. Also rename the IntDefs in DefaultPreloadManager.Stage accordingly.
    • Add experimental support for dynamic scheduling to better align work with CPU wake-cycles and delay waking up to when renderers can progress. You can enable this using experimentalSetDynamicSchedulingEnabled() when setting up your ExoPlayer instance.
    • Add Renderer.getDurationToProgressUs(). A Renderer can implement this method to return to ExoPlayer the duration that playback must advance for the renderer to progress. If ExoPlayer is set with experimentalSetDynamicSchedulingEnabled() then ExoPlayer will call this method when calculating the time to schedule its work task.
    • Add MediaCodecAdapter#OnBufferAvailableListener to alert when input and output buffers are available for use by MediaCodecRenderer. MediaCodecRenderer will signal ExoPlayer when receiving these callbacks and if ExoPlayer is set with experimentalSetDynamicSchedulingEnabled(), then ExoPlayer will schedule its work loop as renderers can make progress.
    • Use data class for LoadControl methods instead of individual parameters.
    • Add ExoPlayer.isReleased() to check whether Exoplayer.release() has been called.
    • Add ExoPlayer.Builder.setMaxSeekToPreviousPositionMs() to configure the maximum position for which seekToPrevious() seeks to the previous item (#1425).
    • Fix some audio focus inconsistencies, e.g. not reporting full or transient focus loss while the player is paused (#1436).
    • Fix potential IndexOutOfBoundsException caused by extractors reporting additional tracks after the initial preparation step (#1476).
    • Effects in ExoPlayer.setVideoEffect() will receive the timestamps with the renderer offset removed (#1098).
    • Fix potential IllegalArgumentException when handling player error that happened while reading ahead into another playlist item (#1483).
  • Transformer:
    • Add audioConversionProcess and videoConversionProcess to ExportResult indicating how the respective track in the output file was made.
    • Relax trim optimization H.264 level checks.
    • Add support for changing between SDR and HDR input media in a sequence.
    • Add support for composition-level audio effects.
    • Add support for transcoding Ultra HDR images into HDR videos.
    • Fix issue where the DefaultAudioMixer does not output the correct amount of bytes after being reset and reused.
    • Work around a decoder bug where the number of audio channels was capped at stereo when handling PCM input.
    • When selecting tracks in ExoPlayerAssetLoader, ignore audio channel count constraints as they only apply for playback.
    • Replace androidx.media3.transformer.Muxer interface with androidx.media3.muxer.Muxer and remove androidx.media3.transformer.Muxer.
    • Fix HEIC image loading from content URI schemes (#1373).
    • Adjust audio track duration in AudioGraphInput to improve AV sync.
    • Remove ExportResult.processedInputs field. If you use this field for codec details, then use DefaultDecoderFactory.listener instead. In case of a codec exception, codec details will be available in the ExportException.codecInfo.
  • Extractors:
    • MPEG-TS: Roll forward the change ensuring the last frame is rendered by passing the last access unit of a stream to the sample queue (#7909). Incorporating fixes to resolve the issues that emerged in I-frame only HLS streams(#1150) and H.262 HLS streams (#1126).
    • MP3: Prefer the data size from an Info frame over the size reported by the underlying stream (e.g. file size, or HTTP Content-Length header). This helps to exclude non-playable trailer data (e.g. album artwork) from constant bitrate seeking calculations, making seeks more accurate (#1376).

... (truncated)

Changelog

Sourced from androidx.media3:media3-exoplayer's changelog.

1.4.0 (2024-07-24)

This release includes the following changes since the 1.3.1 release:

  • Common Library:
    • Forward presumed no-op seek calls to the protected BasePlayer.seekTo() and SimpleBasePlayer.handleSeek() methods instead of ignoring them. If you are implementing these methods in a custom player, you may need to handle these additional calls with mediaItemIndex == C.INDEX_UNSET.
    • Remove compile dependency on enhanced Java 8 desugaring (#1312).
    • Ensure the duration passed to MediaItem.Builder.setImageDurationMs() is ignored for a non-image MediaItem (as documented).
    • Add Format.customData to store app-provided custom information about Format instances.
  • ExoPlayer:
    • Add BasePreloadManager which coordinates the preloading for multiple sources based on the priorities defined by their rankingData. Customization is possible by extending this class. Add DefaultPreloadManager which uses PreloadMediaSource to preload media samples of the sources into memory, and uses an integer rankingData that indicates the index of an item on the UI.
    • Add PlayerId to most methods of LoadControl to enable LoadControl implementations to support multiple players.
    • Remove Buffer.isDecodeOnly() and C.BUFFER_FLAG_DECODE_ONLY. There is no need to set this flag as renderers and decoders will decide to skip buffers based on timestamp. Custom Renderer implementations should check if the buffer time is at least BaseRenderer.getLastResetPositionUs() to decide whether a sample should be shown. Custom SimpleDecoder implementations can check isAtLeastOutputStartTimeUs() if needed or mark other buffers with DecoderOutputBuffer.shouldBeSkipped to skip them.
    • Allow a null value to be returned by TargetPreloadStatusControl.getTargetPreloadStatus(T) to indicate not to preload a MediaSource with the given rankingData.
    • Add remove(MediaSource) to BasePreloadManager.
    • Add reset() to BasePreloadManager to release all the holding sources while keep the preload manager instance.
    • Add ExoPlayer.setPriority() (and Builder.setPriority()) to define the priority value used in PriorityTaskManager and for MediaCodec importance from API 35.
    • Fix issue with updating the last rebuffer time which resulted in incorrect bs (buffer starvation) key in CMCD (#1124).
    • Add PreloadMediaSource.PreloadControl.onLoadedToTheEndOfSource(PreloadMediaSource) to indicate that the source has loaded to the end. This allows the DefaultPreloadManager and the custom PreloadMediaSource.PreloadControl implementations to preload the next

... (truncated)

Commits
  • b01c6ff Merge branch 'release' into release-1.4.0
  • 9fb7316 Fix the release notes for 1.4.0 stable release
  • 4e6a643 Update media3 version for 1.4.0 stable release
  • 18a1582 Fix the release notes for 1.4.0 stable release
  • 1dfab4f Merge release notes for media3 1.4.0 stable release
  • 567204e Version bump to 1.4.0-rc01
  • 75dadea Update release notes for 1.4.0-rc01
  • d97ec13 Suppress the lint "WrongConstant" error
  • 6946f49 Add OptIn annotation to method declaration in demo app file
  • 5b60f6c Fix index out of bounds exception when a Subtitle is empty
  • Additional commits viewable in compare view

Updates androidx.media3:media3-exoplayer-workmanager from 1.3.1 to 1.4.0

Release notes

Sourced from androidx.media3:media3-exoplayer-workmanager's releases.

1.4.0

This release includes the following changes since the 1.3.1 release:

  • Common Library:
    • Forward presumed no-op seek calls to the protected BasePlayer.seekTo() and SimpleBasePlayer.handleSeek() methods instead of ignoring them. If you are implementing these methods in a custom player, you may need to handle these additional calls with mediaItemIndex == C.INDEX_UNSET.
    • Remove compile dependency on enhanced Java 8 desugaring (#1312).
    • Ensure the duration passed to MediaItem.Builder.setImageDurationMs() is ignored for a non-image MediaItem (as documented).
    • Add Format.customData to store app-provided custom information about Format instances.
  • ExoPlayer:
    • Add BasePreloadManager which coordinates the preloading for multiple sources based on the priorities defined by their rankingData. Customization is possible by extending this class. Add DefaultPreloadManager which uses PreloadMediaSource to preload media samples of the sources into memory, and uses an integer rankingData that indicates the index of an item on the UI.
    • Add PlayerId to most methods of LoadControl to enable LoadControl implementations to support multiple players.
    • Remove Buffer.isDecodeOnly() and C.BUFFER_FLAG_DECODE_ONLY. There is no need to set this flag as renderers and decoders will decide to skip buffers based on timestamp. Custom Renderer implementations should check if the buffer time is at least BaseRenderer.getLastResetPositionUs() to decide whether a sample should be shown. Custom SimpleDecoder implementations can check isAtLeastOutputStartTimeUs() if needed or mark other buffers with DecoderOutputBuffer.shouldBeSkipped to skip them.
    • Allow a null value to be returned by TargetPreloadStatusControl.getTargetPreloadStatus(T) to indicate not to preload a MediaSource with the given rankingData.
    • Add remove(MediaSource) to BasePreloadManager.
    • Add reset() to BasePreloadManager to release all the holding sources while keep the preload manager instance.
    • Add ExoPlayer.setPriority() (and Builder.setPriority()) to define the priority value used in PriorityTaskManager and for MediaCodec importance from API 35.
    • Fix issue with updating the last rebuffer time which resulted in incorrect bs (buffer starvation) key in CMCD (#1124).
    • Add PreloadMediaSource.PreloadControl.onLoadedToTheEndOfSource(PreloadMediaSource) to indicate that the source has loaded to the end. This allows the DefaultPreloadManager and the custom PreloadMediaSource.PreloadControl implementations to preload the next source or take other actions.
    • Fix bug where silence skipping at the end of items can trigger a playback exception.
    • Add clear to PreloadMediaSource to discard the preloading period.
    • Add new error code PlaybackException.ERROR_CODE_DECODING_RESOURCES_RECLAIMED that is used when codec resources are reclaimed for higher priority tasks.
    • Let AdsMediaSource load preroll ads before initial content media preparation completes (#1358).
    • Fix bug where playback moved to STATE_ENDED when re-preparing a multi-period DASH live stream after the original period was already removed from the manifest.
    • Rename onTimelineRefreshed() to onSourcePrepared() and onPrepared() to onTracksSelected() in PreloadMediaSource.PreloadControl. Also rename the IntDefs in DefaultPreloadManager.Stage accordingly.
    • Add experimental support for dynamic scheduling to better align work with CPU wake-cycles and delay waking up to when renderers can progress. You can enable this using experimentalSetDynamicSchedulingEnabled() when setting up your ExoPlayer instance.
    • Add Renderer.getDurationToProgressUs(). A Renderer can implement this method to return to ExoPlayer the duration that playback must advance for the renderer to progress. If ExoPlayer is set with experimentalSetDynamicSchedulingEnabled() then ExoPlayer will call this method when calculating the time to schedule its work task.
    • Add MediaCodecAdapter#OnBufferAvailableListener to alert when input and output buffers are available for use by MediaCodecRenderer. MediaCodecRenderer will signal ExoPlayer when receiving these callbacks and if ExoPlayer is set with experimentalSetDynamicSchedulingEnabled(), then ExoPlayer will schedule its work loop as renderers can make progress.
    • Use data class for LoadControl methods instead of individual parameters.
    • Add ExoPlayer.isReleased() to check whether Exoplayer.release() has been called.
    • Add ExoPlayer.Builder.setMaxSeekToPreviousPositionMs() to configure the maximum position for which seekToPrevious() seeks to the previous item (#1425).
    • Fix some audio focus inconsistencies, e.g. not reporting full or transient focus loss while the player is paused (#1436).
    • Fix potential IndexOutOfBoundsException caused by extractors reporting additional tracks after the initial preparation step (#1476).
    • Effects in ExoPlayer.setVideoEffect() will receive the timestamps with the renderer offset removed (#1098).
    • Fix potential IllegalArgumentException when handling player error that happened while reading ahead into another playlist item (#1483).
  • Transformer:
    • Add audioConversionProcess and videoConversionProcess to ExportResult indicating how the respective track in the output file was made.
    • Relax trim optimization H.264 level checks.
    • Add support for changing between SDR and HDR input media in a sequence.
    • Add support for composition-level audio effects.
    • Add support for transcoding Ultra HDR images into HDR videos.
    • Fix issue where the DefaultAudioMixer does not output the correct amount of bytes after being reset and reused.
    • Work around a decoder bug where the number of audio channels was capped at stereo when handling PCM input.
    • When selecting tracks in ExoPlayerAssetLoader, ignore audio channel count constraints as they only apply for playback.
    • Replace androidx.media3.transformer.Muxer interface with androidx.media3.muxer.Muxer and remove androidx.media3.transformer.Muxer.
    • Fix HEIC image loading from content URI schemes (#1373).
    • Adjust audio track duration in AudioGraphInput to improve AV sync.
    • Remove ExportResult.processedInputs field. If you use this field for codec details, then use DefaultDecoderFactory.listener instead. In case of a codec exception, codec details will be available in the ExportException.codecInfo.
  • Extractors:
    • MPEG-TS: Roll forward the change ensuring the last frame is rendered by passing the last access unit of a stream to the sample queue (#7909). Incorporating fixes to resolve the issues that emerged in I-frame only HLS streams(#1150) and H.262 HLS streams (#1126).
    • MP3: Prefer the data size from an Info frame over the size reported by the underlying stream (e.g. file size, or HTTP Content-Length header). This helps to exclude non-playable trailer data (e.g. album artwork) from constant bitrate seeking calculations, making seeks more accurate (#1376).

... (truncated)

Changelog

Sourced from androidx.media3:media3-exoplayer-workmanager's changelog.

1.4.0 (2024-07-24)

This release includes the following changes since the 1.3.1 release:

  • Common Library:
    • Forward presumed no-op seek calls to the protected BasePlayer.seekTo() and SimpleBasePlayer.handleSeek() methods instead of ignoring them. If you are implementing these methods in a custom player, you may need to handle these additional calls with mediaItemIndex == C.INDEX_UNSET.
    • Remove compile dependency on enhanced Java 8 desugaring (#1312).
    • Ensure the duration passed to MediaItem.Builder.setImageDurationMs() is ignored for a non-image MediaItem (as documented).
    • Add Format.customData to store app-provided custom information about Format instances.
  • ExoPlayer:
    • Add BasePreloadManager which coordinates the preloading for multiple sources based on the priorities defined by their rankingData. Customization is possible by extending this class. Add DefaultPreloadManager which uses PreloadMediaSource to preload media samples of the sources into memory, and uses an integer rankingData that indicates the index of an item on the UI.
    • Add PlayerId to most methods of LoadControl to enable LoadControl implementations to support multiple players.
    • Remove Buffer.isDecodeOnly() and C.BUFFER_FLAG_DECODE_ONLY. There is no need to set this flag as renderers and decoders will decide to skip buffers based on timestamp. Custom Renderer implementations should check if the buffer time is at least BaseRenderer.getLastResetPositionUs() to decide whether a sample should be shown. Custom SimpleDecoder implementations can check isAtLeastOutputStartTimeUs() if needed or mark other buffers with DecoderOutputBuffer.shouldBeSkipped to skip them.
    • Allow a null value to be returned by TargetPreloadStatusControl.getTargetPreloadStatus(T) to indicate not to preload a MediaSource with the given rankingData.
    • Add remove(MediaSource) to BasePreloadManager.
    • Add reset() to BasePreloadManager to release all the holding sources while keep the preload manager instance.
    • Add ExoPlayer.setPriority() (and Builder.setPriority()) to define the priority value used in PriorityTaskManager and for MediaCodec importance from API 35.
    • Fix issue with updating the last rebuffer time which resulted in incorrect bs (buffer starvation) key in CMCD (#1124).
    • Add PreloadMediaSource.PreloadControl.onLoadedToTheEndOfSource(PreloadMediaSource) to indicate that the source has loaded to the end. This allows the DefaultPreloadManager and the custom PreloadMediaSource.PreloadControl implementations to preload the next

... (truncated)

Commits
  • b01c6ff Merge branch 'release' into release-1.4.0
  • 9fb7316 Fix the release notes for 1.4.0 stable release
  • 4e6a643 Update media3 version for 1.4.0 stable release
  • 18a1582 Fix the release notes for 1.4.0 stable release
  • 1dfab4f Merge release notes for media3 1.4.0 stable release
  • 567204e Version bump to 1.4.0-rc01
  • 75dadea Update release notes for 1.4.0-rc01
  • d97ec13 Suppress the lint "WrongConstant" error
  • 6946f49 Add OptIn annotation to method declaration in demo app file
  • 5b60f6c Fix index out of bounds exception when a Subtitle is empty
  • Additional commits viewable in compare view

Updates androidx.media3:media3-session from 1.3.1 to 1.4.0

Release notes

Sourced from androidx.media3:media3-session's releases.

1.4.0

This release includes the following changes since the 1.3.1 release:

  • Common Library:
    • Forward presumed no-op seek calls to the protected BasePlayer.seekTo() and SimpleBasePlayer.handleSeek() methods instead of ignoring them. If you are implementing these methods in a custom player, you may need to handle these additional calls with mediaItemIndex == C.INDEX_UNSET.
    • Remove compile dependency on enhanced Java 8 desugaring (#1312).
    • Ensure the duration passed to MediaItem.Builder.setImageDurationMs() is ignored for a non-image MediaItem (as documented).
    • Add Format.customData to store app-provided custom information about Format instances.
  • ExoPlayer:
    • Add BasePreloadManager which coordinates the preloading for multiple sources based on the priorities defined by their rankingData. Customization is possible by extending this class. Add DefaultPreloadManager which uses PreloadMediaSource to preload media samples of the sources into memory, and uses an integer rankingData that indicates the index of an item on the UI.
    • Add PlayerId to most methods of LoadControl to enable LoadControl implementations to support multiple players.
    • Remove Buffer.isDecodeOnly() and C.BUFFER_FLAG_DECODE_ONLY. There is no need to set this flag as renderers and decoders will decide to skip buffers based on timestamp. Custom Renderer implementations should check if the buffer time is at least BaseRenderer.getLastResetPositionUs() to decide whether a sample should be shown. Custom SimpleDecoder implementations can check isAtLeastOutputStartTimeUs() if needed or mark other buffers with DecoderOutputBuffer.shouldBeSkipped to skip them.
    • Allow a null value to be returned by TargetPreloadStatusControl.getTargetPreloadStatus(T) to indicate not to preload a MediaSource with the given rankingData.
    • Add remove(MediaSource) to BasePreloadManager.
    • Add reset() to BasePreloadManager to release all the holding sources while keep the preload manager instance.
    • Add ExoPlayer.setPriority() (and Builder.setPriority()) to define the priority value used in PriorityTaskManager and for MediaCodec importance from API 35.
    • Fix issue with updating the last rebuffer time which resulted in incorrect bs (buffer starvation) key in CMCD (#1124).
    • Add PreloadMediaSource.PreloadControl.onLoadedToTheEndOfSource(PreloadMediaSource) to indicate that the source has loaded to the end. This allows the DefaultPreloadManager and the custom PreloadMediaSource.PreloadControl implementations to preload the next source or take other actions.
    • Fix bug where silence skipping at the end of items can trigger a playback exception.
    • Add clear to PreloadMediaSource to discard the preloading period.
    • Add new error code PlaybackException.ERROR_CODE_DECODING_RESOURCES_RECLAIMED that is used when codec resources are reclaimed for higher priority tasks.
    • Let AdsMediaSource load preroll ads before initial content media preparation completes (#1358).
    • Fix bug where playback moved to STATE_ENDED when re-preparing a multi-period DASH live stream after the original period was already removed from the manifest.
    • Rename onTimelineRefreshed() to onSourcePrepared() and onPrepared() to onTracksSelected() in PreloadMediaSource.PreloadControl. Also rename the IntDefs in DefaultPreloadManager.Stage accordingly.
    • Add experimental support for dynamic scheduling to better align work with CPU wake-cycles and delay waking up to when renderers can progress. You can enable this using experimentalSetDynamicSchedulingEnabled() when setting up your ExoPlayer instance.
    • Add Renderer.getDurationToProgressUs(). A Renderer can implement this method to return to ExoPlayer the duration that playback must advance for the renderer to progress. If ExoPlayer is set with experimentalSetDynamicSchedulingEnabled() then ExoPlayer will call this method when calculating the time to schedule its work task.
    • Add MediaCodecAdapter#OnBufferAvailableListener to alert when input and output buffers are available for use by MediaCodecRenderer. MediaCodecRenderer will signal ExoPlayer when receiving these callbacks and if ExoPlayer is set with experimentalSetDynamicSchedulingEnabled(), then ExoPlayer will schedule its work loop as renderers can make progress.
    • Use data class for LoadControl methods instead of individual parameters.
    • Add ExoPlayer.isReleased() to check whether Exoplayer.release() has been called.
    • Add ExoPlayer.Builder.setMaxSeekToPreviousPositionMs() to configure the maximum position for which seekToPrevious() seeks to the previous item (#1425).
    • Fix some audio focus inconsistencies, e.g. not reporting full or transient focus loss while the player is paused (#1436).
    • Fix potential IndexOutOfBoundsException caused by extractors reporting additional tracks after the initial preparation step (#1476).
    • Effects in ExoPlayer.setVideoEffect() will receive the timestamps with the renderer offset removed (#1098).
    • Fix potential IllegalArgumentException when handling player error that happened while reading ahead into another playlist item (#1483).
  • Transformer:
    • Add audioConversionProcess and videoConversionProcess to ExportResult indicating how the respective track in the output file was made.
    • Relax trim optimization H.264 level checks.
    • Add support for changing between SDR and HDR input media in a sequence.
    • Add support for composition-level audio effects.
    • Add support for transcoding Ultra HDR images into HDR videos.
    • Fix issue where the DefaultAudioMixer does not output the correct amount of bytes after being reset and reused.
    • Work around a decoder bug where the number of audio channels was capped at stereo when handling PCM input.
    • When selecting tracks in ExoPlayerAssetLoader, ignore audio channel count constraints as they only apply for playback.
    • Replace androidx.media3.transformer.Muxer interface with androidx.media3.muxer.Muxer and remove androidx.media3.transformer.Muxer.
    • Fix HEIC image loading from content URI schemes (#1373).
    • Adjust audio track duration in AudioGraphInput to improve AV sync.
    • Remove ExportResult.processedInputs field. If you use this field for codec details, then use DefaultDecoderFactory.listener instead. In case of a codec exception, codec details will be available in the ExportException.codecInfo.
  • Extractors:
    • MPEG-TS: Roll forward the change ensuring the last frame is rendered by passing the last access unit of a stream to the sample queue (#7909). Incorporating fixes to resolve the issues that emerged in I-frame only HLS streams(#1150) and H.262 HLS streams (#1126).
    • MP3: Prefer the data size from an Info frame over the size reported by the underlying stream (e.g. file size, or HTTP Content-Length header). This helps to exclude non-playable trailer data (e.g. album artwork) from constant bitrate seeking calculations, making seeks more accurate (#1376).

... (truncated)

Changelog

Sourced from androidx.media3:media3-session's changelog.

1.4.0 (2024-07-24)

This release includes the following changes since the 1.3.1 release:

  • Common Library:
    • Forward presumed no-op seek calls to the protected BasePlayer.seekTo() and SimpleBasePlayer.handleSeek() methods instead of ignoring them. If you are implementing these methods in a custom player, you may need to handle these additional calls with mediaItemIndex == C.INDEX_UNSET.
    • Remove compile dependency on enhanced Java 8 desugaring (#1312).
    • Ensure the duration passed to MediaItem.Builder.setImageDurationMs() is ignored for a non-image MediaItem (as documented).
    • Add Format.customData to store app-provided custom information about Format instances.
  • ExoPlayer:
    • Add BasePreloadManager which coordinates the preloading for multiple sources based on the priorities defined by their rankingData. Customization is possible by extending this class. Add DefaultPreloadManager which uses PreloadMediaSource to preload media samples of the sources into memory, and uses an integer rankingData that indicates the index of an item on the UI.
    • Add PlayerId to most methods of LoadControl to enable LoadControl implementations to support multiple players.
    • Remove Buffer.isDecodeOnly() and C.BUFFER_FLAG_DECODE_ONLY. There is no need to set this flag as renderers and decoders will decide to skip buffers based on timestamp. Custom Renderer implementations should check if the buffer time is at least BaseRenderer.getLastResetPositionUs() to decide whether a sample should be shown. Custom SimpleDecoder implementations can check isAtLeastOutputStartTimeUs() if needed or mark other buffers with DecoderOutputBuffer.shouldBeSkipped to skip them.
    • Allow a null value to be returned by TargetPreloadStatusControl.getTargetPreloadStatus(T) to indicate not to preload a MediaSource with the given rankingData.
    • Add remove(MediaSource) to BasePreloadManager.
    • Add reset() to BasePreloadManager to release all the holding sources while keep the preload manager instance.
    • Add ExoPlayer.setPriority() (and Builder.setPriority()) to define the priority value used in PriorityTaskManager and for MediaCodec importance from API 35.
    • Fix issue with updating the last rebuffer time which resulted in incorrect bs (buffer starvation) key in CMCD (#1124).
    • Add PreloadMediaSource.PreloadControl.onLoadedToTheEndOfSource(PreloadMediaSource) to indicate that the source has loaded to the end. This allows the DefaultPreloadManager and the custom PreloadMediaSource.PreloadControl implementations to preload the next

... (truncated)

Commits
  • b01c6ff Merge branch 'release' into release-1.4.0
  • 9fb7316 Fix the release notes for 1.4.0 stable release
  • 4e6a643 Update media3 version for 1.4.0 stable release
  • 18a1582 Fix the release notes for 1.4.0 stable release
  • 1dfab4f Merge release notes for media3 1.4.0 stable release
  • 567204e Version bump to 1.4.0-rc01
  • 75dadea Update release notes for 1.4.0-rc01
  • d97ec13 Suppress the lint "WrongConstant" error
  • 6946f49 Add OptIn annotation to method declaration in demo app file
  • 5b60f6c Fix index out of bounds exception when a Subtitle is empty
  • Additional commits viewable in compare view

Updates androidx.media3:media3-exoplayer-workmanager from 1.3.1 to 1.4.0

Release notes

Sourced from androidx.media3:media3-exoplayer-workmanager's releases.

1.4.0

This release includes the following changes since the 1.3.1 release:

  • Common Library:
    • Forward presumed no-op seek calls to the protected BasePlayer.seekTo() and SimpleBasePlayer.handleSeek() methods instead of ignoring them. If you are implementing these methods in a custom player, you may need to handle these additional calls with mediaItemIndex == C.INDEX_UNSET.
    • Remove compile dependency on enhanced Java 8 desugaring (#1312).
    • Ensure the duration passed to MediaItem.Builder.setImageDurationMs() is ignored for a non-image MediaItem (as documented).
    • Add Format.customData to store app-provided custom information about Format instances.
  • ExoPlayer:
    • Add BasePreloadManager which coordinates the preloading for multiple sources based on the priorities defined by their rankingData. Customization is possible by extending this class. Add DefaultPreloadManager which uses PreloadMediaSource to preload media samples of the sources into memory, and uses an integer rankingData that indicates the index of an item on the UI.
    • Add PlayerId to most methods of LoadControl to enable LoadControl implementations to support multiple players.
    • Remove Buffer.isDecodeOnly() and C.BUFFER_FLAG_DECODE_ONLY. There is no need to set this flag as renderers and decoders will decide to skip buffers based on timestamp. Custom Renderer implementations should check if the buffer time is at least BaseRenderer.getLastResetPositionUs() to decide whether a sample should be shown. Custom SimpleDecoder implementations can check isAtLeastOutputStartTimeUs() if needed or mark other buffers with DecoderOutputBuffer.shouldBeSkipped to skip them.
    • Allow a null value to be returned by TargetPreloadStatusControl.getTargetPreloadStatus(T) to indicate not to preload a MediaSource with the given rankingData.
    • Add remove(MediaSource) to BasePreloadManager.
    • Add reset() to BasePreloadManager to release all the holding sources while keep the preload manager instance.
    • Add ExoPlayer.setPriority() (and Builder.setPriority()) to define the priority value used in PriorityTaskManager and for MediaCodec importance from API 35.
    • Fix issue with updating the last rebuffer time which resulted in incorrect bs (buffer starvation) key in CMCD (#1124).
    • Add PreloadMediaSource.PreloadControl.onLoadedToTheEndOfSource(PreloadMediaSource) to indicate that the source has loaded to the end. This allows the DefaultPreloadManager and the custom PreloadMediaSource.PreloadControl implementations to preload the next source or take other actions.
    • Fix bug where silence skipping at the end of items can trigger a playback exception.
    • Add clear to PreloadMediaSource to discard the preloading period.
    • Add new error code PlaybackException.ERROR_CODE_DECODING_RESOURCES_RECLAIMED that is used when codec resources are reclaimed for higher priority tasks.
    • Let AdsMediaSource load preroll ads before initial content media preparation completes (#1358).
    • Fix bug where playback moved to STATE_ENDED when re-preparing a multi-period DASH live stream after the original period was already removed from the manifest.
    • Rename onTimelineRefreshed() to onSourcePrepared() and onPrepared() to onTracksSelected() in PreloadMediaSource.PreloadControl. Also rename the IntDefs in DefaultPreloadManager.Stage accordingly.
    • Add experimental support for dynamic scheduling to better align work with CPU wake-cycles and delay waking up to when renderers can progress. You can enable this using experimentalSetDynamicSchedulingEnabled() when setting up your ExoPlayer instance.
    • Add Renderer.getDurationToProgressUs(). A Renderer can implement this method to return to ExoPlayer the duration that playback must advance for the renderer to progress. If ExoPlayer is set with experimentalSetDynamicSchedulingEnabled() then ExoPlayer will call this method when calculating the time to schedule its work task.
    • Add MediaCodecAdapter#OnBufferAvailableListener to alert when input and output buffers are available for use by MediaCodecRenderer. MediaCodecRenderer will signal ExoPlayer when receiving these callbacks and if ExoPlayer is set with experimentalSetDynamicSchedulingEnabled(), then ExoPlayer will schedule its work loop as renderers can make progress.
    • Use data class for LoadControl methods instead of individual parameters.
    • Add ExoPlayer.isReleased() to check whether Exoplayer.release() has been called.
    • Add ExoPlayer.Builder.setMaxSeekToPreviousPositionMs() to configure the maximum position for which seekToPrevious() seeks to the previous item (#1425).
    • Fix some audio focus inconsistencies, e.g. not reporting full or transient focus loss while the player is paused (#1436).
    • Fix potential IndexOutOfBoundsException caused by extractors reporting additional tracks after the initial preparation step (#1476).
    • Effects in ExoPlayer.setVideoEffect() will receive the timestamps with the renderer offset removed (#1098).
    • Fix potential IllegalArgumentException when handling player error that happened while reading ahead into another playlist item (#1483).
  • Transformer:
    • Add audioConversionProcess and videoConversionProcess to ExportResult indicating how the respective track in the output file was made.
    • Relax trim optimization H.264 level checks.
    • Add support for changing between SDR and HDR input media in a sequence.
    • Add support for composition-level audio effects.
    • Add support for transcoding Ultra HDR images into HDR videos.
    • Fix issue where the DefaultAudioMixer does not output the correct amount of bytes after being reset and reused.
    • Work around a decoder bug where the number of audio channels was capped at stereo when handling PCM input.
    • When selecting tracks in ExoPlayerAssetLoader, ignore audio channel count constraints as they only apply for playback.
    • Replace androidx.media3.transformer.Muxer interface with androidx.media3.muxer.Muxer and remove androidx.media3.transformer.Muxer.
    • Fix HEIC image loading from content URI schemes (#1373).
    • Adjust audio track duration in AudioGraphInput to improve AV sync.
    • Remove ExportResult.processedInputs field. If you use this field for codec details, then use DefaultDecoderFactory.listener instead. In case of a codec exception, codec details will be available in the ExportException.codecInfo.
  • Extractors:
    • MPEG-TS: Roll forward the change ensuring the last frame is rendered by passing the last access unit of a stream to the sample queue (#7909). Incorporating fixes to resolve the issues that emerged in I-frame only HLS streams(#1150) and H.262 HLS streams (#1126).
    • MP3: Prefer the data size from an Info frame over the size reported by the underlying stream (e.g. file size, or HTTP Content-Length header). This helps to exclude non-playable trailer data (e.g. album artwork) from constant bitrate seeking calculations, making seeks more accurate (#1376).

... (truncated)

Changelog

Sourced from androidx.media3:media3-exoplayer-workmanager's changelog.

1.4.0 (2024-07-24)

This release includes the following changes since the 1.3.1 release:

  • Common Library:
    • Forward presumed no-op seek calls to the protected BasePlayer.seekTo() and SimpleBasePlayer.handleSeek() methods instead of ignoring them. If you are implementing these methods in a custom player, you may need to handle these additional calls with mediaItemIndex == C.INDEX_UNSET.
    • ...

      Description has been truncated

Bumps the gradle-dependencies group with 10 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| androidx.annotation:annotation | `1.8.0` | `1.8.1` |
| androidx.activity:activity-compose | `1.9.0` | `1.9.1` |
| [io.coil-kt:coil-compose](https://github.com/coil-kt/coil) | `2.6.0` | `2.7.0` |
| [androidx.media3:media3-exoplayer](https://github.com/androidx/media) | `1.3.1` | `1.4.0` |
| [androidx.media3:media3-exoplayer-workmanager](https://github.com/androidx/media) | `1.3.1` | `1.4.0` |
| [androidx.media3:media3-session](https://github.com/androidx/media) | `1.3.1` | `1.4.0` |
| [io.nlopez.compose.rules:detekt](https://github.com/mrmans0n/compose-rules) | `0.4.4` | `0.4.5` |
| com.android.application | `8.5.0` | `8.5.1` |
| com.android.lint | `8.5.0` | `8.5.1` |
| [com.google.devtools.ksp](https://github.com/google/ksp) | `2.0.0-1.0.22` | `2.0.0-1.0.23` |



Updates `androidx.annotation:annotation` from 1.8.0 to 1.8.1

Updates `androidx.activity:activity-compose` from 1.9.0 to 1.9.1

Updates `io.coil-kt:coil-compose` from 2.6.0 to 2.7.0
- [Release notes](https://github.com/coil-kt/coil/releases)
- [Changelog](https://github.com/coil-kt/coil/blob/main/CHANGELOG.md)
- [Commits](coil-kt/coil@2.6.0...2.7.0)

Updates `androidx.media3:media3-exoplayer` from 1.3.1 to 1.4.0
- [Release notes](https://github.com/androidx/media/releases)
- [Changelog](https://github.com/androidx/media/blob/release/RELEASENOTES.md)
- [Commits](androidx/media@1.3.1...1.4.0)

Updates `androidx.media3:media3-exoplayer-workmanager` from 1.3.1 to 1.4.0
- [Release notes](https://github.com/androidx/media/releases)
- [Changelog](https://github.com/androidx/media/blob/release/RELEASENOTES.md)
- [Commits](androidx/media@1.3.1...1.4.0)

Updates `androidx.media3:media3-session` from 1.3.1 to 1.4.0
- [Release notes](https://github.com/androidx/media/releases)
- [Changelog](https://github.com/androidx/media/blob/release/RELEASENOTES.md)
- [Commits](androidx/media@1.3.1...1.4.0)

Updates `androidx.media3:media3-exoplayer-workmanager` from 1.3.1 to 1.4.0
- [Release notes](https://github.com/androidx/media/releases)
- [Changelog](https://github.com/androidx/media/blob/release/RELEASENOTES.md)
- [Commits](androidx/media@1.3.1...1.4.0)

Updates `androidx.media3:media3-session` from 1.3.1 to 1.4.0
- [Release notes](https://github.com/androidx/media/releases)
- [Changelog](https://github.com/androidx/media/blob/release/RELEASENOTES.md)
- [Commits](androidx/media@1.3.1...1.4.0)

Updates `io.nlopez.compose.rules:detekt` from 0.4.4 to 0.4.5
- [Release notes](https://github.com/mrmans0n/compose-rules/releases)
- [Commits](mrmans0n/compose-rules@v0.4.4...v0.4.5)

Updates `com.android.application` from 8.5.0 to 8.5.1

Updates `com.android.lint` from 8.5.0 to 8.5.1

Updates `com.android.lint` from 8.5.0 to 8.5.1

Updates `com.google.devtools.ksp` from 2.0.0-1.0.22 to 2.0.0-1.0.23
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](google/ksp@2.0.0-1.0.22...2.0.0-1.0.23)

---
updated-dependencies:
- dependency-name: androidx.annotation:annotation
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: gradle-dependencies
- dependency-name: androidx.activity:activity-compose
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: gradle-dependencies
- dependency-name: io.coil-kt:coil-compose
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: gradle-dependencies
- dependency-name: androidx.media3:media3-exoplayer
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: gradle-dependencies
- dependency-name: androidx.media3:media3-exoplayer-workmanager
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: gradle-dependencies
- dependency-name: androidx.media3:media3-session
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: gradle-dependencies
- dependency-name: androidx.media3:media3-exoplayer-workmanager
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: gradle-dependencies
- dependency-name: androidx.media3:media3-session
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: gradle-dependencies
- dependency-name: io.nlopez.compose.rules:detekt
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: gradle-dependencies
- dependency-name: com.android.application
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: gradle-dependencies
- dependency-name: com.android.lint
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: gradle-dependencies
- dependency-name: com.android.lint
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: gradle-dependencies
- dependency-name: com.google.devtools.ksp
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: gradle-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Jul 25, 2024
Copy link
Contributor Author

dependabot bot commented on behalf of github Jul 29, 2024

Superseded by #16.

@dependabot dependabot bot closed this Jul 29, 2024
@dependabot dependabot bot deleted the dependabot/gradle/gradle-dependencies-d04d08344d branch July 29, 2024 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants