feat(native): replace GStreamer with cross-platform Rust streamer v2 - #776
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This comment has been minimized.
This comment has been minimized.
Retain decoder samples through GPU presentation, recover reference chains after missing data and queue overflow, and request startup keyframes until received. Bound audio and video pipelines, improve backend readiness, and expand redacted transport and FFI diagnostics.
Index cached games for bounded pages and ranked search, poll resumed sessions until ready, validate embedded decoder capabilities, and improve updates and diagnostics. Set version 1.0.0 and persist opt-in console switching with legacy preference migration.
Polish settings, sidebar motion, Store paging, release notes and desktop updates. Fix persistent console-mode opt-out, controller diagnostics, session recovery, input capture, statistics and GPU texture presentation. Add regression coverage and deploy required native runtime libraries in portable builds.
Prioritize codex/redesign-qt-settings-and-overlays during conflict resolution. Keep asynchronous diagnostics and discovery/claim/poll recovery; integrate compatible UDP routing, first-frame gating, and MinGW linking fixes. Adapt recovery fixtures and retain socket ownership in the parallel ping test.
…gs-and-overlays Integrate Desktop Renew and native streaming performance fixes
…-framework refactor: OpenNOW Rebuild V1.0.0
|
Integration update: PR #781 is now merged into this branch, including Desktop Renew and the native/Qt fixes from #792. Merge using a merge commit only, preserving all original commits. The latest local Qt/native integration checks passed as documented in #792; GitHub CI remains non-green (Qt6GuiPrivate configuration, non-Windows warning-as-error issues, and headless Windows D3D11 video tests). The original validation section above describes the earlier branch snapshot, not all current hosted CI results. The dev-only changes merge cleanly and are documentation-only. |
|
Pushed 2e1d64b and e1433c6: Qt GuiPrivate discovery supports Qt 6.8 and newer layouts; Windows-only Rust state is cfg-scoped; GPU tests skip only an actual E_NOINTERFACE capability probe and still fail on subsequent initialization/rendering errors. CodeQL alert 55 was independently reviewed and dismissed as a protocol-specific false positive (RFC 8489 section 14.5); no crypto or validation changes. Local Qt build, focused native tests, and strict Windows workspace Clippy pass. Full local tests and required CI are being checked before merge. Evidence: docs/dev-merge-checks.md. |
|
Verification at b741678: local Qt Release build and 137/137 CTest tests pass; Rust core and native streamer workspace tests pass; strict Clippy passes for both Windows workspaces and Linux platform cross-targets. Real-GPU conversion and presentation tests passed locally. CI Windows x64, Windows ARM64, Linux x64 and both macOS Qt builds/tests/packages have passed; Linux ARM64 jobs and one duplicate required Windows native job are still pending. Four focused commits fix package discovery, platform cfg/test setup, and ARM64 host shader tools without changing runtime streaming or cryptographic behavior. Alert 55 was dismissed only after two independent reviews confirmed the standard-required STUN HMAC-SHA1 field; CodeQL remains enabled and passes. Normal merge remains gated on required checks. |
Summary
Validation
A fresh authorized explicit-NVST Linux session on the final code established:
stats_channel, reliable input, partially-reliable input, andrtcp_on_sctp_privateopen611frames in the observed burst)The live environment did not expose an Opus SSRC and used a dummy SDL audio driver, so it does not prove audio-device output. It also did not produce a live packet-loss event, so NACK interoperability remains covered by frozen wire-layout/reordering tests rather than live loss injection.
The final source passes:
cargo fmt --all -- --checkcargo test --workspace(147 unit/integration tests plus doc-test targets)cargo clippy --workspace --all-targets -- -D warningsx86_64-pc-windows-msvcandaarch64-pc-windows-msvcaarch64-apple-darwinbackend type-check/Clippy validationnpm run lint(zero warnings)npm run typechecknpm test(726 passing)npm run buildnpm run native:buildgit diff --checkRemaining hardware acceptance
Real-device acceptance is still required for Media Foundation/D3D11/WASAPI and endpoint/device-loss behavior on Windows x64 and ARM64, V4L2/VA-API/Vulkan/PipeWire/ALSA device-loss paths on representative Linux systems, and VideoToolbox/Metal/CoreAudio fallback behavior on macOS hardware. Live server delivery of Opus and the proprietary input handshake is also still required before those session capabilities can be called operational; the implementation now reports them unavailable instead of silently claiming success.