wrap up before restructure
This commit is contained in:
@@ -130,8 +130,33 @@
|
||||
<a href="#" data-svg="server-pipeline.svg" data-title="Server Pipeline" data-desc="fMP4 recording, UDP live relay, scene detection (UDS → Python), audio extraction">
|
||||
Pipeline
|
||||
</a>
|
||||
|
||||
<div class="section">Status</div>
|
||||
<a href="#" data-svg="" data-title="Current State (2026-04-10)" data-desc="Architecture status and known regressions"
|
||||
onclick="event.preventDefault(); document.querySelectorAll('nav a').forEach(l=>l.classList.remove('active')); this.classList.add('active'); document.getElementById('title').textContent=this.dataset.title; document.getElementById('desc').textContent=this.dataset.desc; document.getElementById('viewer').innerHTML=document.getElementById('status-content').innerHTML; return false;">
|
||||
State & regressions
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
<template id="status-content">
|
||||
<div style="max-width:720px; font-size:0.85rem; line-height:1.6; color:#cdd6f4">
|
||||
<h3 style="color:#f38ba8; margin-bottom:0.5rem">Scene detection regressed</h3>
|
||||
<p>In the Python-only pipeline, scene detection was a branch of the <b>same ffmpeg process</b> that records (fMP4 + UDP relay + CUDA decode + select filter). The flush trick worked because all outputs shared one decoder.</p>
|
||||
<p style="margin-top:0.5rem">After Rust took over transport, scene detection became a <b>separate ffmpeg</b> fed via <code>scene.sock</code> Unix socket relay. Different buffering semantics broke the "one behind" flush fix, and <code>try_send</code> drops cause decoder corruption until the next keyframe.</p>
|
||||
<h3 style="color:#a6e3a1; margin:1rem 0 0.5rem">Working fallback</h3>
|
||||
<p>The Python-only path (<code>StreamRecorder</code> + <code>SessionProcessor</code>) still exists. <code>lifecycle.start(rust_transport=False)</code> bypasses Rust transport entirely. Plan: restore this as the default, keep Rust opt-in.</p>
|
||||
<h3 style="color:#89b4fa; margin:1rem 0 0.5rem">What Rust transport got right</h3>
|
||||
<ul style="padding-left:1.2rem">
|
||||
<li>Connect time: 20s → 3s</li>
|
||||
<li>Session reload: 1-2s</li>
|
||||
<li>Custom framed protocol with reconnection support</li>
|
||||
<li>Clean fMP4 recording + UDP live relay</li>
|
||||
</ul>
|
||||
<h3 style="color:#cba6f7; margin:1rem 0 0.5rem">Next: scene detection back into server ffmpeg</h3>
|
||||
<p>Add scene detection as a third output of the Rust server's ffmpeg command (decode + select filter + MJPEG pipe) instead of relaying raw H.264 to a separate process. See <code>def/10-scene-detect-to-rust.md</code>.</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<main>
|
||||
<header>
|
||||
<h2 id="title">Select a diagram</h2>
|
||||
|
||||
Reference in New Issue
Block a user