@tapflowio/android-agent 0.5.1 → 0.6.1

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.
@@ -1,16 +1,20 @@
1
1
  import type { Device, DeviceAgent } from '@tapflowio/agent-core';
2
+ import { type SleepBlocker } from '@tapflowio/agent-core/utils';
2
3
  import { AdbWrapper } from './AdbWrapper.js';
3
4
  export interface AndroidAgentOptions {
4
5
  fps?: number;
5
6
  /** AVD name or emulator serial to expose. Omit to expose all detected devices. */
6
7
  deviceFilter?: string;
7
8
  reconnectDelays?: number[];
9
+ /** Injectable for tests; defaults to a real macOS power assertion (no-op under vitest). */
10
+ sleepBlocker?: SleepBlocker;
8
11
  }
9
12
  export declare class AndroidAgent implements DeviceAgent {
10
13
  private readonly adb;
11
14
  private readonly launcher;
12
15
  private ws;
13
16
  private deviceStates;
17
+ private readonly sleepBlocker;
14
18
  private relayUrl;
15
19
  private resourcesTimer;
16
20
  private readonly resources;
@@ -1 +1 @@
1
- {"version":3,"file":"AndroidAgent.d.ts","sourceRoot":"","sources":["../src/AndroidAgent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,MAAM,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAU/E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AA8G5C,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,qBAAa,YAAa,YAAW,WAAW;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,eAAe,CAA6C;IACpE,OAAO,CAAC,iBAAiB,CAAI;IAE7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;gBAE9B,OAAO,GAAE,mBAAwB,EAAE,GAAG,CAAC,EAAE,UAAU;IAO/D,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAG7B;IAEK,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkD9C,OAAO,CAAC,gBAAgB;IAsBxB,UAAU,IAAI,IAAI;IAalB,OAAO,CAAC,kBAAkB;IA0B1B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,cAAc;YAYR,gBAAgB;YAoDhB,kBAAkB;YAmClB,YAAY;YAOZ,gBAAgB;YA2DhB,oBAAoB;IAsBlC,OAAO,CAAC,kBAAkB;YAmNZ,cAAc;IAqC5B,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAE1B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1C,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7C,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAOnC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC;IAMhC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAM1C"}
1
+ {"version":3,"file":"AndroidAgent.d.ts","sourceRoot":"","sources":["../src/AndroidAgent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,MAAM,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAE/E,OAAO,EAOL,KAAK,YAAY,EAIlB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AA+G5C,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,2FAA2F;IAC3F,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B;AAED,qBAAa,YAAa,YAAW,WAAW;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,YAAY,CAAiC;IAGrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,eAAe,CAA6C;IACpE,OAAO,CAAC,iBAAiB,CAAI;IAE7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;gBAE9B,OAAO,GAAE,mBAAwB,EAAE,GAAG,CAAC,EAAE,UAAU;IAS/D,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAG7B;IAEK,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmD9C,OAAO,CAAC,gBAAgB;IAsBxB,UAAU,IAAI,IAAI;IAclB,OAAO,CAAC,kBAAkB;IA0B1B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,cAAc;YAYR,gBAAgB;YA0EhB,kBAAkB;YAmClB,YAAY;YAOZ,gBAAgB;YA2DhB,oBAAoB;IAsBlC,OAAO,CAAC,kBAAkB;YAyNZ,cAAc;IAqC5B,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAE1B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1C,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7C,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAOnC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC;IAUhC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAM1C"}
@@ -1,7 +1,7 @@
1
1
  import os from 'os';
2
2
  import { WebSocket } from 'ws';
3
3
  import { createLogger, PlatformError, ValidationError } from '@tapflowio/agent-core';
4
- import { createResourceSampler, registerStreamWs, sendBinaryWithBackpressure, createRateLimitedDropWarn, DEFAULT_BACKPRESSURE_BYTES, writeEnvelopeHeader, } from '@tapflowio/agent-core/utils';
4
+ import { createResourceSampler, registerStreamWs, sendBinaryWithBackpressure, createRateLimitedDropWarn, createThroughputSampler, createSleepBlocker, DEFAULT_BACKPRESSURE_BYTES, writeEnvelopeHeader, CODEC_H264, } from '@tapflowio/agent-core/utils';
5
5
  import { AdbWrapper } from './AdbWrapper.js';
6
6
  import { EmulatorLauncher } from './EmulatorLauncher.js';
7
7
  import { AndroidTouchHelper } from './AndroidTouchHelper.js';
@@ -115,6 +115,9 @@ export class AndroidAgent {
115
115
  launcher;
116
116
  ws = null;
117
117
  deviceStates = new Map();
118
+ // Holds a macOS power assertion while connected so the host doesn't idle-throttle the
119
+ // emulator (its software H.264 encoder starves badly when the Mac idles). No-op off macOS.
120
+ sleepBlocker;
118
121
  relayUrl = null;
119
122
  resourcesTimer = null;
120
123
  resources = createResourceSampler();
@@ -128,6 +131,8 @@ export class AndroidAgent {
128
131
  this.launcher = new EmulatorLauncher();
129
132
  this.deviceFilter = options.deviceFilter;
130
133
  this.reconnectDelays = options.reconnectDelays ?? [1000, 2000, 4000, 8000, 16000, 30000];
134
+ // No-op under vitest so the suite never spawns real `caffeinate` processes.
135
+ this.sleepBlocker = options.sleepBlocker ?? (process.env.VITEST ? { acquire() { }, release() { } } : createSleepBlocker());
131
136
  }
132
137
  get sessionId() {
133
138
  const first = this.deviceStates.values().next().value;
@@ -164,6 +169,7 @@ export class AndroidAgent {
164
169
  const msg = JSON.parse(data.toString());
165
170
  if (msg.type === 'agent:registered') {
166
171
  this.ws = ws;
172
+ this.sleepBlocker.acquire(); // idempotent across reconnects
167
173
  this.initDeviceStates(msg.registeredSessions);
168
174
  ws.on('message', (d) => {
169
175
  try {
@@ -216,6 +222,7 @@ export class AndroidAgent {
216
222
  this.cleanupDeviceState(state);
217
223
  }
218
224
  this.deviceStates.clear();
225
+ this.sleepBlocker.release();
219
226
  this.ws?.close();
220
227
  this.ws = null;
221
228
  this.relayUrl = null;
@@ -306,7 +313,20 @@ export class AndroidAgent {
306
313
  const stream = session.video.start();
307
314
  const reader = stream.getReader();
308
315
  const threshold = Number(process.env.TAPFLOW_WS_BACKPRESSURE_BYTES) || DEFAULT_BACKPRESSURE_BYTES;
309
- const onDrop = createRateLimitedDropWarn(logger, state.deviceId);
316
+ const warnDrop = createRateLimitedDropWarn(logger, state.deviceId);
317
+ // Opt-in throughput baseline (TAPFLOW_STREAM_METRICS=1): logs fps/KB·s/drop every 5s,
318
+ // so the Android source rate can be compared against the relay→browser drop logs and
319
+ // against the iOS agent (which already samples). Distinguishes source-bound (low fpsSent)
320
+ // from decode/LAN-bound (high fpsSent, high dropRate).
321
+ const metrics = process.env.TAPFLOW_STREAM_METRICS === '1' ? createThroughputSampler() : null;
322
+ const metricsTimer = metrics
323
+ ? setInterval(() => {
324
+ const s = metrics.sample();
325
+ logger.info(`stream metrics [${state.deviceId}] ${s.fpsSent}fps ${s.kbPerSec}KB/s avg=${s.avgFrameKB}KB drop=${(s.dropRate * 100).toFixed(1)}% (${s.droppedFrames}/${s.producedFrames})`);
326
+ }, 5000)
327
+ : undefined;
328
+ metricsTimer?.unref();
329
+ const onDrop = metrics ? () => { metrics.recordDropped(); warnDrop(); } : warnDrop;
310
330
  const pump = async () => {
311
331
  try {
312
332
  while (true) {
@@ -315,19 +335,27 @@ export class AndroidAgent {
315
335
  break;
316
336
  // Detect video size changes via H.264 SPS so ScrcpyControl.screenSize always
317
337
  // matches what scrcpy server is actually encoding (landscape-aware vs portrait-locked).
318
- const parsed = parseSpsFromNal(value);
338
+ // The SPS leads the keyframe access unit, so parsing value.payload finds it.
339
+ const parsed = parseSpsFromNal(value.payload);
319
340
  if (parsed && (parsed.width !== state.videoWidth || parsed.height !== state.videoHeight)) {
320
341
  state.videoWidth = parsed.width;
321
342
  state.videoHeight = parsed.height;
322
343
  state.scrcpySession?.control.updateScreenSize(parsed.width, parsed.height);
323
344
  logger.info(`video size → ${parsed.width}×${parsed.height}`);
324
345
  }
325
- sendBinaryWithBackpressure(streamWs, writeEnvelopeHeader(value, Date.now()), threshold, onDrop);
346
+ // Mark codec=H.264 + per-AU keyframe so the relay's keyframe-aware backpressure
347
+ // preserves the reference chain (drops to the next IDR instead of tearing).
348
+ const frame = writeEnvelopeHeader(value.payload, Date.now(), { codec: CODEC_H264, keyframe: value.keyframe });
349
+ const sent = sendBinaryWithBackpressure(streamWs, frame, threshold, onDrop);
350
+ if (sent)
351
+ metrics?.recordSent(value.payload.length);
326
352
  }
327
353
  }
328
354
  catch {
329
355
  // stream cancelled or ws closed — expected on disconnect
330
356
  }
357
+ if (metricsTimer)
358
+ clearInterval(metricsTimer);
331
359
  if (state.scrcpySession === session && !state.restarting) {
332
360
  state.restarting = true;
333
361
  void this.restartVideoStream(state);
@@ -625,6 +653,12 @@ export class AndroidAgent {
625
653
  state.touchHelper.pressButton(name);
626
654
  break;
627
655
  }
656
+ case 'stream:request-idr': {
657
+ // Relay drop-to-keyframe recovery: reset the encoder so it re-emits SPS/PPS + IDR,
658
+ // resyncing fast instead of waiting for the periodic IDR. Throttled by the relay.
659
+ this.deviceStates.get(msg.sessionId)?.scrcpySession?.control.resetVideo();
660
+ break;
661
+ }
628
662
  case 'open-url': {
629
663
  const { url } = msg.payload;
630
664
  const sessionId = msg.sessionId;
@@ -761,7 +795,11 @@ export class AndroidAgent {
761
795
  const state = this.deviceStates.values().next().value;
762
796
  if (!state?.scrcpySession)
763
797
  throw new ValidationError('no active scrcpy session — call connect() first');
764
- return state.scrcpySession.video.start();
798
+ // DeviceAgent.stream() is the platform-neutral Buffer contract; unwrap ScrcpyFrame payloads.
799
+ return state.scrcpySession.video.start()
800
+ .pipeThrough(new TransformStream({
801
+ transform(frame, controller) { controller.enqueue(frame.payload); },
802
+ }));
765
803
  }
766
804
  touchStart(x, y) {
767
805
  const first = this.deviceStates.values().next().value;
@@ -1 +1 @@
1
- {"version":3,"file":"AndroidAgent.js","sourceRoot":"","sources":["../src/AndroidAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AndroidAgent.js","sourceRoot":"","sources":["../src/AndroidAgent.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export declare class ScrcpyControl {
11
11
  pinchStart(x1: number, y1: number, x2: number, y2: number): void;
12
12
  pinchMove(x1: number, y1: number, x2: number, y2: number): void;
13
13
  pinchEnd(): void;
14
+ resetVideo(): void;
14
15
  keyEvent(keyCode: number): void;
15
16
  private writeTouchEvent;
16
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ScrcpyControl.d.ts","sourceRoot":"","sources":["../../src/scrcpy/ScrcpyControl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AASjC,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;gBAFH,MAAM,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM;IAG9B,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKrD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIxD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIxD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,GAAG,IAAI;IAI9C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAKhE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAK/D,QAAQ,IAAI,IAAI;IAKhB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAU/B,OAAO,CAAC,eAAe;CAiBxB"}
1
+ {"version":3,"file":"ScrcpyControl.d.ts","sourceRoot":"","sources":["../../src/scrcpy/ScrcpyControl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAUjC,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;gBAFH,MAAM,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM;IAG9B,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKrD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIxD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIxD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,GAAG,IAAI;IAI9C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAKhE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAK/D,QAAQ,IAAI,IAAI;IAQhB,UAAU,IAAI,IAAI;IAIlB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAU/B,OAAO,CAAC,eAAe;CAiBxB"}
@@ -1,5 +1,6 @@
1
1
  const TYPE_INJECT_KEYCODE = 0;
2
2
  const TYPE_INJECT_TOUCH_EVENT = 2;
3
+ const TYPE_RESET_VIDEO = 17;
3
4
  const ACTION_DOWN = 0;
4
5
  const ACTION_UP = 1;
5
6
  const ACTION_MOVE = 2;
@@ -37,6 +38,12 @@ export class ScrcpyControl {
37
38
  this.touchUp(0);
38
39
  this.touchUp(1);
39
40
  }
41
+ // Forces the scrcpy server to reset the video encoder, which re-emits codec config
42
+ // (SPS/PPS) + a keyframe (IDR). Used for relay drop-to-keyframe recovery so the stream
43
+ // resyncs fast instead of waiting for the periodic IDR. (scrcpy v3.3: 1-byte message.)
44
+ resetVideo() {
45
+ this.socket.write(Buffer.from([TYPE_RESET_VIDEO]));
46
+ }
40
47
  keyEvent(keyCode) {
41
48
  const buf = Buffer.allocUnsafe(14);
42
49
  buf.writeUInt8(TYPE_INJECT_KEYCODE, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"ScrcpyControl.js","sourceRoot":"","sources":["../../src/scrcpy/ScrcpyControl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScrcpyControl.js","sourceRoot":"","sources":["../../src/scrcpy/ScrcpyControl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScrcpySession.d.ts","sourceRoot":"","sources":["../../src/scrcpy/ScrcpySession.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAgCxD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,IAAI,CAAI;;IAShB,IAAI,KAAK,IAAI,WAAW,CAGvB;IAED,IAAI,OAAO,IAAI,aAAa,CAG3B;IAEK,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkEtD,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAc1B,OAAO,CAAC,UAAU;CAMnB"}
1
+ {"version":3,"file":"ScrcpySession.d.ts","sourceRoot":"","sources":["../../src/scrcpy/ScrcpySession.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAgCxD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,IAAI,CAAI;;IAShB,IAAI,KAAK,IAAI,WAAW,CAGvB;IAED,IAAI,OAAO,IAAI,aAAa,CAG3B;IAEK,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsEtD,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAc1B,OAAO,CAAC,UAAU;CAMnB"}
@@ -81,7 +81,11 @@ export class ScrcpySession {
81
81
  // and scrcpy rotates that content into the locked portrait frame, which CSS undoes.
82
82
  'capture_orientation=@0',
83
83
  'send_device_meta=true', // 64-byte name + codec-id + width + height header
84
- 'send_frame_meta=false', // raw Annex B stream (no length prefix per frame)
84
+ // 12-byte frame header per packet (pts + config/keyframe flags + length). Gives
85
+ // authoritative keyframe/config boundaries so the agent marks the TFFE envelope
86
+ // (codec=H.264, keyframe) correctly → relay keyframe-aware backpressure works
87
+ // (no P-frame tearing under LAN congestion). See ScrcpyVideo packet framer.
88
+ 'send_frame_meta=true',
85
89
  'send_dummy_byte=false', // skip the 1-byte connection-check byte
86
90
  // profile=1 (AVCProfileBaseline): the browser WASM decoder (tinyh264) only
87
91
  // decodes (constrained-)baseline — force it so Android shares the HTTP→WASM path.
@@ -1 +1 @@
1
- {"version":3,"file":"ScrcpySession.js","sourceRoot":"","sources":["../../src/scrcpy/ScrcpySession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScrcpySession.js","sourceRoot":"","sources":["../../src/scrcpy/ScrcpySession.ts"],"names":[],"mappings":"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"}
@@ -4,21 +4,32 @@ export interface ScrcpyDeviceInfo {
4
4
  width: number;
5
5
  height: number;
6
6
  }
7
+ /** One H.264 access unit. Mirrors ios-agent's StreamFrame so the relay's
8
+ * keyframe-aware backpressure can preserve the reference chain. */
9
+ export interface ScrcpyFrame {
10
+ payload: Buffer;
11
+ /** True for IDR access units (config packet merged in). */
12
+ keyframe: boolean;
13
+ }
7
14
  export declare class ScrcpyVideo {
8
15
  private readonly socket;
9
16
  private headerBuf;
10
- private readonly dataChunks;
17
+ private readonly dataFrames;
11
18
  private headerResolve;
12
19
  private headerReject;
13
20
  private streamController;
14
21
  private pending;
22
+ private pendingConfig;
15
23
  private headerConsumed;
16
24
  private endReceived;
25
+ private streamSettled;
17
26
  constructor(socket: Socket);
27
+ private finish;
18
28
  deviceInfo(): Promise<ScrcpyDeviceInfo>;
19
- start(): ReadableStream<Buffer>;
29
+ start(): ReadableStream<ScrcpyFrame>;
20
30
  private onData;
21
- private drainNalUnits;
31
+ private drainPackets;
32
+ private emit;
22
33
  private parseHeader;
23
34
  }
24
35
  //# sourceMappingURL=ScrcpyVideo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrcpyVideo.d.ts","sourceRoot":"","sources":["../../src/scrcpy/ScrcpyVideo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAUjC,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,WAAW;IAUV,OAAO,CAAC,QAAQ,CAAC,MAAM;IATnC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,gBAAgB,CAAuD;IAC/E,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,WAAW,CAAQ;gBAEE,MAAM,EAAE,MAAM;IAkC3C,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQvC,KAAK,IAAI,cAAc,CAAC,MAAM,CAAC;IAe/B,OAAO,CAAC,MAAM;IAkBd,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,WAAW;CAUpB"}
1
+ {"version":3,"file":"ScrcpyVideo.d.ts","sourceRoot":"","sources":["../../src/scrcpy/ScrcpyVideo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAoBjC,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED;oEACoE;AACpE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,2DAA2D;IAC3D,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,qBAAa,WAAW;IAeV,OAAO,CAAC,QAAQ,CAAC,MAAM;IAdnC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,gBAAgB,CAA4D;IACpF,OAAO,CAAC,OAAO,CAAkB;IAIjC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,aAAa,CAAQ;gBAEA,MAAM,EAAE,MAAM;IAa3C,OAAO,CAAC,MAAM;IAkBd,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQvC,KAAK,IAAI,cAAc,CAAC,WAAW,CAAC;IAkBpC,OAAO,CAAC,MAAM;IAkBd,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,WAAW;CAUpB"}
@@ -1,54 +1,68 @@
1
- // Header layout (send_device_meta=true, send_stream_meta=true default):
1
+ // Device meta header (send_device_meta=true):
2
2
  // [0..63] device name, null-padded (64 bytes)
3
3
  // [64..67] codec ID as ASCII ("h264") (4 bytes)
4
4
  // [68..71] width uint32 BE (4 bytes)
5
5
  // [72..75] height uint32 BE (4 bytes)
6
6
  const HEADER_SIZE = 76;
7
7
  const DEVICE_NAME_SIZE = 64;
8
+ // Frame meta header (send_frame_meta=true), one per packet:
9
+ // [0..7] pts_flags uint64 BE — bit63 = CONFIG (codec config / SPS+PPS),
10
+ // bit62 = KEY_FRAME (IDR); low 62 bits = PTS
11
+ // [8..11] packet length uint32 BE
12
+ // (Verified against scrcpy v3.3 app/src/demuxer.c: SC_PACKET_HEADER_SIZE 12,
13
+ // SC_PACKET_FLAG_CONFIG=1<<63, SC_PACKET_FLAG_KEY_FRAME=1<<62.)
14
+ const PACKET_HEADER_SIZE = 12;
15
+ const FLAG_CONFIG = 0x80000000; // bit63, tested on the high 32 bits
16
+ const FLAG_KEY_FRAME = 0x40000000; // bit62
8
17
  export class ScrcpyVideo {
9
18
  socket;
10
19
  headerBuf = null;
11
- dataChunks = [];
20
+ dataFrames = [];
12
21
  headerResolve = null;
13
22
  headerReject = null;
14
23
  streamController = null;
15
24
  pending = Buffer.alloc(0);
25
+ // CONFIG packet (SPS+PPS) buffered until the next packet (the IDR) so the keyframe
26
+ // access unit carries its parameter sets — the relay then never forwards an IDR whose
27
+ // config was dropped, and the browser decoder can always (re)initialize.
28
+ pendingConfig = null;
16
29
  headerConsumed = false;
17
30
  endReceived = false;
31
+ streamSettled = false;
18
32
  constructor(socket) {
19
33
  this.socket = socket;
20
34
  socket.on('data', (chunk) => this.onData(chunk));
21
- socket.on('end', () => {
22
- this.endReceived = true;
23
- if (!this.headerConsumed) {
24
- this.headerReject?.(new Error('scrcpy server closed before sending device info'));
25
- this.headerReject = null;
26
- return;
27
- }
28
- // Flush the last NAL unit (Annex B: last unit has no following start code)
29
- if (this.pending.length > 0) {
30
- const last = Buffer.from(this.pending);
31
- this.pending = Buffer.alloc(0);
32
- if (this.streamController) {
33
- this.streamController.enqueue(last);
34
- }
35
- else {
36
- this.dataChunks.push(last);
37
- }
38
- }
39
- this.streamController?.close();
40
- });
41
- socket.on('close', () => {
42
- if (!this.headerConsumed) {
43
- this.headerReject?.(new Error('scrcpy server connection closed'));
44
- this.headerReject = null;
45
- }
46
- });
47
- socket.on('error', (e) => {
48
- this.headerReject?.(e);
35
+ // 'end' = clean FIN; 'close' = socket torn down without a FIN (e.g. ScrcpySession.stop()
36
+ // → videoSocket.destroy(), or device shutdown). BOTH must terminate the stream, else the
37
+ // agent pump blocks forever on reader.read() and its metrics timer leaks.
38
+ socket.on('end', () => this.finish());
39
+ socket.on('close', () => this.finish());
40
+ socket.on('error', (e) => this.finish(e));
41
+ }
42
+ // Settles the stream exactly once: rejects deviceInfo() if the header never arrived,
43
+ // otherwise closes (or errors) the ReadableStream so the consumer's reader sees `done`.
44
+ // Length-prefixed framing means a partial trailing packet is incomplete → discarded.
45
+ finish(err) {
46
+ if (this.streamSettled)
47
+ return;
48
+ this.streamSettled = true;
49
+ this.endReceived = true;
50
+ if (!this.headerConsumed) {
51
+ this.headerReject?.(err ?? new Error('scrcpy server connection closed before sending device info'));
49
52
  this.headerReject = null;
50
- this.streamController?.error(e);
51
- });
53
+ return;
54
+ }
55
+ if (!this.streamController)
56
+ return; // start() will close once it observes endReceived
57
+ // The controller may already be closed (e.g. a late socket event after another
58
+ // settle path) — closing/erroring twice throws, so swallow it.
59
+ try {
60
+ if (err)
61
+ this.streamController.error(err);
62
+ else
63
+ this.streamController.close();
64
+ }
65
+ catch { /* already closed */ }
52
66
  }
53
67
  deviceInfo() {
54
68
  if (this.headerBuf)
@@ -62,14 +76,17 @@ export class ScrcpyVideo {
62
76
  return new ReadableStream({
63
77
  start: (controller) => {
64
78
  this.streamController = controller;
65
- // Flush any NAL units that arrived before start() was called
66
- for (const chunk of this.dataChunks)
67
- controller.enqueue(chunk);
68
- this.dataChunks.length = 0;
79
+ // Flush frames that arrived before start() was called
80
+ for (const frame of this.dataFrames)
81
+ controller.enqueue(frame);
82
+ this.dataFrames.length = 0;
69
83
  if (this.endReceived)
70
84
  controller.close();
71
85
  },
72
86
  cancel: () => {
87
+ // The consumer cancelled — the stream is already settled by the ReadableStream
88
+ // itself, so the socket 'close'/'error' that destroy() triggers must not re-close it.
89
+ this.streamSettled = true;
73
90
  this.socket.destroy();
74
91
  },
75
92
  });
@@ -88,21 +105,36 @@ export class ScrcpyVideo {
88
105
  this.headerResolve = null;
89
106
  this.headerReject = null;
90
107
  }
91
- this.drainNalUnits();
108
+ this.drainPackets();
92
109
  }
93
- drainNalUnits() {
94
- // send_frame_meta=false → raw H.264 Annex B stream (no length prefix)
95
- const { units, remaining } = extractAnnexBNals(this.pending);
96
- this.pending = Buffer.from(remaining);
97
- for (const nal of units) {
98
- if (this.streamController) {
99
- this.streamController.enqueue(nal);
110
+ drainPackets() {
111
+ while (this.pending.length >= PACKET_HEADER_SIZE) {
112
+ const flagsHi = this.pending.readUInt32BE(0); // high 32 bits of pts_flags
113
+ const len = this.pending.readUInt32BE(8);
114
+ if (this.pending.length < PACKET_HEADER_SIZE + len)
115
+ break; // wait for the rest
116
+ const payload = Buffer.from(this.pending.subarray(PACKET_HEADER_SIZE, PACKET_HEADER_SIZE + len));
117
+ this.pending = this.pending.subarray(PACKET_HEADER_SIZE + len);
118
+ if ((flagsHi & FLAG_CONFIG) !== 0) {
119
+ // Hold SPS/PPS until the next (key)frame packet; do not emit alone.
120
+ this.pendingConfig = this.pendingConfig ? Buffer.concat([this.pendingConfig, payload]) : payload;
121
+ continue;
100
122
  }
101
- else {
102
- this.dataChunks.push(nal);
123
+ const keyframe = (flagsHi & FLAG_KEY_FRAME) !== 0;
124
+ let frame = payload;
125
+ if (this.pendingConfig) {
126
+ frame = Buffer.concat([this.pendingConfig, payload]);
127
+ this.pendingConfig = null;
103
128
  }
129
+ this.emit({ payload: frame, keyframe });
104
130
  }
105
131
  }
132
+ emit(frame) {
133
+ if (this.streamController)
134
+ this.streamController.enqueue(frame);
135
+ else
136
+ this.dataFrames.push(frame);
137
+ }
106
138
  parseHeader(buf) {
107
139
  const deviceName = buf
108
140
  .subarray(0, DEVICE_NAME_SIZE)
@@ -114,32 +146,4 @@ export class ScrcpyVideo {
114
146
  return { deviceName, width, height };
115
147
  }
116
148
  }
117
- function findStartCode(buf, from) {
118
- for (let i = from; i + 2 < buf.length; i++) {
119
- if (buf[i] === 0 && buf[i + 1] === 0) {
120
- if (buf[i + 2] === 1)
121
- return { pos: i, len: 3 };
122
- if (i + 3 < buf.length && buf[i + 2] === 0 && buf[i + 3] === 1)
123
- return { pos: i, len: 4 };
124
- }
125
- }
126
- return null;
127
- }
128
- function extractAnnexBNals(buf) {
129
- const units = [];
130
- const first = findStartCode(buf, 0);
131
- if (!first)
132
- return { units, remaining: buf };
133
- let nalStart = first.pos;
134
- let searchFrom = first.pos + first.len;
135
- while (true) {
136
- const next = findStartCode(buf, searchFrom);
137
- if (!next)
138
- break;
139
- units.push(Buffer.from(buf.subarray(nalStart, next.pos)));
140
- nalStart = next.pos;
141
- searchFrom = next.pos + next.len;
142
- }
143
- return { units, remaining: buf.subarray(nalStart) };
144
- }
145
149
  //# sourceMappingURL=ScrcpyVideo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrcpyVideo.js","sourceRoot":"","sources":["../../src/scrcpy/ScrcpyVideo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScrcpyVideo.js","sourceRoot":"","sources":["../../src/scrcpy/ScrcpyVideo.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tapflowio/android-agent",
3
- "version": "0.5.1",
3
+ "version": "0.6.1",
4
4
  "description": "Android emulator agent for tapflow — ADB control and scrcpy H.264 streaming",
5
5
  "keywords": [
6
6
  "tapflow",
@@ -46,14 +46,14 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "ws": "^8.0.0",
49
- "@tapflowio/agent-core": "0.5.1"
49
+ "@tapflowio/agent-core": "0.6.1"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/node": "^20.0.0",
53
53
  "@types/ws": "^8.0.0",
54
54
  "typescript": "^5.0.0",
55
55
  "vitest": "^2.0.0",
56
- "@tapflowio/relay": "0.5.1"
56
+ "@tapflowio/relay": "0.6.1"
57
57
  },
58
58
  "scripts": {
59
59
  "build": "tsc",