From 5fa2c2bec75c8788a10d0e62ac87be01c17158de Mon Sep 17 00:00:00 2001 From: "Timo K." Date: Wed, 4 Nov 2026 19:49:07 +0100 Subject: [PATCH] Name the upstream cause behind the transformer's update override @livekit/track-processors skips a frame on `isDisabled ?? backgroundDisabled`, and `isDisabled` is never undefined, so a disabled effect that keeps its blur radius is still segmented and drawn on every frame. Still the case in 0.8.2. The override stays until that is fixed upstream. Co-Authored-By: Claude Opus 5.5 --- src/tracks/BackgroundEffectTransformer.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/tracks/BackgroundEffectTransformer.ts b/src/tracks/BackgroundEffectTransformer.ts index 965359211..9b62a6a5b 100644 --- a/src/tracks/BackgroundEffectTransformer.ts +++ b/src/tracks/BackgroundEffectTransformer.ts @@ -53,9 +53,12 @@ const wasmFileset: WasmFileset = { */ export class BackgroundEffectTransformer extends BackgroundTransformer { /** - * As the library's, except that disabling also drops the blur radius: kept, - * it has every frame segmented and the result thrown away, where with - * neither a radius nor a picture frames are passed on untouched. + * As the library's, except that disabling also drops the blur radius. The + * library skips a frame on `isDisabled ?? backgroundDisabled`, and + * `isDisabled` is never undefined, so a disabled effect that keeps its + * radius has every frame segmented and drawn for nothing. With neither a + * radius nor a picture, frames are passed on untouched. + * TODO: drop once fixed upstream in livekit/track-processors-js (still in 0.8.2). */ public override async update(opts: BackgroundOptions): Promise { await super.update(