Callopname publiceert 50 keer per seconde een nieuwe toestand voor een teller #2760
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2760
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Gevonden in de kritische review van 03-11-2026 (prestaties).
Wat er misgaat
Tijdens een callopname publiceert
CallRecordingNotifier._onLiveTick(lib/state/call_recording_provider.dartr. 226–229) voor elke mix-tik van 20 ms een nieuwe toestand:capturedChunks + 1. Dat zijn 50 notificaties per seconde, zolang de opname loopt. Elke watcher bouwt dus 50 keer per seconde opnieuw:CallRecordingBanner(bannerkolom van de shell, boven elke tab), die alleenphasegebruikt;CallRecordingSectionin het callpaneel, met zijn hele kolom aan opt-ins en knoppen.Het enige wat dit voedt is de regel "Ontvangen brokken: N". Op 50 Hz is die niet te lezen. Hij bewijst alleen dát er audio binnenkomt, en daarvoor volstaat één keer per seconde.
Gevolg
Tijdens een call, juist wanneer de machine ook video decodeert en de mix schrijft, dwingt dit continu frames af. Kost CPU en, op een laptop op de accu, stroom.
Voorstel
statewordt alleen gepubliceerd bij de eerste tik en daarna hooguit één keer per seconde.selectalleen naarphase.Wat overeind moet blijven
capturedChunks == 1), want daarop wachten de bestaande toetsen en de "het loopt"-bevestiging.Test
Providertoets: 100 tikken binnen een seconde leveren hooguit twee notificaties op, en de teller bereikt na afloop de juiste waarde. Rood op de huidige code (100 notificaties).
Opgepakt (kritische review 03-11-2026). Tak: perf/call-recording-ticks-2760. Verwachte reikwijdte: lib/state/call_recording_provider.dart, call_recording_controls.dart (banner select), test/meetings/call_recording_test.dart.