Repository navigation
Commit 6452cf3
SarAsio: don't broadcast format changes on Windows 10 and later
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. The
comment says new and non-SAR endpoints are filtered out, but the
property check passes for any endpoint, so starting a host invalidated
its own fresh streams, and so did each endpoint Windows rebuilt or any
other device appearing.
The event exists so the audio engine re-reads the format of an endpoint
re-created with a different sample rate. On Windows 10 and later the
driver puts the channel count, sample rate and sample size into the
endpoint's KS reference string, so such an endpoint is a new endpoint
to Windows and the event is never needed there. Skip it on those
versions.
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).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>1 parent 990828a commit 6452cf3
1 file changed
Lines changed: 21 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
580 | 580 | | |
581 | 581 | | |
582 | 582 | | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
583 | 603 | | |
584 | 604 | | |
585 | 605 | | |
| |||
591 | 611 | | |
592 | 612 | | |
593 | 613 | | |
594 | | - | |
| 614 | + | |
595 | 615 | | |
596 | 616 | | |
597 | 617 | | |
| |||
0 commit comments