Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
7da9582
refactor(native): replace GStreamer streamer with Rust v2 foundation
zortos293 Aug 17, 2026
baf9058
fix(native): use platform crypto backends
zortos293 Aug 17, 2026
6132d0d
feat(native): implement transport lifecycle
zortos293 Aug 17, 2026
0138b2b
feat(native): add self-contained media runtime
zortos293 Aug 17, 2026
57075fe
feat(gfn): own NVST RTSPS sessions
zortos293 Aug 17, 2026
7eb70ae
ci: select ARM64 MSVC tools
zortos293 Aug 17, 2026
07cef78
ci: stabilize native CMake builds
zortos293 Aug 17, 2026
7e19e5b
feat(native): receive authenticated NVST video
zortos293 Aug 17, 2026
dbf7337
ci: use x64-hosted Windows ARM64 tools
zortos293 Aug 17, 2026
8de7d7e
fix(native): scope physical surface geometry helpers
zortos293 Aug 17, 2026
6473618
fix(native): avoid cross-process AppKit pointers
zortos293 Aug 17, 2026
331b570
fix(native): use SDL window sizing contract
zortos293 Aug 17, 2026
8cd69e6
fix(native): scope foreign handle parsing
zortos293 Aug 17, 2026
7594197
feat(native): add macOS VideoToolbox backend
zortos293 Aug 17, 2026
3d7974a
fix(settings): expose native transport selection
zortos293 Aug 17, 2026
dd474fb
fix(stream): honor selected NVST transport
zortos293 Aug 17, 2026
17cb71b
fix(native): negotiate direct ICE with GFN
zortos293 Aug 18, 2026
b0a9e97
fix(native): strip NVST frame headers
zortos293 Aug 18, 2026
06d09e7
fix(ci): restrict release source refs
zortos293 Aug 18, 2026
b000898
fix(stream): keep explicit NVST off WebRTC
zortos293 Aug 18, 2026
b352ac4
fix(ci): install Windows ARM64 compiler
zortos293 Aug 18, 2026
3d544b2
fix(native): preserve CloudMatch transport topology
zortos293 Aug 18, 2026
ab67bfa
fix(stream): preserve resumable recovery window
zortos293 Aug 18, 2026
eb71b47
fix(native): ignore stale process events
zortos293 Aug 18, 2026
186b406
fix(native): retain CloudMatch subsession identity
zortos293 Aug 18, 2026
ca750af
fix(gfn): align native RTSP client flow
zortos293 Aug 18, 2026
af42af8
fix(gfn): honor Bifrost ANNOUNCE-only startup
zortos293 Aug 18, 2026
9cb33a0
fix(gfn): implement authenticated NVST version-6 handshake
zortos293 Aug 19, 2026
d78c346
fix(gfn): drive ICE+DTLS on the reserved NVST bundle socket
zortos293 Aug 19, 2026
0f9c219
feat(native): align NVST streamer with official two-socket session flow
zortos293 Aug 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
97 changes: 75 additions & 22 deletions .github/workflows/auto-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,24 @@ jobs:
{
label: "windows-x64",
os: "blacksmith-2vcpu-windows-2025",
native_target: "x86_64-pc-windows-msvc",
native_platform_key: "win32-x64",
builder_args: "--win nsis portable --x64",
artifact_paths: "opennow-stable/dist-release/*-x64.exe\n",
},
{
label: "windows-arm64",
os: "blacksmith-2vcpu-windows-2025",
native_target: "aarch64-pc-windows-msvc",
native_platform_key: "win32-arm64",
builder_args: "--win nsis portable --arm64",
artifact_paths: "opennow-stable/dist-release/*-arm64.exe\n",
},
{
label: "macos-x64",
os: "blacksmith-6vcpu-macos-15",
native_target: "x86_64-apple-darwin",
native_platform_key: "darwin-x64",
builder_args: "--mac dmg zip --x64",
artifact_paths:
"opennow-stable/dist-release/*.dmg\n" +
Expand All @@ -58,6 +64,8 @@ jobs:
{
label: "macos-arm64",
os: "blacksmith-6vcpu-macos-15",
native_target: "aarch64-apple-darwin",
native_platform_key: "darwin-arm64",
builder_args: "--mac dmg zip --arm64",
artifact_paths:
"opennow-stable/dist-release/*.dmg\n" +
Expand All @@ -66,6 +74,8 @@ jobs:
{
label: "linux-x64",
os: "blacksmith-2vcpu-ubuntu-2404",
native_target: "x86_64-unknown-linux-gnu",
native_platform_key: "linux-x64",
builder_args: "--linux AppImage deb --x64",
artifact_paths:
"opennow-stable/dist-release/*-x86_64.AppImage\n" +
Expand All @@ -74,6 +84,8 @@ jobs:
{
label: "linux-arm64",
os: "blacksmith-2vcpu-ubuntu-2404-arm",
native_target: "aarch64-unknown-linux-gnu",
native_platform_key: "linux-arm64",
builder_args: "--linux AppImage deb --arm64",
artifact_paths:
"opennow-stable/dist-release/*-arm64.AppImage\n" +
Expand All @@ -87,7 +99,11 @@ jobs:
const isDevValidationPullRequest = isPullRequest && baseRef === "dev";
const include = isDevValidationPullRequest
? builds.filter(({ label }) =>
label === "windows-x64" || label === "linux-x64" || label === "linux-arm64")
label === "windows-x64"
|| label === "macos-x64"
|| label === "macos-arm64"
|| label === "linux-x64"
|| label === "linux-arm64")
: builds;

fs.appendFileSync(process.env.GITHUB_OUTPUT, `matrix=${JSON.stringify({ include })}\n`);
Expand Down Expand Up @@ -121,30 +137,63 @@ jobs:
cache-dependency-path: opennow-stable/package-lock.json

- name: Setup Rust
if: runner.os == 'Linux'
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.native_target }}

- name: Install Linux native streamer dependencies
- name: Install Linux native streamer build dependencies
if: runner.os == 'Linux'
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential \
pkg-config \
sudo apt-get install -y \
libasound2-dev \
libpulse-dev \
libx11-dev \
libglib2.0-dev \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer-plugins-bad1.0-dev \
gstreamer1.0-libav \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-nice \
gstreamer1.0-gl \
gstreamer1.0-x
libxcursor-dev \
libxext-dev \
libxfixes-dev \
libxi-dev \
libxrandr-dev \
libxrender-dev \
libxss-dev

- name: Install Windows ARM64 compiler
if: matrix.native_target == 'aarch64-pc-windows-msvc'
shell: pwsh
run: |
$ErrorActionPreference = "Stop"
$installerRoot = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer"
$installPath = & "$installerRoot\vswhere.exe" -latest -products * -property installationPath
if (-not $installPath) {
throw "Visual Studio Build Tools installation was not found."
}
$compiler = Get-ChildItem "$installPath\VC\Tools\MSVC\*\bin\Hostx64\arm64\cl.exe" -ErrorAction SilentlyContinue | Select-Object -First 1
if (-not $compiler) {
$arguments = "modify --installPath `"$installPath`" --quiet --norestart --add Microsoft.VisualStudio.Component.VC.Tools.ARM64"
$install = Start-Process "$installerRoot\vs_installer.exe" -ArgumentList $arguments -Wait -PassThru
if ($install.ExitCode -notin 0, 3010) {
throw "Visual Studio ARM64 compiler installation failed with exit code $($install.ExitCode)."
}
$compiler = Get-ChildItem "$installPath\VC\Tools\MSVC\*\bin\Hostx64\arm64\cl.exe" -ErrorAction SilentlyContinue | Select-Object -First 1
}
if (-not $compiler) {
throw "Visual Studio ARM64 compiler is unavailable after installation."
}
Write-Host "Using Windows ARM64 compiler: $($compiler.FullName)"

- name: Setup Windows ARM64 build tools
if: matrix.native_target == 'aarch64-pc-windows-msvc'
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64_arm64

- name: Pin CMake for bundled SDL2
if: runner.os == 'macOS'
shell: bash
run: |
python3 -m venv "$RUNNER_TEMP/cmake-venv"
"$RUNNER_TEMP/cmake-venv/bin/pip" install --disable-pip-version-check cmake==3.31.6
echo "$RUNNER_TEMP/cmake-venv/bin" >> "$GITHUB_PATH"

- name: Install dependencies
run: npm ci
Expand All @@ -165,10 +214,14 @@ jobs:
id: build
run: npm run build

- name: Test and build Linux native streamer
if: runner.os == 'Linux'
- name: Test and build native streamer v2
env:
OPENNOW_NATIVE_STREAMER_TARGET: ${{ matrix.native_target }}
OPENNOW_NATIVE_STREAMER_PLATFORM_KEY: ${{ matrix.native_platform_key }}
run: |
cargo test --manifest-path ../native/opennow-streamer/Cargo.toml --features gstreamer
cargo fmt --manifest-path ../native/opennow-streamer/Cargo.toml --all -- --check
cargo clippy --manifest-path ../native/opennow-streamer/Cargo.toml --workspace --all-targets -- -D warnings
cargo test --manifest-path ../native/opennow-streamer/Cargo.toml --workspace
npm run native:build

- name: CI summary
Expand Down
Loading
Loading