Conversation
added 3 commits
September 13, 2026 23:35
Selecting several inspected streams now runs one all-or-none job and writes sibling subtitle files. A later no-overwrite failure still publishes nothing. Recording jobs pin one inspected origin; relative remains the default unless asked for.
When a decoder actually keeps a negative common origin, recording transcription subtracts it once so SRT/VTT cues stay nonnegative and a late track stays late. A real Matroska mux that drops forced-negative timestamps leaves the clock unavailable instead of reporting zero.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Recorded-file transcription previously collapsed track offsets and timestamp gaps. This draft adds recording-clock transcription and SRT/VTT export: a late track stays late, and an internal pause remains in the subtitle timeline. The window inspects actual audio streams, offers Keep recording timestamps when a common clock exists, and explains when only relative timing is available. Changing track or timing clears the old preview; unchanged reinspection preserves it. CLI/API callers explicitly select recording timing and retain relative defaults. Ordinary PCM WAV still works without extra tools.
An explicitly selected compatible FFmpeg/FFprobe pair supplies original frame timing through a bounded private metadata journal and independently flushed resampling runs. Source/tool checks, exact sample counts, successful child exits and journal integrity are required before a transcript can complete. Late failures discard tentative recognition. There is no automatic executable discovery, model download, recording or export. Decoder setup stays compact with scrolling guidance and separate verified tool selections. Source PyAV remains separate from packaged support.
Validation: 309 targeted tests passed with no skips, including eight real selected-tool cases. A real two-track MKV reaches production transcription and atomic SRT/VTT export with only the speech engine substituted: its 1-second origin normalizes once; second-track cues remain at 0.2 and 0.4 seconds, while explicit relative mode starts at zero. Independent backend and UI/CLI reviews pass. Seven synthetic Windows captures cover default/compact file and setup windows; current screenshots are included in documentation. All five desktop jobs passed in CI 34788391220 at
770ebf0. The preceding adapter checkpoint babaae6 passed all five desktop jobs in CI 34787584275.Grouped multi-track jobs/export and remaining recording/release acceptance stay open in docs/plans/active/recorded-file-timelines.md. This is unreleased source; it does not establish general speech quality or live OBS acceptance. Published desktop RC2 and Android alpha15 remain separate. Stacked on #41 at 813cce7.