Skip to content

build(deps): bump cpal from 0.16.0 to 0.17.1#22693

Open
dependabot[bot] wants to merge 2 commits intomasterfrom
dependabot/cargo/cpal-0.17.1
Open

build(deps): bump cpal from 0.16.0 to 0.17.1#22693
dependabot[bot] wants to merge 2 commits intomasterfrom
dependabot/cargo/cpal-0.17.1

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Jan 5, 2026

Bumps cpal from 0.16.0 to 0.17.1.

Release notes

Sourced from cpal's releases.

cpal 0.17.1

Added

  • ALSA: Default implementation for Device (returns the ALSA "default" device).
  • CI: Checks default/no-default/all feature sets with platform-dependent MSRV for JACK.

Fixed

  • ALSA: Device enumeration now includes both hints and physical cards.
  • JACK: No longer builds on iOS.
  • WASM: WasmBindgen no longer crashes (regression from 0.17.0).

Changed

  • ALSA: Devices now report direction from hint metadata and physical hardware probing.

cpal 0.17.0

Added

  • DeviceTrait::id method that returns a stable audio device ID.
  • HostTrait::device_by_id to select a device by its stable ID.
  • Display and FromStr implementations for HostId.
  • Support for custom Hosts, Devices, and Streams.
  • Sample::bits_per_sample method.
  • Copy implementation to InputCallbackInfo and OutputCallbackInfo.
  • StreamError::StreamInvalidated variant for when stream must be rebuilt.
  • StreamError::BufferUnderrun variant for buffer underrun/overrun notifications.
  • Hash implementation to Device for all backends.
  • AAudio: Send and Sync implementations to Stream.
  • AAudio: Support for 12 and 24 kHz sample rates.
  • ALSA: I24 and U24 sample format support (24-bit samples stored in 4 bytes).
  • ALSA: Support for 12, 24, 352.8, 384, 705.6, and 768 kHz sample rates.
  • ALSA: Eq and PartialEq implementations to Device.
  • CI: Native ARM64 Linux support in GitHub Actions.
  • CoreAudio: i8, i32 and I24 sample format support (24-bit samples stored in 4 bytes).
  • CoreAudio: Support for loopback recording (recording system audio output) on macOS > 14.6.
  • CoreAudio: Send implementation to Stream.
  • Emscripten: BufferSize::Fixed validation against supported range.
  • iOS: Complete AVAudioSession integration for device enumeration and buffer size control.
  • JACK: Support for macOS and Windows platforms.
  • JACK: BufferSize::Fixed validation to reject requests that don't match server buffer size.
  • WASAPI: Expose IMMDevice from WASAPI host Device.
  • WASAPI: I24 and U24 sample format support (24-bit samples stored in 4 bytes).
  • WASAPI: Send and Sync implementations to Stream.
  • WebAudio: Send and Sync implementations to Stream.
  • WebAudio: BufferSize::Fixed validation against supported range.

Changed

  • MSRV depends on the platform and at minimum 1.77.

... (truncated)

Changelog

Sourced from cpal's changelog.

[0.17.1] - 2026-01-04

Added

  • ALSA: Default implementation for Device (returns the ALSA "default" device).
  • CI: Checks default/no-default/all feature sets with platform-dependent MSRV for JACK.

Changed

  • ALSA: Devices now report direction from hint metadata and physical hardware probing.

Fixed

  • ALSA: Device enumeration now includes both hints and physical cards.
  • JACK: No longer builds on iOS.
  • WASM: WasmBindgen no longer crashes (regression from 0.17.0).

[0.17.0] - 2025-12-20

