-
Notifications
You must be signed in to change notification settings - Fork 3
kithara record
Documentation reviewed from source revision 19ca073f2. This records the documented contract at that revision; it is not a new runtime validation. API and usage · All crates.
RecordingCore owns one EncoderSession, one ContainerSession, and one
RecordingSink transaction. It owns no filesystem or AssetStore dependency.
RecordingConfig owns the selected EncodeConfig; WAV float32 remains the
portable encoder default.
LiveRecordingConfig is the sole live-recorder construction surface. Its Bon
builder takes the shared Worker, typed PoolRegion, and PartSinkFactory;
all bounded intake, rotation, and scheduler limits live in the same value.
LiveRecorder::start consumes that one config and creates no hidden worker,
pool, or storage owner.
Construction validates the encode profile and, when known, preflights the exact frame count against container limits. Any construction failure aborts the supplied sink.
push accepts complete interleaved PCM frames, encodes available units, and
applies container writes at their declared offsets. Encode, container, frame
count, or sink failure is terminal: the transaction aborts and later pushes
return Inactive.
finish requires the expected frame count, flushes encoder tail units, writes
the container trailer and final header patches, then commits the exact final
length. Dropping an unfinished core aborts. A committed part is never modified
again and is independently readable.