Preview push 30fps : thread de fond + diffusion WS sans polling

Avant : frontend poll WS toutes les 100ms -> gphoto2 bloquant -> lag
Apres : thread dedie capture en continu a 30fps, pusher asyncio
        diffuse a 20fps a tous les clients, frontend dit juste
        preview_start / preview_stop

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-08 22:21:29 +02:00
parent 9a6ede02f6
commit b871fc4c3b
2 changed files with 62 additions and 22 deletions

View File

@@ -1,7 +1,6 @@
/* Module capture photo - Preview live, compte a rebours, declenchement */
let previewActif = false;
let previewInterval = null;
let previewTimeoutId = null;
const PREVIEW_TIMEOUT_MS = 3000;
@@ -45,16 +44,14 @@ function lancerPreview() {
if (previewActif) return;
previewActif = true;
afficherErreurPreview(false);
previewInterval = setInterval(() => {
if (previewActif) wsEnvoyer({ type: 'preview' });
}, 100);
wsEnvoyer({ type: 'preview_start' });
resetPreviewTimeout();
}
function arreterPreview() {
if (!previewActif) return;
previewActif = false;
wsEnvoyer({ type: 'preview_stop' });
if (previewInterval) {
clearInterval(previewInterval);
previewInterval = null;