R0-1: introduce protocol-neutral ProcessBlockView without changing Single behavior - #65
Merged
Conversation
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.
Refs #63
Base fixed point:
060197707a372adce55db63434e7ab709a3d8262.Mandatory pre-mutation proof
Before any production process mutation, the real-VST3 characterization harness exercised the unchanged Single
Vst3Engine::process(AudioSlot&)seam using deterministic fixed-mono and fixed-stereo VST3 fixtures built from the repository's pinned Steinberg SDK.That gate passed on source head
819e394949184ed64d86901b0cf3e13a3306c6eain R0-1 Process Seam Characterization #8, run33135381993.The proof locks:
IAudioProcessor::process()failure propagation;projectTimeSamplescontinuity;R0-1 implementation
Only after that gate passed:
ProcessBlockView;Vst3Engine::process(const ProcessBlockView&)as the deep processing entry;process(AudioSlot&)as a stack-only Single transport adapter;block.framesat the neutral seam;Single
AudioSlot/shared-memory layout and protocol version are unchanged. No Rack protocol/helper, HostedPlugin extraction, multi-plugin runtime, Rack OBS filter, production Rack editor, scanner redesign, or Single protocol redesign is included.Real-machine P0 found and fixed before merge
The first exact-candidate smoke on OBS Studio 32.1.2 exposed an OBS source-registration ABI mismatch: the module built against a newer SDK forwarded
sizeof(obs_source_info)=424while that runtime supported 408 bytes, so the DLL loaded butobs_safe_vst3_filterfailed to register.The narrow compatibility fix is commit
dc3a52bdb8b6a15026f39c46130b42f0acee5c6a:obs_register_source()is redirected toobs_register_source_s()with the ABI prefix ending atobs_source_info::save, the last source-info field this module actually populates. No DSP/process behavior, transport layout, Rack code, or installer behavior changed.The repaired candidate was then reinstalled on the same real OBS 32.1.2 machine and
VST 3.x Plug-inis visible again in Add Filter. Source registration visibility is therefore PASS on the repaired exact candidate.Frozen exact candidate
dc3a52bdb8b6a15026f39c46130b42f0acee5c6aGit tree:
956e8b3a5720e8242ea2993263521a2bca7d9c51.mainremains at060197707a372adce55db63434e7ab709a3d8262, so there is no base drift.The PR merge ref
95734c03691c2d368e59c714c357d91faedb88aaresolves to the same Git tree956e8b3a5720e8242ea2993263521a2bca7d9c51.Automated exact-head qualification — PASS
33161584578: SUCCESS ondc3a52bdb8b6a15026f39c46130b42f0acee5c6a;33161584526: SUCCESS.33161584519: SUCCESS;Compatibility #162 artifact:
9682202575;OBS-Safe-VST3-Host-v0.4.1-stabilize-test5-windows-x64;sha256:ee5802f1d18ee61eabb88057973a30830bffb0214c46e03b944e1eb89ddd72e5;dc3a52bdb8b6a15026f39c46130b42f0acee5c6a.Remaining merge gate
Per ADR-0004 item 11 / issue #63, merge remains gated on completing the representative exact-candidate real-machine Single smoke on
dc3a52bdb8b6a15026f39c46130b42f0acee5c6a:Filter registration visibility on OBS 32.1.2 is already PASS after the ABI fix, but that alone does not satisfy the four-point smoke above.
Until those four observations are recorded, this PR remains open, issue #63 remains open, and R0-2 must not start.