fix(sync): apply startup video grace to all sessions

This commit is contained in:
Brad Stein 2026-04-26 17:08:24 -03:00
parent a87577a042
commit 0eec6d0beb
6 changed files with 10 additions and 10 deletions

6
Cargo.lock generated
View File

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

View File

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

View File

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

View File

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

View File

@ -274,7 +274,7 @@ impl Relay for Handler {
); );
let upstream_lease = self.upstream_media_rt.activate_camera(); let upstream_lease = self.upstream_media_rt.activate_camera();
let (session_id, relay, relay_reused) = self.camera_rt.activate(&cfg).await?; let (session_id, relay, _relay_reused) = self.camera_rt.activate(&cfg).await?;
let camera_rt = self.camera_rt.clone(); let camera_rt = self.camera_rt.clone();
let upstream_media_rt = self.upstream_media_rt.clone(); let upstream_media_rt = self.upstream_media_rt.clone();
info!(rpc_id, session_id, "🎥 stream_camera opened"); info!(rpc_id, session_id, "🎥 stream_camera opened");
@ -292,7 +292,7 @@ impl Relay for Handler {
let startup_grace_us = upstream_camera_startup_grace() let startup_grace_us = upstream_camera_startup_grace()
.as_micros() .as_micros()
.min(u64::MAX as u128) as u64; .min(u64::MAX as u128) as u64;
let mut cold_startup_grace_pending = !relay_reused && startup_grace_us > 0; let mut cold_startup_grace_pending = startup_grace_us > 0;
loop { loop {
if !camera_rt.is_active(session_id) if !camera_rt.is_active(session_id)
|| !upstream_media_rt.is_camera_active(upstream_lease.generation) || !upstream_media_rt.is_camera_active(upstream_lease.generation)

View File

@ -173,7 +173,7 @@ impl Relay for Handler {
) -> Result<Response<Self::StreamCameraStream>, Status> { ) -> Result<Response<Self::StreamCameraStream>, Status> {
let cfg = camera::current_camera_config(); let cfg = camera::current_camera_config();
let upstream_lease = self.upstream_media_rt.activate_camera(); let upstream_lease = self.upstream_media_rt.activate_camera();
let (session_id, relay, relay_reused) = self.camera_rt.activate(&cfg).await?; let (session_id, relay, _relay_reused) = self.camera_rt.activate(&cfg).await?;
let camera_rt = self.camera_rt.clone(); let camera_rt = self.camera_rt.clone();
let upstream_media_rt = self.upstream_media_rt.clone(); let upstream_media_rt = self.upstream_media_rt.clone();
let (tx, rx) = tokio::sync::mpsc::channel(1); let (tx, rx) = tokio::sync::mpsc::channel(1);
@ -187,7 +187,7 @@ impl Relay for Handler {
let startup_grace_us = upstream_camera_startup_grace() let startup_grace_us = upstream_camera_startup_grace()
.as_micros() .as_micros()
.min(u64::MAX as u128) as u64; .min(u64::MAX as u128) as u64;
let mut cold_startup_grace_pending = !relay_reused && startup_grace_us > 0; let mut cold_startup_grace_pending = startup_grace_us > 0;
loop { loop {
if !camera_rt.is_active(session_id) if !camera_rt.is_active(session_id)
|| !upstream_media_rt.is_camera_active(upstream_lease.generation) || !upstream_media_rt.is_camera_active(upstream_lease.generation)