fix(sync): instrument post-queue uac audio

This commit is contained in:
Brad Stein 2026-04-24 20:04:39 -03:00
parent b687c258e4
commit a009f1b8e6
6 changed files with 21 additions and 8 deletions

6
Cargo.lock generated
View File

@ -1642,7 +1642,7 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
[[package]]
name = "lesavka_client"
version = "0.13.4"
version = "0.13.5"
dependencies = [
"anyhow",
"async-stream",
@ -1676,7 +1676,7 @@ dependencies = [
[[package]]
name = "lesavka_common"
version = "0.13.4"
version = "0.13.5"
dependencies = [
"anyhow",
"base64",
@ -1688,7 +1688,7 @@ dependencies = [
[[package]]
name = "lesavka_server"
version = "0.13.4"
version = "0.13.5"
dependencies = [
"anyhow",
"base64",

View File

@ -4,7 +4,7 @@ path = "src/main.rs"
[package]
name = "lesavka_client"
version = "0.13.4"
version = "0.13.5"
edition = "2024"
[dependencies]

View File

@ -1,6 +1,6 @@
[package]
name = "lesavka_common"
version = "0.13.4"
version = "0.13.5"
edition = "2024"
build = "build.rs"

View File

@ -10,7 +10,7 @@ bench = false
[package]
name = "lesavka_server"
version = "0.13.4"
version = "0.13.5"
edition = "2024"
autobins = false

View File

@ -98,7 +98,11 @@ fn spawn_pipeline_bus_logger(bus: gst::Bus, label: &'static str, playing_message
Element(e) => {
if let Some(structure) = e.structure() {
if structure.name() == "level" {
info!("🔊 {label} audio level {}", structure);
let source = msg
.src()
.map(gst::prelude::GstObjectExt::path_string)
.unwrap_or_else(|| "<unknown>".into());
info!("🔊 {label} audio level src={source} {}", structure);
} else {
debug!("🔎 audio element message: {}", structure);
}

View File

@ -176,16 +176,23 @@ impl Voice {
.build()
.context("make capsfilter")?;
let level = gst::ElementFactory::make("level")
.name("voice_level_pre_queue")
.property("interval", 1_000_000_000u64)
.property("message", true)
.build()
.context("make voice level probe")?;
.context("make voice pre-queue level probe")?;
let alsa_sink = gst::ElementFactory::make("alsasink")
.build()
.context("make alsasink")?;
let delay_queue = gst::ElementFactory::make("queue")
.build()
.context("make voice delay queue")?;
let post_level = gst::ElementFactory::make("level")
.name("voice_level_post_queue")
.property("interval", 1_000_000_000u64)
.property("message", true)
.build()
.context("make voice post-queue level probe")?;
let buffer_time_us = voice_sink_buffer_time_us();
let latency_time_us = voice_sink_latency_time_us();
let compensation_us = voice_sink_compensation_us();
@ -219,6 +226,7 @@ impl Voice {
&capsfilter,
&level,
&delay_queue,
&post_level,
&alsa_sink,
])?;
appsrc.link(&decodebin)?;
@ -228,6 +236,7 @@ impl Voice {
&capsfilter,
&level,
&delay_queue,
&post_level,
&alsa_sink,
])?;