mirror of
https://github.com/MiladRTX/Glint.git
synced 2026-10-29 04:02:12 +01:00
Desktop app - Settings -> Picture: GPU passes between the stream and the screen. Upscaling (Bilinear, Lanczos, AMD FSR 1, FSRCNNX AI), CAS sharpening, denoise, debanding, dithering and colour; profiles plus a frame-time guard. My presets: save, apply, update, revert, delete, remembered. - Side-by-side compare (C) with zoom and pan, tweak panel (X). - One viewer: connecting takes the stream; "Watching elsewhere" when another viewer takes it. - Lower sound delay (about 190 -> 100 ms). - Gallery follows the folder, PNG sizes, Fit/100% switch, drag to pan. - Fixed crashes on fast zooming and on opening the gallery. Payload - 20 Mbit/s encoder bitrate; set once at start (live changes lock the encoder, documented in docs/API.md). - One viewer at a time (409 for a pushed-out viewer), viewers and bitrate in status.json. - Process name Glint.elf, previous log kept, quits at once when refused. Browser dashboard - Fixed the freeze after ~8 s, lower latency, sound on by default, one viewer with Watch here. Version 1.5. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
102 lines
3.0 KiB
Markdown
102 lines
3.0 KiB
Markdown
# Running Glint on the console
|
|
|
|
The payload is loaded through Payload Manager on a jailbroken PS5. The console
|
|
exposes three services the examples below use:
|
|
|
|
- `ftpsrv` on `:2121` (anonymous, no login).
|
|
- Payload Manager on `:8084`, with the `X-PLDMGR-Request: 1` header.
|
|
- `elfldr` on `:9021` (not used here, included for context).
|
|
|
|
Set `PS5` to the console's IP so the examples copy and paste cleanly:
|
|
|
|
```bash
|
|
export PS5=192.168.1.10 # replace with your console's IP
|
|
```
|
|
|
|
> **Tested on:** PS5 firmware `0x12600006`. Other firmware versions in the
|
|
> same family should work; `docs/CAPTURE-INTERNALS.md` lists the SCE error
|
|
> codes the payload handles explicitly.
|
|
|
|
## 1. Build
|
|
|
|
```bash
|
|
cd payload/ps5
|
|
PS5_PAYLOAD_SDK=/root/ps5-payload-sdk make
|
|
```
|
|
|
|
Both land in `payload/build/`:
|
|
|
|
- `glint-payload.elf` — console capture (the PS5's own H.264 encoder)
|
|
- `glint-payload-test.elf` — synthetic capture, for the protocol test
|
|
|
|
## 2. Upload
|
|
|
|
Give Glint its own folder under the Payload Manager tree, and do not write
|
|
over any other payload's folder:
|
|
|
|
```bash
|
|
curl -s --ftp-create-dirs -T payload/build/glint-payload.elf \
|
|
ftp://$PS5:2121/data/pldmgr/payloads/local/glint/Glint-1.5-ps5.elf
|
|
```
|
|
|
|
Payload Manager only accepts files under its payload tree and a name shaped like
|
|
`Name-version-ps5.elf`.
|
|
|
|
After uploading, read the file back and compare the hash before loading — an
|
|
upload interrupted by the console sleeping can leave a truncated file:
|
|
|
|
```bash
|
|
curl -s ftp://$PS5:2121/data/pldmgr/payloads/local/glint/Glint-1.5-ps5.elf -o check.elf
|
|
sha256sum payload/build/glint-payload.elf check.elf
|
|
```
|
|
|
|
## 3. Load
|
|
|
|
```bash
|
|
curl -s -X POST -H "X-PLDMGR-Request: 1" \
|
|
"http://$PS5:8084/loadpayload:/data/pldmgr/payloads/local/glint/Glint-1.5-ps5.elf"
|
|
```
|
|
|
|
The payload shows a banner on the console: "Glint loaded", then
|
|
"Glint ready on port 7231" once capture starts. If the encoder is busy it
|
|
shows "the PS5 refused to start video capture (0x80c78000)" — load it again.
|
|
This often happens on the first try after the PS5 starts; the second works.
|
|
|
|
## 4. Validate
|
|
|
|
```bash
|
|
node tests/payload_smoke.js http://$PS5:7231
|
|
```
|
|
|
|
or record with the app's probe (built from `app/tools/probe.cpp`):
|
|
|
|
```bash
|
|
probe.exe http://$PS5:7231 --record out.h264 --audio out.pcm --seconds 5
|
|
```
|
|
|
|
Expected: config `PS5`, resolutions `[1080]`, `pcm_f32le` stereo 48 kHz;
|
|
`out.h264` starts with `00 00 00 01`; `out.pcm` is non-empty.
|
|
|
|
## 5. Logs
|
|
|
|
```bash
|
|
curl -s ftp://$PS5:2121/data/glint/capture.log | tail -40
|
|
curl -s ftp://$PS5:2121/data/glint/recordings/
|
|
```
|
|
|
|
## 6. Stop
|
|
|
|
```bash
|
|
curl -s -X POST http://$PS5:7231/stop
|
|
```
|
|
|
|
Only this. Killing the process with `process_kill` mid-capture can lock the
|
|
console's encoder (`Start 0x80c78000`) until a reboot.
|
|
|
|
## Notes
|
|
|
|
- `glint-payload-test.elf` is built with `SL_TEST_CAPTURE`: its H.264 is a
|
|
synthetic stream for protocol testing, not a real picture.
|
|
- Recordings are written to `/data/glint/recordings` and can be removed over
|
|
FTP with `-Q "DELE /data/glint/recordings/<name>"`.
|