Merge pull request #2224 from heygen-com/parallel-streaming

feat(producer): stream parallel screenshot/beginframe capture to the encoder
This commit is contained in:
Vance Ingalls
2026-07-11 16:15:49 -07:00
committed by GitHub
7 changed files with 191 additions and 2 deletions
+16
View File
@@ -361,6 +361,22 @@ describe("render telemetry events", () => {
}),
);
});
it("carries capture_parallel_stream on render_error via the shared payload", () => {
trackRenderError({
fps: 30,
quality: "standard",
docker: false,
errorMessage: "worker crashed",
captureParallelStream: "beginframe",
});
expect(trackEvent).toHaveBeenCalledWith(
"render_error",
expect.objectContaining({ capture_parallel_stream: "beginframe" }),
undefined,
);
});
});
describe("trackRenderFeedback", () => {
+4
View File
@@ -53,6 +53,9 @@ export interface RenderObservabilityTelemetryPayload {
captureDePreRouterWorkers?: number;
captureDeSelfVerifyFallback?: boolean;
captureDeFallbackReason?: string;
/** Non-DE parallel-streaming router outcome ("screenshot" | "beginframe" —
* routed; "eligible_off" — would route but the kill switch is off). */
captureParallelStream?: string;
observabilityExtractVideoCount?: number;
observabilityExtractedVideoCount?: number;
observabilityExtractTotalFrames?: number;
@@ -104,6 +107,7 @@ function renderObservabilityEventProperties(props: RenderObservabilityTelemetryP
de_pre_router_workers: props.captureDePreRouterWorkers,
de_self_verify_fallback: props.captureDeSelfVerifyFallback,
de_fallback_reason: props.captureDeFallbackReason,
capture_parallel_stream: props.captureParallelStream,
observability_extract_video_count: props.observabilityExtractVideoCount,
observability_extracted_video_count: props.observabilityExtractedVideoCount,
observability_extract_total_frames: props.observabilityExtractTotalFrames,
@@ -82,3 +82,24 @@ describe("renderObservabilityTelemetryPayload — DE inversion/router cohort (fa
expect(payload.captureDeFallbackReason).toBeUndefined();
});
});
describe("renderObservabilityTelemetryPayload — non-DE parallel-stream router", () => {
it("maps the router outcome", () => {
const payload = renderObservabilityTelemetryPayload(
makeSummary({ captureParallelStream: "beginframe" }),
);
expect(payload.captureParallelStream).toBe("beginframe");
});
it("maps the passive eligible_off cohort-sizing signal", () => {
const payload = renderObservabilityTelemetryPayload(
makeSummary({ captureParallelStream: "eligible_off" }),
);
expect(payload.captureParallelStream).toBe("eligible_off");
});
it("stays undefined when the router never fired", () => {
const payload = renderObservabilityTelemetryPayload(makeSummary({}));
expect(payload.captureParallelStream).toBeUndefined();
});
});
@@ -46,6 +46,7 @@ export function renderObservabilityTelemetryPayload(
captureDePreRouterWorkers: capture.dePreRouterWorkers,
captureDeSelfVerifyFallback: capture.deSelfVerifyFallback,
captureDeFallbackReason: capture.deFallbackReason,
captureParallelStream: capture.captureParallelStream,
observabilityExtractVideoCount: extraction?.videoCount,
observabilityExtractedVideoCount: extraction?.extractedVideoCount,
observabilityExtractTotalFrames: extraction?.totalFramesExtracted,