You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 6e48a90
Browse filesBrowse the repository at this point in the historyBrowse files
Whenever any audio endpoint became active, SarAsio had the driver send
KSEVENT_PINCAPS_FORMATCHANGE to every SAR filter on its next tick, and
the audio engine invalidated every stream open on a SAR endpoint. Its
check for SAR endpoints passes for any endpoint (IPropertyStore
returns S_OK and VT_EMPTY for a missing key), so starting a host
invalidated its own fresh streams, and so did every endpoint Windows
rebuilt and any other device appearing.
The event was added for #2, so the audio engine would re-read the
format of an endpoint recreated at a different sample rate. It wasn't
enough on Windows 10, whose format cache ignored it, so the driver
also puts the channel count, sample rate and sample size into each
endpoint's KS reference string there, which makes such an endpoint a
new one to Windows. With Windows 10 required, the event does nothing
useful. Remove it, SarAsio's endpoint notification client that only
existed to trigger it, the driver's SAR_SEND_FORMAT_CHANGE_EVENT IOCTL,
and SarConfigure's -u switch that sent it by hand.
On the test VM (16 endpoint pairs, three start/stop iterations), the
loopback run saw 34 to 116 stream invalidations per run with the
broadcast (3 runs) and none without it (8 runs). The format-* checks
(same endpoint IDs at 48 kHz, 96 kHz and 48 kHz again) pass with and
without it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0 commit comments