From 75a57e43eccd31fac35235f7a73b34f9dcc5ec17 Mon Sep 17 00:00:00 2001 From: dailz Date: Fri, 22 May 2026 11:42:56 +0800 Subject: [PATCH] docs: mark bug #2 as fixed in BUGS.md (a09a423) --- .sisyphus/BUGS.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.sisyphus/BUGS.md b/.sisyphus/BUGS.md index 3cd6c4d..e688b68 100644 --- a/.sisyphus/BUGS.md +++ b/.sisyphus/BUGS.md @@ -25,11 +25,12 @@ ## 🟠 High (4) -### #2: PipeWire process callback can block indefinitely +### ~~#2: PipeWire process callback can block indefinitely~~ ✅ Fixed - **Location**: `src/cap_portal.rs:320` - **Description**: `frame_tx.send(PwEvent::Frame(frame))` is called from the PipeWire `.process` callback on a bounded channel of size 3. If encoding stalls, this blocks the PipeWire callback and delays `stream.queue_raw_buffer(raw_buf)`. - **Fix**: Use `try_send` and drop frames on full, or use an unbounded channel with a backpressure counter. +- **Fixed in**: [`a09a423`](commit:a09a423) — Replaced `send()` with `try_send()` + `AtomicU64` drop counter. PipeWire `.process` callback is now guaranteed non-blocking. Dropped frames are counted and logged every 30 occurrences. ### #3: Portal PTS uses raw PipeWire timestamp as encoder frame-number timebase