Added

  • DeviceTrait::id method that returns a stable audio device ID.
  • HostTrait::device_by_id to select a device by its stable ID.
  • Display and FromStr implementations for HostId.
  • Support for custom Hosts, Devices, and Streams.
  • Sample::bits_per_sample method.
  • Copy implementation to InputCallbackInfo and OutputCallbackInfo.
  • StreamError::StreamInvalidated variant for when stream must be rebuilt.
  • StreamError::BufferUnderrun variant for buffer underrun/overrun notifications.
  • Hash implementation to Device for all backends.
  • AAudio: Send and Sync implementations to Stream.
  • AAudio: Support for 12 and 24 kHz sample rates.
  • ALSA: I24 and U24 sample format support (24-bit samples stored in 4 bytes).
  • ALSA: Support for 12, 24, 352.8, 384, 705.6, and 768 kHz sample rates.
  • ALSA: Eq and PartialEq implementations to Device.
  • CI: Native ARM64 Linux support in GitHub Actions.
  • CoreAudio: i8, i32 and I24 sample format support (24-bit samples stored in 4 bytes).
  • CoreAudio: Support for loopback recording (recording system audio output) on macOS > 14.6.
  • CoreAudio: Send implementation to Stream.
  • Emscripten: BufferSize::Fixed validation against supported range.
  • iOS: Complete AVAudioSession integration for device enumeration and buffer size control.
  • JACK: Support for macOS and Windows platforms.
  • JACK: BufferSize::Fixed validation to reject requests that don't match server buffer size.
  • WASAPI: Expose IMMDevice from WASAPI host Device.
  • WASAPI: I24 and U24 sample format support (24-bit samples stored in 4 bytes).
  • WASAPI: Send and Sync implementations to Stream.
  • WebAudio: Send and Sync implementations to Stream.
  • WebAudio: BufferSize::Fixed validation against supported range.

Changed

... (truncated)

Commits
  • ddad8bc chore: prepare cpal v0.17.1 and asio-sys v0.2.5 release (#1090)
  • 17a2abd fix(asio-sys): case-insensitive ASIO SDK discovery (#1082)
  • 38e3b09 fix(wasm): wasm-bindgen break (#1086)
  • 7ec4e88 ci: check default/no-default/all feature sets with platform-dependent MSRV fo...
  • c6e2461 Fix AudioWorklet example (#1088)
  • 1162be5 chore(jack): bump MSRV to 1.82
  • 271a17a docs: fix Discord invite links
  • eb213b4 refactor(alsa): handle more open errors
  • e845974 fix(alsa): avoid poisoning during enumeration
  • fe9ef97 fix(alsa): treat NULL ALSA IOID as Duplex
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

@dependabot dependabot Bot added A-deps Area: Dependencies T-chore Type: Chore (like updating a dependency, it's gotta be done) labels Jan 5, 2026
@dependabot dependabot Bot force-pushed the dependabot/cargo/cpal-0.17.1 branch 4 times, most recently from 75b0033 to 13f35a9 Compare January 7, 2026 22:37
Bumps [cpal](https://github.com/RustAudio/cpal) from 0.16.0 to 0.17.1.
- [Release notes](https://github.com/RustAudio/cpal/releases)
- [Changelog](https://github.com/RustAudio/cpal/blob/master/CHANGELOG.md)
- [Commits](RustAudio/cpal@v0.16.0...v0.17.1)

---
updated-dependencies:
- dependency-name: cpal
  dependency-version: 0.17.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
if let Ok(devices) = audio_host.output_devices() {
for device in devices {
if let Ok(name) = device.name() {
if let Ok(name) = device.description().map(|d| d.name().to_owned()) {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is calling .to_owned() really necessary here?

&& let Some(device) =
devices.find(|device| device.name().ok().as_deref() == Some(preferred_device_name))
&& let Some(device) = devices.find(|device| {
device.description().ok().map(|d| d.name().to_owned())
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question here.

devices.find(|device| device.name().ok().as_deref() == Some(preferred_device_name))
&& let Some(device) = devices.find(|device| {
device.description().ok().map(|d| d.name().to_owned())
== Some(preferred_device_name.to_owned())
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and here

@torokati44
Copy link
Copy Markdown
Member

I think they are, because of some lifetime things...

But anyway, I think some things need revising, as on Linux, I see so many devices with identical names now...

@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github Feb 23, 2026

A newer version of cpal exists, but since this PR has been edited by someone other than Dependabot I haven't updated it. You'll get a PR for the updated version as normal once this PR is merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-deps Area: Dependencies T-chore Type: Chore (like updating a dependency, it's gotta be done)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants