@linkshell/mac 0.1.48 → 0.1.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -256,7 +256,8 @@ already, and stop if it is not rather than have the system ask.
256
256
  | `input-check.mjs` | The app's hands in a dry run: the same events down the socket, on stdin and down the data channels have to come out the same. `--shapes` also changes the pointer's picture for a moment. Part of `check`. |
257
257
  | `stream-check.mjs` | The stream for the host's socket: record format, rates, key frames, change of size, beside a video track; decoded by ffmpeg where installed, and by Chrome's WebCodecs unless `--no-chrome`. Part of `check`. |
258
258
  | `app-smoke.mjs` | Opens the app, asks for an offer, says what it holds. Part of `check`. |
259
- | `loopback.mjs` | The video track with no viewer: the app answers its own offer, and both ends' numbers are printed. Without `--fps`, at the app's own choice of frame rate; `--fps 30,60` holds each of those. `--narrow <bit/s>:<from second>:<for seconds>` holds the bandwidth estimate down for a while, prints every second, and says what each change of frame rate cost; `--timeline`, `--seconds 10`, `--motion`, `--still`, `--encoder own\|stock`, `--json <file>`; the rest in its header. |
259
+ | `loopback.mjs` | The video track with no viewer: the app answers its own offer, and both ends' numbers are printed. Without `--fps`, at the app's own choice of frame rate; `--fps 30,60` holds each of those. `--narrow <bit/s>:<from second>:<for seconds>` holds the bandwidth estimate down for a while, prints every second, and says what each change of frame rate cost; `--timeline`, `--seconds 10`, `--motion`, `--still`, `--encoder own\|stock`, `--json <file>`; `--frame-trace` puts per-frame capture / encoder / decode timestamps and each statistics read into the receiver's records (`trace`), `--loopback-smooth` has the test receiver decline the playout-delay extension (the Mac viewer's even pacing), `--stats-interval <s>` reads statistics less often (a diagnostic: the per-second summaries then no longer add up); the rest in its header. |
260
+ | `jitter-check.mjs` | Wi-Fi-like jitter over its own loopback UDP proxies: a few ms each way, small random jitter, and a 40–80 ms radio hold about once a second. Prints decoded-frame waits and glass → decoded latency; `--loopback-smooth` compares the receiver's even pacing. Not a phone or network measurement. |
260
261
  | `flexfec-check.mjs` | A short functional check over its own loopback UDP proxy: 60 ms each way, every twentieth original video packet dropped. Checks real FlexFEC packet receipt, then successful video without FlexFEC when the test receiver declines it. `--json <file>` saves the evidence. No system network changes or latency claims. |
261
262
  | `network-check.mjs` | A 48-second congestion/recovery scenario: an owned UDP proxy changes media capacity from 20 to 0.7 to 20 Mbps, with 10 ms propagation each way and a 200 ms router queue. Includes RTX/FEC in the budget. `--screen`, `--maxFps`, `--maxWidth`, `--app`, repeatable `--trial`, `--json`; passing proves traversal and decoding, not acceptable latency or iPhone performance. |
262
263
  | `media-lab.mjs` | Loopback-only encrypted UDP experiment using the same capture, VT H.264 and native decoder. `--network` uses the congestion scenario above; `--no-ltr` checks recovery without acknowledged long-term references. Requires `--loopback --media-lab` in the helper. Not a remote transport. |
@@ -329,6 +330,8 @@ Remove owned temporary JSON/log/build outputs after recording the useful results
329
330
  | `--no-low-latency` | Never asks VideoToolbox for the low-latency rate control: encodes as a Mac without it does. |
330
331
  | `--no-playout-delay` | Leaves out the field trial that sends playout-delay 0. |
331
332
  | `--no-flexfec` | Disables FlexFEC advertisement and sending for an explicit comparison. |
333
+ | `--loopback-smooth` | Makes the test receiver decline the playout-delay extension (`ScreenPacing`), as the Mac viewer does with even pacing. |
334
+ | `--frame-trace`, `--stats-interval <s>` | Loopback diagnostics: timestamps of every captured, encoded and decoded frame and each statistics read; and a statistics interval other than one second. |
332
335
  | `--loopback-no-flexfec` | Makes the test receiver decline FlexFEC through codec preferences, to check an unsupported viewer's path. |
333
336
  | `--loopback-network` | Only with `--loopback`: passes its ICE candidates to `flexfec-check.mjs` or `network-check.mjs`, which supplies proxy candidates. The proxy exists only while that tool runs. |
334
337
  | `--media-probe`, `--media-quality` | Loopback-only frame timing, and optional sampled luma comparison. Normal sessions do neither. |
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linkshell/mac",
3
- "version": "0.1.48",
3
+ "version": "0.1.49",
4
4
  "description": "LinkShell.app: the Mac side of the screen — capture, encoding, WebRTC and input, under the app's own permissions.",
5
5
  "license": "MIT",
6
6
  "repository": {