Repository navigation
feat(mlt): provide verified audio-free FFV1 lossless profile for native A/V mux - #254
Merged
Merged
Conversation
added 4 commits
October 10, 2026 13:46
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.
Semwright #253 — exact, opt-in video-only MLT lossless profile
This upstream change unblocks source-bound multisegment H.264/AAC delivery from Motionwright without a shadow renderer, arbitrary FFmpeg shell route, fabricated PCM silence or a Broker approval bypass. It is additive to Semwright v1.0.0 contracts.
New closed profile
lossless-video-onlyuses the existing managed semanticrender.plan → render.start → render.status → render.resultHost lane and the curated MLTavformatconsumer withan=1,ffv1, Matroska.losslessprofile still produces FFV1 + PCM s16le; H.264/AAC and audio-wav profiles are unchanged.RenderProfile.audio_codecis now optional, projectingnullfor the new profile in the shared RenderPreset contract (which explicitly allows video-only presets). No generic codec/command arguments are exposed.-count_frames; absent Matroska nb_frames never substitutes for observed frames. Only an exact 1–36,000 count passes.Evidence
lossless(audio present) andlossless-video-only(audio absent) against the same 50-frame audio-bearing semantic project. Provider receipts plus an independent host FFprobe call require 50 actually decoded FFV1 frames and exactly one stream. Existing H.264/AV tests remain active.cargo fmt --all -- --checkandgit diff --checkPASSED; heavy Rust Clippy/unit and Host E2E are delegated to GitHub Actions and must be GREEN at this exact head before merge.Boundaries
Source branch is isolated from the user's modified Semwright checkout; no other worktree or file deleted. This PR is not yet a Motionwright final H.264/AAC master, user approval, audio mix or permission to auto-close MLT projects. The consumer app must later review/re-pin the exact resulting Semwright SHA and pass its own independent native end-to-end mux acceptance. See seradotcom/motionwright#93 and seradotcom/motionwright#91.