Skip to content

feat(coreaudio): synchronized duplex impl on macOS - #1298

Draft
gulbrand wants to merge 1 commit into
RustAudio:developfrom
gulbrand:macos-duplex
Draft

feat(coreaudio): synchronized duplex impl on macOS#1298
gulbrand wants to merge 1 commit into
RustAudio:developfrom
gulbrand:macos-duplex

Conversation

@gulbrand

@gulbrand gulbrand commented Aug 2, 2026

Copy link
Copy Markdown

I'm still drafting this. First round testing now since the merge of #1229 .

Adapted from f0bb87d (written against the pre-review duplex interface
d5bfdc8) onto upstream develop's final interface (6593cf6 + 5c13c0d):

- build_duplex_stream_raw now takes separate input/output sample
  formats; each direction's ASBD and buffer sizing uses its own format.
- Timestamps use the unified CallbackInfo/StreamTimestamp types and
  report xruns via the processor-overload listener (one flag reported
  on both directions, since the overload notification is undirected).
- The duplex render callback pre-fills output with equilibrium and
  honors the draining flag; stop() drains over one buffer's duration.
- DisconnectManager gains an opt-in buffer-size-change listener on top
  of upstream's overload listener; duplex streams enable it because
  the input scratch buffer is sized to the negotiated frame count.
- Streams are no longer auto-started at build; call start(), matching
  the input/output builders.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant