mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 01:00:18 +02:00
- Per-frame timing on the Mac's clock (capture, encode, network, decode, draw), viewer clock sync and reports, input echo, /stats and a HUD. - scripts/macview-bench.py: repeatable runs on the real Frame, a shaping relay (no sudo), interleaved A/B between agent settings; results in bench/results/. - Adaptive controller: ack-based send gate with jitter-aware slack, AIMD bitrate that knows when a stream is app-limited, fps then size tiers. On a 50->3->50 Mbit/s step, scroll p95 went from 4.7 s to 72 ms; no cost on a clean link. - Separate mode: real AppKit event loop (HiDPI and NSScreen now work), cropped capture for fixed-size windows, windows kept on their display, graceful quit restores windows; stop/start races fixed. - Encoder timeline clamp (no oversized frame after a pause). - Frame Control shows each live stream's fps, delay, bitrate and tier. Reviewed by GPT-6 Astra xhigh (read-only), 7 rounds; findings fixed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
12 lines
459 B
Bash
Executable File
12 lines
459 B
Bash
Executable File
#!/bin/sh
|
|
# Builds the Mac streaming agent into mac/bin/frame-mac-view (arm64, macOS 14+).
|
|
# Frame Control runs it for "Mac in the headset"; the Electron app bundles it.
|
|
set -eu
|
|
here=$(cd "$(dirname "$0")" && pwd)
|
|
out=${1:-$here/../bin/frame-mac-view}
|
|
mkdir -p "$(dirname "$out")"
|
|
xcrun swiftc -O -swift-version 5 -target arm64-apple-macos14.0 \
|
|
-import-objc-header "$here/Sources/CGVirtualDisplay.h" \
|
|
-o "$out" "$here"/Sources/*.swift
|
|
echo "built $out"
|