select static method

FfmpegRunner select({
  1. required bool isWeb,
  2. ProcessRunner? runner,
  3. WasmRuntime wasmFactory()?,
  4. WasmInputReader? readInput,
  5. WasmOutputWriter? writeOutput,
})

Builds the provider for isWeb, with every dependency injectable.

Native: a ProcessFfmpegRunner over runner (default IoProcessRunner). Web: a WasmFfmpegRunner over wasmFactory (default: the real browser binding) — readInput/writeOutput must be wired by the web render path before an encode actually runs; the defaults fail loudly so a missing wire is a clear bug, not a hang.

Implementation

static FfmpegRunner select({
  required bool isWeb,
  ProcessRunner? runner,
  WasmRuntime Function()? wasmFactory,
  WasmInputReader? readInput,
  WasmOutputWriter? writeOutput,
}) {
  if (!isWeb) {
    return ProcessFfmpegRunner(runner: runner ?? const IoProcessRunner());
  }
  return WasmFfmpegRunner(
    runtime: (wasmFactory ?? createWasmRuntime)(),
    readInput: readInput ?? _unwiredReadInput,
    writeOutput: writeOutput ?? _unwiredWriteOutput,
  );
}