dsh-pf-stream 0.1.3 → 0.2.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.
Files changed (45) hide show
  1. package/README.en.md +26 -4
  2. package/README.md +28 -5
  3. package/lib/entry/adapter.d.ts +2 -0
  4. package/lib/entry/adapter.js +4 -1
  5. package/lib/entry/adapter.js.map +1 -1
  6. package/lib/entry/legacyNormalizer.d.ts +6 -2
  7. package/lib/entry/legacyNormalizer.js +19 -9
  8. package/lib/entry/legacyNormalizer.js.map +1 -1
  9. package/lib/index.d.ts +40 -5
  10. package/lib/index.js +81 -6
  11. package/lib/index.js.map +1 -1
  12. package/lib/session/state.js +5 -23
  13. package/lib/session/state.js.map +1 -1
  14. package/lib/stage0/decoder.d.ts +2 -0
  15. package/lib/stage0/decoder.js +23 -3
  16. package/lib/stage0/decoder.js.map +1 -1
  17. package/lib/stage2/stateMachine.js +0 -3
  18. package/lib/stage2/stateMachine.js.map +1 -1
  19. package/lib/stage3/deterministicRouter.d.ts +4 -2
  20. package/lib/stage3/deterministicRouter.js +129 -80
  21. package/lib/stage3/deterministicRouter.js.map +1 -1
  22. package/lib/stage3/streamSampler.d.ts +2 -0
  23. package/lib/stage3/streamSampler.js +33 -26
  24. package/lib/stage3/streamSampler.js.map +1 -1
  25. package/lib/stage4/viewport.d.ts +2 -1
  26. package/lib/stage4/viewport.js +7 -3
  27. package/lib/stage4/viewport.js.map +1 -1
  28. package/lib/stage5/controller.js +1 -1
  29. package/lib/stage5/intent.d.ts +2 -0
  30. package/lib/stage5/intent.js +23 -10
  31. package/lib/stage5/intent.js.map +1 -1
  32. package/lib/stage6/precheck.d.ts +4 -2
  33. package/lib/stage6/precheck.js +5 -5
  34. package/lib/stage6/precheck.js.map +1 -1
  35. package/lib/tool/handler.d.ts +34 -0
  36. package/lib/tool/handler.js +29 -9
  37. package/lib/tool/handler.js.map +1 -1
  38. package/lib/tool/schema.d.ts +4 -1
  39. package/lib/tool/schema.js +15 -1
  40. package/lib/tool/schema.js.map +1 -1
  41. package/lib/tool/streamCall.d.ts +24 -2
  42. package/lib/tool/streamCall.js +29 -7
  43. package/lib/tool/streamCall.js.map +1 -1
  44. package/lib/types.d.ts +2 -4
  45. package/package.json +1 -1
@@ -32,7 +32,8 @@ export async function decodePoint(videoPath, ptsMs, options) {
32
32
  encoding: 'buffer',
33
33
  });
34
34
  const frameBytes = options.displayWidth * options.displayHeight * 3;
35
- if (stdout.length === 0)
35
+ // 截断帧(0 < 长度 < frameBytes)按空帧处理,交由回退链兜底。
36
+ if (stdout.length < frameBytes)
36
37
  return null;
37
38
  return { width: options.displayWidth, height: options.displayHeight, data: stdout.subarray(0, frameBytes) };
38
39
  }
@@ -93,8 +94,9 @@ export async function decodeRange(videoPath, window0Ms, window1Ms, options, onFr
93
94
  return frames;
94
95
  }
95
96
  async function probePtsIndexExec(options, videoPath, w0, w1) {
96
- // ffprobe 路径与 ffmpeg 同目录约定:入口适配层保证成对解析
97
- const ffprobe = options.ffmpegPath.replace(/ffmpeg(\.exe)?$/i, 'ffprobe$1');
97
+ // ffprobe 显式配置优先;缺省时按与 ffmpeg 同目录约定派生
98
+ const ffprobe = options.ffprobePath
99
+ ?? options.ffmpegPath.replace(/ffmpeg(\.exe)?$/i, 'ffprobe$1');
98
100
  return probePtsIndex(ffprobe, videoPath, w0, w1, options.signal);
99
101
  }
100
102
  /** 区间解码输出几何(workMaxEdge 等比上限)。 */
@@ -153,6 +155,16 @@ export async function decodeRangeStreaming(videoPath, window0Ms, window1Ms, opti
153
155
  let realigned = 0;
154
156
  let killed = false;
155
157
  let indexExhausted = false;
158
+ // 墙钟 30s 无帧推进告警(规格《六》§1):解码器长时间无输出即终止并报错。
159
+ const STALL_TIMEOUT_MS = 30_000;
160
+ let lastFrameWallMs = Date.now();
161
+ let stalled = false;
162
+ const stallTimer = setInterval(() => {
163
+ if (Date.now() - lastFrameWallMs > STALL_TIMEOUT_MS) {
164
+ stalled = true;
165
+ child.kill();
166
+ }
167
+ }, 1_000);
156
168
  const exited = new Promise((resolveExit, rejectExit) => {
157
169
  child.once('error', rejectExit);
158
170
  child.once('close', (code) => resolveExit(code));
@@ -171,7 +183,9 @@ export async function decodeRangeStreaming(videoPath, window0Ms, window1Ms, opti
171
183
  height: geometry.outH,
172
184
  data: pending.subarray(0, frameBytes),
173
185
  };
186
+ lastFrameWallMs = Date.now();
174
187
  await onFrame(image, index[frameIndex].ptsMs);
188
+ lastFrameWallMs = Date.now();
175
189
  pending = pending.length > frameBytes ? pending.subarray(frameBytes) : null;
176
190
  frameIndex++;
177
191
  }
@@ -189,12 +203,18 @@ export async function decodeRangeStreaming(videoPath, window0Ms, window1Ms, opti
189
203
  child.kill();
190
204
  throw error;
191
205
  }
206
+ finally {
207
+ clearInterval(stallTimer);
208
+ }
192
209
  if (options.signal?.aborted && !killed) {
193
210
  child.kill();
194
211
  await exited;
195
212
  throw new PfStreamError('PFSTREAM_EXEC_ABORT', '解码已被调用方取消');
196
213
  }
197
214
  const code = await exited;
215
+ if (stalled) {
216
+ throw new PfStreamError('PFSTREAM_DECODE_STALL', `解码连续 ${STALL_TIMEOUT_MS}ms 无帧推进,已终止(可能为损坏媒体或解码器阻塞)`);
217
+ }
198
218
  if (code !== 0 && !killed) {
199
219
  const stderrTail = Buffer.concat(stderrChunks)
200
220
  .subarray(Math.max(0, stderrBytes - 2048))
@@ -1 +1 @@
1
- {"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/stage0/decoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/stage0/decoder.ts"],"names":[],"mappings":"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"}
@@ -35,9 +35,6 @@ export class SchmittMachine {
35
35
  gEma: this.gEma,
36
36
  emaWarmupLeft: this.emaWarmupLeft,
37
37
  settleStartPtsMs: this.settleStartPtsMs,
38
- lastKCandidates: null,
39
- lastMotionVec: null,
40
- arena: null,
41
38
  };
42
39
  }
43
40
  /** H_low_eff 联动。 */
@@ -1 +1 @@
1
- {"version":3,"file":"stateMachine.js","sourceRoot":"","sources":["../../src/stage2/stateMachine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stateMachine.js","sourceRoot":"","sources":["../../src/stage2/stateMachine.ts"],"names":[],"mappings":"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"}
@@ -3,15 +3,17 @@
3
3
  *
4
4
  * 旁路状态机与自闭环,复用 Stage 0(解码)与 Stage 4(视窗归一化与画布打包):
5
5
  * - 单时间戳 / focus=detail 逐帧 → FORM_3(1F,274 Tokens,slot F 全分辨率);
6
- * - uniform + focus=motion → 每 4 帧一组 FORM_2(4P 概览);
6
+ * - uniform + focus=motion → 每 4 帧一组 FORM_2(4P 概览),余量不足 4 帧不组包;
7
7
  * - 默认 balanced → 每组前 1~3 帧 P + 组末帧 F(FORM_1 / FORM_4);
8
8
  * - 批量退化:目标数 ≥32 且平均间隔 ≤2s → 单遍区间解码 + 最近 PTS 帧映射;
9
- * - 空帧回退复用最后一个有效解码帧。
9
+ * - 空帧回退复用最后一个有效解码帧;缺帧组按实际单元数重定形态或跳过;
10
+ * - 解码按块推进(每块 ≤20 目标),块内帧即时打包释放,常驻内存有界。
10
11
  */
11
12
  import { type PacketArtifact } from '../stage4/canvasPacker.js';
12
13
  import type { IntentDirective, ProbeResult } from '../types.js';
13
14
  export interface RouterOptions {
14
15
  ffmpegPath: string;
16
+ ffprobePath?: string | undefined;
15
17
  renderVisualId: boolean;
16
18
  packetIdStart: number;
17
19
  globalIdStart: number;
@@ -3,16 +3,19 @@
3
3
  *
4
4
  * 旁路状态机与自闭环,复用 Stage 0(解码)与 Stage 4(视窗归一化与画布打包):
5
5
  * - 单时间戳 / focus=detail 逐帧 → FORM_3(1F,274 Tokens,slot F 全分辨率);
6
- * - uniform + focus=motion → 每 4 帧一组 FORM_2(4P 概览);
6
+ * - uniform + focus=motion → 每 4 帧一组 FORM_2(4P 概览),余量不足 4 帧不组包;
7
7
  * - 默认 balanced → 每组前 1~3 帧 P + 组末帧 F(FORM_1 / FORM_4);
8
8
  * - 批量退化:目标数 ≥32 且平均间隔 ≤2s → 单遍区间解码 + 最近 PTS 帧映射;
9
- * - 空帧回退复用最后一个有效解码帧。
9
+ * - 空帧回退复用最后一个有效解码帧;缺帧组按实际单元数重定形态或跳过;
10
+ * - 解码按块推进(每块 ≤20 目标),块内帧即时打包释放,常驻内存有界。
10
11
  */
11
12
  import { decodePointWithFallback, decodeRangeStreaming } from '../stage0/decoder.js';
12
13
  import { packCanvas, timelineHintLine } from '../stage4/canvasPacker.js';
13
14
  import { applyViewport, planViewport } from '../stage4/viewport.js';
14
15
  import { assertCanvasTokenLegal, encodedSizeOf } from '../stage6/precheck.js';
15
16
  import { PfStreamError } from '../errors.js';
17
+ /** 单块解码目标数上限:限制批量解码常驻内存(≤20 帧全分辨率)。 */
18
+ const CHUNK_TARGETS = 20;
16
19
  /** 目标 PTS 列表推导:排序、去重、钳制。 */
17
20
  export function resolveTargets(intent, probe) {
18
21
  const last = probe.lastPtsMs;
@@ -38,7 +41,7 @@ export function resolveTargets(intent, probe) {
38
41
  out.push(Math.round(t));
39
42
  }
40
43
  else {
41
- out.push(w0);
44
+ throw new PfStreamError('PFSTREAM_UNIFORM_PARAMS_MISSING', 'uniform 抽帧需要 interval_ms 或 frame_count 之一');
42
45
  }
43
46
  return dedupeSorted(out.map((t) => Math.min(t, last)));
44
47
  }
@@ -65,9 +68,11 @@ export function planGroups(targets, focus, singleTimestamp) {
65
68
  return targets.map(() => ({ form: 'FORM_3_COMPACT_1F', pCount: 0, hasF: true }));
66
69
  }
67
70
  if (focus === 'motion') {
71
+ // 每 4 帧一组 FORM_2;余量不足 4 帧不组包。
72
+ const fullGroups = Math.floor(targets.length / 4);
68
73
  const groups = [];
69
- for (let i = 0; i < targets.length; i += 4) {
70
- groups.push({ form: 'FORM_2_COMPACT_4P', pCount: Math.min(4, targets.length - i), hasF: false });
74
+ for (let g = 0; g < fullGroups; g++) {
75
+ groups.push({ form: 'FORM_2_COMPACT_4P', pCount: 4, hasF: false });
71
76
  }
72
77
  return groups;
73
78
  }
@@ -88,6 +93,26 @@ export function planGroups(targets, focus, singleTimestamp) {
88
93
  }
89
94
  return groups;
90
95
  }
96
+ /** 按实际单元集合重定形态;无法成立时返回 null(跳过该组)。 */
97
+ function selectForm(units) {
98
+ let fCount = 0;
99
+ for (const u of units)
100
+ if (u.scale === '2x2_F')
101
+ fCount++;
102
+ const pCount = units.length - fCount;
103
+ if (fCount === 1) {
104
+ if (pCount === 0)
105
+ return 'FORM_3_COMPACT_1F';
106
+ if (pCount === 4)
107
+ return 'FORM_1_STANDARD_STRIP';
108
+ if (pCount >= 1)
109
+ return 'FORM_4_PARTIAL_STRIP';
110
+ return null;
111
+ }
112
+ if (fCount === 0 && pCount === 4)
113
+ return 'FORM_2_COMPACT_4P';
114
+ return null;
115
+ }
91
116
  /** 执行确定性检视。 */
92
117
  export async function runDeterministicInspection(videoPath, probe, intent, options) {
93
118
  const targets = resolveTargets(intent, probe);
@@ -96,93 +121,117 @@ export async function runDeterministicInspection(videoPath, probe, intent, optio
96
121
  }
97
122
  const decodeOptions = {
98
123
  ffmpegPath: options.ffmpegPath,
124
+ ffprobePath: options.ffprobePath,
99
125
  displayWidth: probe.displayWidth,
100
126
  displayHeight: probe.displayHeight,
101
127
  signal: options.signal,
102
128
  };
103
- // 解码:批量退化(单遍流式 + 最近 PTS 帧映射)或逐点
104
- const frames = new Map();
105
- if (shouldBatchDecode(targets)) {
106
- const best = new Map();
107
- let firstUnfinalized = 0;
108
- await decodeRangeStreaming(videoPath, targets[0], targets[targets.length - 1], decodeOptions, (image, ptsMs) => {
109
- // 帧按 PTS 升序到达:越过目标即定稿
110
- while (firstUnfinalized < targets.length && ptsMs > targets[firstUnfinalized]) {
111
- const t = targets[firstUnfinalized];
112
- const hit = best.get(t);
113
- if (hit)
114
- frames.set(t, hit.image);
115
- firstUnfinalized++;
116
- }
117
- for (let j = firstUnfinalized; j < Math.min(targets.length, firstUnfinalized + 8); j++) {
118
- const t = targets[j];
119
- const dist = Math.abs(ptsMs - t);
120
- const prev = best.get(t);
121
- if (!prev || dist < prev.dist)
122
- best.set(t, { dist, image });
123
- }
124
- });
125
- for (let j = firstUnfinalized; j < targets.length; j++) {
126
- const t = targets[j];
127
- const hit = best.get(t);
128
- if (hit)
129
- frames.set(t, hit.image);
130
- }
131
- }
132
- else {
133
- let lastValid = null;
134
- for (const target of targets) {
135
- const frame = await decodePointWithFallback(videoPath, target, probe.lastPtsMs, decodeOptions, lastValid);
136
- lastValid = frame;
137
- frames.set(target, frame);
138
- }
139
- }
140
- // 视窗计划(同组共享源帧参数,槽位不同)
141
129
  const groups = planGroups(targets, intent.focus, targets.length === 1 && intent.action === 'timestamps');
130
+ const spans = [];
131
+ let ti = 0;
132
+ for (const plan of groups) {
133
+ const count = plan.pCount + (plan.hasF ? 1 : 0);
134
+ spans.push({ start: ti, count, plan });
135
+ ti += count;
136
+ }
142
137
  const packets = [];
143
138
  // 提示行(let:字节水位截断时需同步移除对应行)
144
139
  let hintLines = [];
145
140
  let globalId = options.globalIdStart;
146
141
  let packetId = options.packetIdStart;
147
- let targetIdx = 0;
148
- for (const group of groups) {
149
- const units = [];
150
- const groupTargets = targets.slice(targetIdx, targetIdx + group.pCount + (group.hasF ? 1 : 0));
151
- for (let i = 0; i < groupTargets.length; i++) {
152
- const isF = group.hasF && i === groupTargets.length - 1;
153
- const pts = groupTargets[i];
154
- const frame = frames.get(pts);
155
- if (!frame)
156
- continue;
157
- const plan = planViewport({
158
- displayWidth: probe.displayWidth,
159
- displayHeight: probe.displayHeight,
160
- roi: intent.roi_hint,
161
- fullFrame: intent.full_frame === true,
162
- slot: isF ? 'F' : 'P',
142
+ const sampled = [];
143
+ // 按块推进:每块 ≤CHUNK_TARGETS 个目标,块内帧打包后即释放,内存有界
144
+ let spanIdx = 0;
145
+ while (spanIdx < spans.length) {
146
+ const chunk = [];
147
+ let used = 0;
148
+ while (spanIdx < spans.length && used < CHUNK_TARGETS) {
149
+ const s = spans[spanIdx];
150
+ chunk.push(s);
151
+ used += s.count;
152
+ spanIdx++;
153
+ }
154
+ const chunkStart = chunk[0].start;
155
+ const chunkTargets = targets.slice(chunkStart, chunkStart + used);
156
+ const frames = new Map();
157
+ if (shouldBatchDecode(chunkTargets)) {
158
+ const best = new Map();
159
+ let firstUnfinalized = 0;
160
+ await decodeRangeStreaming(videoPath, chunkTargets[0], chunkTargets[chunkTargets.length - 1], decodeOptions, (image, ptsMs) => {
161
+ // 帧按 PTS 升序到达:越过目标即定稿
162
+ while (firstUnfinalized < chunkTargets.length && ptsMs > chunkTargets[firstUnfinalized]) {
163
+ const t = chunkTargets[firstUnfinalized];
164
+ const hit = best.get(t);
165
+ if (hit)
166
+ frames.set(t, hit.image);
167
+ firstUnfinalized++;
168
+ }
169
+ for (let j = firstUnfinalized; j < Math.min(chunkTargets.length, firstUnfinalized + 8); j++) {
170
+ const t = chunkTargets[j];
171
+ const dist = Math.abs(ptsMs - t);
172
+ const prev = best.get(t);
173
+ if (!prev || dist < prev.dist)
174
+ best.set(t, { dist, image });
175
+ }
163
176
  });
164
- units.push({
165
- globalId: globalId++,
166
- ptsMs: pts,
167
- scale: isF ? '2x2_F' : '1x1_P',
168
- eventType: 'DETERMINISTIC',
169
- image: applyViewport(frame, plan, isF ? 'F' : 'P'),
170
- sourceCropBbox: plan.sourceCropBbox,
177
+ for (let j = firstUnfinalized; j < chunkTargets.length; j++) {
178
+ const t = chunkTargets[j];
179
+ const hit = best.get(t);
180
+ if (hit)
181
+ frames.set(t, hit.image);
182
+ }
183
+ }
184
+ else {
185
+ let lastValid = null;
186
+ for (const target of chunkTargets) {
187
+ const frame = await decodePointWithFallback(videoPath, target, probe.lastPtsMs, decodeOptions, lastValid);
188
+ lastValid = frame;
189
+ frames.set(target, frame);
190
+ }
191
+ }
192
+ // 打包本块各组(缺帧单元跳过,按实际单元数重定形态)
193
+ for (const span of chunk) {
194
+ const units = [];
195
+ const groupTargets = targets.slice(span.start, span.start + span.count);
196
+ for (let i = 0; i < groupTargets.length; i++) {
197
+ const isF = span.plan.hasF && i === groupTargets.length - 1;
198
+ const pts = groupTargets[i];
199
+ const frame = frames.get(pts);
200
+ if (!frame)
201
+ continue;
202
+ const plan = planViewport({
203
+ displayWidth: probe.displayWidth,
204
+ displayHeight: probe.displayHeight,
205
+ roi: intent.roi_hint,
206
+ fullFrame: intent.full_frame === true,
207
+ slot: isF ? 'F' : 'P',
208
+ });
209
+ units.push({
210
+ globalId: globalId++,
211
+ ptsMs: pts,
212
+ scale: isF ? '2x2_F' : '1x1_P',
213
+ eventType: 'DETERMINISTIC',
214
+ image: applyViewport(frame, plan, isF ? 'F' : 'P'),
215
+ sourceCropBbox: plan.sourceCropBbox,
216
+ });
217
+ sampled.push(pts);
218
+ }
219
+ const form = selectForm(units);
220
+ if (units.length === 0 || form === null)
221
+ continue;
222
+ const artifact = packCanvas(form, units, {
223
+ packetId: packetId++,
224
+ appliedIntentId: options.appliedIntentId,
225
+ renderVisualId: options.renderVisualId,
226
+ triggerPath: 'DETERMINISTIC',
171
227
  });
228
+ packets.push(artifact);
229
+ hintLines.push(timelineHintLine(artifact.packet, intent.roi_hint ?? null));
230
+ if (intent.max_packets != null && packets.length >= intent.max_packets) {
231
+ spanIdx = spans.length;
232
+ break;
233
+ }
172
234
  }
173
- targetIdx += groupTargets.length;
174
- if (units.length === 0)
175
- continue;
176
- const artifact = packCanvas(group.form, units, {
177
- packetId: packetId++,
178
- appliedIntentId: options.appliedIntentId,
179
- renderVisualId: options.renderVisualId,
180
- triggerPath: 'DETERMINISTIC',
181
- });
182
- packets.push(artifact);
183
- hintLines.push(timelineHintLine(artifact.packet, intent.roi_hint ?? null));
184
- if (intent.max_packets != null && packets.length >= intent.max_packets)
185
- break;
186
235
  }
187
236
  // 预检(规格《六》§2 对 PATH_DETERMINISTIC 同样生效):
188
237
  // 单图 Token 上限逐包校验(违规即错误);字节水位超限从尾部截断增量包。
@@ -198,6 +247,6 @@ export async function runDeterministicInspection(videoPath, probe, intent, optio
198
247
  hintLines = hintLines.filter((l) => !l.includes(`Packet #${last.packet.packetId} `));
199
248
  }
200
249
  }
201
- return { packets, hintLines, sampledPtsMs: targets };
250
+ return { packets, hintLines, sampledPtsMs: dedupeSorted(sampled) };
202
251
  }
203
252
  //# sourceMappingURL=deterministicRouter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deterministicRouter.js","sourceRoot":"","sources":["../../src/stage3/deterministicRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deterministicRouter.js","sourceRoot":"","sources":["../../src/stage3/deterministicRouter.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export declare const NEAR_DUP_MS = 500;
22
22
  export declare const HEARTBEAT_INTERVAL_MS = 5000;
23
23
  export interface StreamRunOptions {
24
24
  ffmpegPath: string;
25
+ /** 末帧探测与定点索引用的 ffprobe;缺省由 ffmpegPath 同目录派生。 */
26
+ ffprobePath?: string | undefined;
25
27
  renderVisualId: boolean;
26
28
  /** 流式窗口长度(defaultStreamWindowMs)。 */
27
29
  windowMs: number;
@@ -68,21 +68,18 @@ export async function runStreamPass(videoPath, probe, sessionIntent, cursor, opt
68
68
  let lastPtsOfWindow = null;
69
69
  const ffmpegSpawns = [];
70
70
  let arenaMaxHeld = 0;
71
+ /**
72
+ * 发包:形态由可用单元数决定,调用方不必保证计数。
73
+ *
74
+ * 不变量(packCanvas 的硬约束):FORM_1 = 4P+1F,FORM_2 = 4P,
75
+ * FORM_3 = 1F,FORM_4 = 1~3P+1F。因此:
76
+ * - 无 F 时只有 FORM_2 成立,必须恰好 4P;不足 4P 本包不成立,保留
77
+ * pendingP 等后续触发,否则会抛 “FORM_2 需要 4P” 让整次调用失败;
78
+ * - 有 F 时 P 最多消费 4 张(多出的留在 pendingP,下一包继续);
79
+ * - SWITCH_STATIC 固定 FORM_3,只发 F、不消费 P(switch 效果已清空 pendingP)。
80
+ */
71
81
  const emit = (trigger, withF = true) => {
72
82
  const t0 = performance.now();
73
- const units = [];
74
- const pUnits = rt.pendingP.splice(0);
75
- for (const p of pUnits) {
76
- counters.globalUnitSeq++;
77
- units.push({
78
- globalId: counters.globalUnitSeq,
79
- ptsMs: p.ptsMs,
80
- scale: '1x1_P',
81
- eventType: 'MOTION',
82
- image: p.image,
83
- sourceCropBbox: p.sourceCropBbox,
84
- });
85
- }
86
83
  let fUnit = null;
87
84
  if (trigger === 'SETTLE' && rt.pendingF)
88
85
  fUnit = rt.pendingF;
@@ -106,6 +103,28 @@ export async function runStreamPass(videoPath, probe, sessionIntent, cursor, opt
106
103
  else if (trigger === 'SWITCH_STATIC' && rt.fSwitchImage) {
107
104
  fUnit = { ...rt.fSwitchImage, eventType: 'SWITCH_STATIC' };
108
105
  }
106
+ const pCount = trigger === 'SWITCH_STATIC'
107
+ ? 0
108
+ : fUnit
109
+ ? Math.min(rt.pendingP.length, 4)
110
+ : rt.pendingP.length >= 4
111
+ ? 4
112
+ : 0;
113
+ // 无 F 且不足 4P:本包不成立。不清理任何待发/擂台状态,等下一次触发。
114
+ if (pCount === 0 && !fUnit)
115
+ return;
116
+ const units = [];
117
+ for (const p of rt.pendingP.splice(0, pCount)) {
118
+ counters.globalUnitSeq++;
119
+ units.push({
120
+ globalId: counters.globalUnitSeq,
121
+ ptsMs: p.ptsMs,
122
+ scale: '1x1_P',
123
+ eventType: 'MOTION',
124
+ image: p.image,
125
+ sourceCropBbox: p.sourceCropBbox,
126
+ });
127
+ }
109
128
  let form;
110
129
  if (trigger === 'SWITCH_STATIC')
111
130
  form = 'FORM_3_COMPACT_1F';
@@ -117,12 +136,6 @@ export async function runStreamPass(videoPath, probe, sessionIntent, cursor, opt
117
136
  form = 'FORM_4_PARTIAL_STRIP';
118
137
  else
119
138
  form = 'FORM_3_COMPACT_1F';
120
- if (units.length === 0 && !fUnit) {
121
- // 空包保护:无单元时跳过本包(清待发标记后返回)
122
- if (trigger === 'SETTLE')
123
- rt.pendingF = null;
124
- return;
125
- }
126
139
  if (fUnit) {
127
140
  counters.globalUnitSeq++;
128
141
  units.push({
@@ -156,7 +169,6 @@ export async function runStreamPass(videoPath, probe, sessionIntent, cursor, opt
156
169
  hintLines.push(timelineHintLine(artifact.packet, sessionIntent.roiHint ?? null));
157
170
  if (fUnit) {
158
171
  rt.lastFEmittedPtsMs = fUnit.ptsMs;
159
- rt.maxDSinceLastF = 0;
160
172
  }
161
173
  rt.tokensUsed += form === 'FORM_1_STANDARD_STRIP' || form === 'FORM_4_PARTIAL_STRIP' ? 530 : 274;
162
174
  packMs += performance.now() - t0;
@@ -198,6 +210,7 @@ export async function runStreamPass(videoPath, probe, sessionIntent, cursor, opt
198
210
  try {
199
211
  const result = await decodeRangeStreaming(videoPath, w0, w1, {
200
212
  ffmpegPath: options.ffmpegPath,
213
+ ffprobePath: options.ffprobePath,
201
214
  displayWidth: probe.displayWidth,
202
215
  displayHeight: probe.displayHeight,
203
216
  workMaxEdge: options.streamWorkMaxEdge,
@@ -355,7 +368,6 @@ export async function runStreamPass(videoPath, probe, sessionIntent, cursor, opt
355
368
  heartbeats.push({ seq: counters.heartbeatSeq, ptsMs });
356
369
  rt.lastHeartbeatPtsMs = ptsMs;
357
370
  }
358
- rt.maxDSinceLastF = Math.max(rt.maxDSinceLastF, signal.d);
359
371
  // 擂台单槽不变量观测:同一时刻持有的 672 槽位数(MOTION 擂台 + SETTLE 观察窗各 1)
360
372
  const arenaHeld = (rt.motionArena !== null ? 1 : 0) + (rt.settleArena !== null ? 1 : 0);
361
373
  if (arenaHeld > arenaMaxHeld)
@@ -435,7 +447,6 @@ function restoreRuntime(cursor) {
435
447
  fSwitchImage: null,
436
448
  motionEnteredAtPtsMs: s.motionEnteredAtPtsMs ?? null,
437
449
  lastFEmittedPtsMs: cursor.lastEmittedPacketPtsMs,
438
- maxDSinceLastF: s.maxDSinceLastF ?? 1,
439
450
  lastHeartbeatPtsMs: s.lastHeartbeatPtsMs ?? null,
440
451
  tokensUsed: 0,
441
452
  };
@@ -448,16 +459,12 @@ function buildCursor(rt, cursor, lastPts, ctrl) {
448
459
  gEma: rt.clarity.gEma,
449
460
  emaWarmupLeft: rt.clarity.warmupLeft,
450
461
  settleStartPtsMs: rt.machine.settleStartPtsMs,
451
- lastKCandidates: null,
452
- lastMotionVec: null,
453
- arena: null,
454
462
  mergeStartPtsMs: rt.machine.mergeStartPtsMs,
455
463
  switchStaticSincePtsMs: rt.machine.switchStaticSincePtsMs,
456
464
  fSwitchPending: rt.machine.fSwitchPending,
457
465
  clarityWarmupLeft: rt.clarity.warmupLeft,
458
466
  rhoHistory: rt.clarity.rhoHistory.slice(-3),
459
467
  motionEnteredAtPtsMs: rt.motionEnteredAtPtsMs,
460
- maxDSinceLastF: rt.maxDSinceLastF,
461
468
  lastHeartbeatPtsMs: rt.lastHeartbeatPtsMs,
462
469
  ctrl: ctrl.snapshot(),
463
470
  };