docs: mark bug #2 as fixed in BUGS.md (a09a423)

This commit is contained in:
dailz
2026-05-22 11:42:56 +08:00
parent a09a4235d3
commit 75a57e43ec

View File

@@ -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