fix(audio): reject false-positive uac sanity runs
This commit is contained in:
parent
74e664a28a
commit
49c25bbf21
6
Cargo.lock
generated
6
Cargo.lock
generated
@ -1642,7 +1642,7 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.13.8"
|
version = "0.13.9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-stream",
|
"async-stream",
|
||||||
@ -1676,7 +1676,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.13.8"
|
version = "0.13.9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
@ -1688,7 +1688,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.13.8"
|
version = "0.13.9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
|
|||||||
@ -4,7 +4,7 @@ path = "src/main.rs"
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.13.8"
|
version = "0.13.9"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.13.8"
|
version = "0.13.9"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
|
|
||||||
|
|||||||
@ -92,6 +92,8 @@ build_candidates() {
|
|||||||
|
|
||||||
run_tone() {
|
run_tone() {
|
||||||
local candidate="$1"
|
local candidate="$1"
|
||||||
|
local log
|
||||||
|
log=$(mktemp)
|
||||||
echo "🎧 trying UAC playback device: $candidate" >&2
|
echo "🎧 trying UAC playback device: $candidate" >&2
|
||||||
set +e
|
set +e
|
||||||
timeout --signal=INT "${DURATION_SECONDS}s" \
|
timeout --signal=INT "${DURATION_SECONDS}s" \
|
||||||
@ -107,14 +109,24 @@ run_tone() {
|
|||||||
provide-clock=false \
|
provide-clock=false \
|
||||||
enable-last-sample=false \
|
enable-last-sample=false \
|
||||||
buffer-time="$BUFFER_TIME_US" \
|
buffer-time="$BUFFER_TIME_US" \
|
||||||
latency-time="$LATENCY_TIME_US"
|
latency-time="$LATENCY_TIME_US" \
|
||||||
|
2>"$log"
|
||||||
local rc=$?
|
local rc=$?
|
||||||
set -e
|
set -e
|
||||||
|
if grep -Eiq 'unknown pcm|playback open error|invalid argument|no such (device|file)|^error:|could not open|failed to change state|not-negotiated' "$log"; then
|
||||||
|
echo "⚠️ tone failed on $candidate (sink open error)" >&2
|
||||||
|
sed 's/^/ /' "$log" >&2 || true
|
||||||
|
rm -f "$log"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
if [[ $rc -eq 0 || $rc -eq 124 ]]; then
|
if [[ $rc -eq 0 || $rc -eq 124 ]]; then
|
||||||
echo "✅ UAC tone completed on $candidate" >&2
|
echo "✅ UAC tone completed on $candidate" >&2
|
||||||
|
rm -f "$log"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
echo "⚠️ tone failed on $candidate (rc=$rc)" >&2
|
echo "⚠️ tone failed on $candidate (rc=$rc)" >&2
|
||||||
|
sed 's/^/ /' "$log" >&2 || true
|
||||||
|
rm -f "$log"
|
||||||
return "$rc"
|
return "$rc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,7 @@ bench = false
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.13.8"
|
version = "0.13.9"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
autobins = false
|
autobins = false
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user