mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-03 04:38:33 +00:00
refactor(cli): unify RenderOptions on browserGpuMode tri-state
Initial PR carried a backwards-compat shim where RenderOptions had both `browserGpu?: boolean` (for docker) and `browserGpuMode?` (for local). Since renderLocal/renderDocker have no external callers, simplify to a single field. The boolean → docker-args conversion now happens inline at the one site that needs it (`browserGpu: options.browserGpuMode === "hardware"` when handing off to dockerRunArgs). No behaviour change. 535/535 engine + 256/256 CLI still pass.
This commit is contained in:
@@ -60,7 +60,7 @@ describe("renderLocal browser GPU config", () => {
|
||||
quality: "standard",
|
||||
format: "mp4",
|
||||
gpu: false,
|
||||
browserGpu: false,
|
||||
browserGpuMode: "software",
|
||||
hdrMode: "auto",
|
||||
quiet: true,
|
||||
});
|
||||
@@ -98,7 +98,7 @@ describe("renderLocal browser GPU config", () => {
|
||||
quality: "standard",
|
||||
format: "mp4",
|
||||
gpu: false,
|
||||
browserGpu: true,
|
||||
browserGpuMode: "hardware",
|
||||
hdrMode: "auto",
|
||||
quiet: true,
|
||||
});
|
||||
@@ -134,7 +134,7 @@ describe("renderLocal browser GPU config", () => {
|
||||
quality: "standard",
|
||||
format: "mp4",
|
||||
gpu: false,
|
||||
browserGpu: false,
|
||||
browserGpuMode: "software",
|
||||
hdrMode: "auto",
|
||||
quiet: true,
|
||||
variables: { title: "Hello", count: 3 },
|
||||
@@ -150,7 +150,7 @@ describe("renderLocal browser GPU config", () => {
|
||||
quality: "standard",
|
||||
format: "mp4",
|
||||
gpu: false,
|
||||
browserGpu: false,
|
||||
browserGpuMode: "software",
|
||||
hdrMode: "auto",
|
||||
quiet: true,
|
||||
});
|
||||
@@ -172,7 +172,7 @@ describe("renderLocal browser GPU config", () => {
|
||||
quality: "standard",
|
||||
format: "mp4",
|
||||
gpu: false,
|
||||
browserGpu: true,
|
||||
browserGpuMode: "hardware",
|
||||
hdrMode: "auto",
|
||||
quiet: true,
|
||||
exitAfterComplete: true,
|
||||
|
||||
@@ -401,7 +401,7 @@ export default defineCommand({
|
||||
format,
|
||||
workers,
|
||||
gpu: useGpu,
|
||||
browserGpu: browserGpuMode === "hardware",
|
||||
browserGpuMode,
|
||||
hdrMode: args.sdr ? "force-sdr" : args.hdr ? "force-hdr" : "auto",
|
||||
crf,
|
||||
videoBitrate,
|
||||
@@ -436,14 +436,11 @@ interface RenderOptions {
|
||||
workers?: number;
|
||||
gpu: boolean;
|
||||
/**
|
||||
* For local renders: tri-state ("auto" | "hardware" | "software"). "auto"
|
||||
* probes WebGL availability on first launch and falls back to software.
|
||||
* Docker renders use the boolean `browserGpu` field instead because the
|
||||
* docker run-args wire the inner CLI's `--no-browser-gpu` flag.
|
||||
* Chrome WebGL backend mode. "auto" probes on first launch and falls back
|
||||
* to "software" if no usable GPU. Defaults to "software" when omitted to
|
||||
* stay backwards-compatible with callers that pre-date the tri-state.
|
||||
*/
|
||||
browserGpuMode?: "auto" | "hardware" | "software";
|
||||
/** Docker-only: true → host GPU passthrough, false → forced software. */
|
||||
browserGpu?: boolean;
|
||||
hdrMode: "auto" | "force-hdr" | "force-sdr";
|
||||
crf?: number;
|
||||
videoBitrate?: string;
|
||||
@@ -737,7 +734,7 @@ async function renderDocker(
|
||||
format: options.format,
|
||||
workers: options.workers,
|
||||
gpu: options.gpu,
|
||||
browserGpu: options.browserGpu ?? false,
|
||||
browserGpu: options.browserGpuMode === "hardware",
|
||||
hdrMode: options.hdrMode,
|
||||
crf: options.crf,
|
||||
videoBitrate: options.videoBitrate,
|
||||
@@ -807,7 +804,7 @@ export async function renderLocal(
|
||||
workers: options.workers,
|
||||
useGpu: options.gpu,
|
||||
producerConfig: producer.resolveConfig({
|
||||
browserGpuMode: options.browserGpuMode ?? (options.browserGpu ? "hardware" : "software"),
|
||||
browserGpuMode: options.browserGpuMode ?? "software",
|
||||
}),
|
||||
hdrMode: options.hdrMode,
|
||||
crf: options.crf,
|
||||
|
||||
Reference in New Issue
Block a user