feat(windows): add viewer-only PixelPass milestone
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# pixelpass
|
||||
|
||||
P2P screen sharing CLI for Linux. Single binary, hole-punched over
|
||||
P2P screen sharing CLI. Linux can host or view; the first Windows milestone
|
||||
can view a Linux-hosted share. A single binary, hole-punched over
|
||||
[iroh](https://www.iroh.computer/) — no port forwarding, no signup, no
|
||||
server-side accounts. Hardware-encoded H.264 + AAC audio, viewed in
|
||||
mpv or VLC.
|
||||
@@ -29,6 +30,9 @@ Working:
|
||||
- iroh QUIC bi-stream tunnel, direct-UDP and relay paths both verified
|
||||
- Interactive Host/View menu with clipboard auto-copy and mpv/VLC picker
|
||||
- Headless mode for scripts (`pixelpass <ticket>`)
|
||||
- Headless Windows 10 viewer: consumes the same ticket and JSON event protocol,
|
||||
tunnels the stream to localhost, and works with PeerSpeak's external VLC/mpv
|
||||
launcher
|
||||
- Multi-viewer fanout (default 2, configurable via `--max-viewers`;
|
||||
shared gst pipeline, one broadcast channel per host)
|
||||
- First-run upstream bandwidth pre-flight, persisted to
|
||||
@@ -39,6 +43,9 @@ Working:
|
||||
derives quality from the bandwidth pre-flight
|
||||
|
||||
Not yet built (deferred, not blocking):
|
||||
- Windows hosting/capture, including desktop capture, WASAPI system audio, and
|
||||
PeerSpeak voice exclusion. The current Windows binary is deliberately
|
||||
viewer-only and reports Linux host-audio capabilities as unavailable.
|
||||
- Per-monitor selection on a multi-monitor X11 host — `ximagesrc` grabs the
|
||||
whole root canvas; single-monitor cropping needs xrandr region coords
|
||||
- `use-damage=true` CPU optimization for the X11 capture path
|
||||
@@ -103,6 +110,8 @@ the capture machinery is untouched by it. On a build without the feature,
|
||||
|
||||
## Requirements
|
||||
|
||||
### Linux host or viewer
|
||||
|
||||
- Linux (Wayland or X11; the backend is autodetected)
|
||||
- A VAAPI-capable GPU and the right driver:
|
||||
- AMD: `libva-mesa-driver`
|
||||
@@ -124,6 +133,13 @@ the capture machinery is untouched by it. On a build without the feature,
|
||||
mpv ships its own decoder stack and doesn't share either dependency.
|
||||
- PipeWire (for screencast portal + audio capture)
|
||||
|
||||
### Windows viewer
|
||||
|
||||
- Windows 10 build 19045 or newer
|
||||
- VLC or mpv on `PATH`; VLC is available as `VideoLAN.VLC` through `winget`
|
||||
- A share ticket from a PixelPass host (hosting remains Linux-only in this
|
||||
milestone)
|
||||
|
||||
On Arch / CachyOS / EndeavourOS:
|
||||
|
||||
```sh
|
||||
@@ -184,6 +200,23 @@ windowing stack). Build it with:
|
||||
cargo build --release --features gui
|
||||
```
|
||||
|
||||
### Windows viewer
|
||||
|
||||
Cross-build the headless viewer with MinGW; the Linux-only capture dependencies
|
||||
are excluded from this target:
|
||||
|
||||
```sh
|
||||
rustup target add x86_64-pc-windows-gnu
|
||||
# Install the MinGW-w64 compiler using your distro's package manager.
|
||||
cargo build --release --target x86_64-pc-windows-gnu
|
||||
```
|
||||
|
||||
The result is
|
||||
`target/x86_64-pc-windows-gnu/release/pixelpass.exe`. Validate it on Windows
|
||||
with `pixelpass.exe --doctor`, then pass a ticket directly or let PeerSpeak
|
||||
drive it with `--output json`. See [Windows support](docs/WINDOWS.md) for the
|
||||
support boundary and smoke-test gates.
|
||||
|
||||
## How it works
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user