From 978f1444dfefe6259f4c261ed5babdd2d12fe915 Mon Sep 17 00:00:00 2001 From: "every.channel" Date: Sun, 3 May 2026 21:05:51 -0700 Subject: [PATCH] Raise hosted web player jitter budget --- apps/web/app.js | 2 +- ...CP-0115-hosted-web-player-jitter-budget.md | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 evolution/proposals/ECP-0115-hosted-web-player-jitter-budget.md diff --git a/apps/web/app.js b/apps/web/app.js index d75fccb..45a3c64 100644 --- a/apps/web/app.js +++ b/apps/web/app.js @@ -15,7 +15,7 @@ const HLS_MODULE_URLS = [ "https://unpkg.com/hls.js@1.6.2/dist/hls.mjs", ]; const PUBLIC_STREAMS_PATH = "/api/public-streams"; -const LIVE_JITTER_MS = 750; +const LIVE_JITTER_MS = 1250; let moqWatchModulePromise = null; let hlsModulePromise = null; let disposePlayerSignals = null; diff --git a/evolution/proposals/ECP-0115-hosted-web-player-jitter-budget.md b/evolution/proposals/ECP-0115-hosted-web-player-jitter-budget.md new file mode 100644 index 0000000..7894c4d --- /dev/null +++ b/evolution/proposals/ECP-0115-hosted-web-player-jitter-budget.md @@ -0,0 +1,26 @@ +# ECP-0115: Hosted Web Player Jitter Budget + +Status: Draft + +## Problem / context + +After redeploying the hosted `every.channel` web watcher, a live relay smoke stream subscribed and rendered video, but Chromium still logged repeated `seeking backward` corrections around 0.75 seconds. Those corrections are the same symptom class that presents as choppy live audio. + +## Decision + +Raise the hosted web watcher's live jitter budget from 750 ms to 1250 ms. + +## Consequences + +- The web player has more headroom before it seeks backward during relay/source timing jitter. +- Hosted live playback trades roughly another half second of latency for smoother audio. +- The change is limited to the web watcher; publisher and archive behavior remain unchanged. + +## Alternatives considered + +- Keep 750 ms. Rejected because the deployed smoke stream still produced repeated correction warnings near that threshold. +- Jump to 1500 ms or higher. Deferred because the smaller increase should address the observed threshold while avoiding unnecessary latency. + +## Rollout / teardown + +Deploy the updated web asset to Cloudflare and verify the live `app.js` constant. Teardown is restoring the 750 ms value.