in src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx [116:136]
function sendVideoFrame() {
const video = videoRef.current;
const canvas = renderCanvasRef.current;
if (!video || !canvas) {
return;
}
const ctx = canvas.getContext("2d")!;
canvas.width = video.videoWidth * 0.25;
canvas.height = video.videoHeight * 0.25;
if (canvas.width + canvas.height > 0) {
ctx.drawImage(videoRef.current, 0, 0, canvas.width, canvas.height);
const base64 = canvas.toDataURL("image/jpeg", 1.0);
const data = base64.slice(base64.indexOf(",") + 1, Infinity);
client.sendRealtimeInput([{ mimeType: "image/jpeg", data }]);
}
if (connected) {
timeoutId = window.setTimeout(sendVideoFrame, 1000 / 0.5);
}
}