DesktopVideoRenderer class final
Renders a Fluvie composition to an MP4 file with a local FFmpeg.
This is the desktop arm of the VideoRenderer family: it runs Fluvie's
deterministic capture loop through the host's pump seams, then hands the
captured manifest's argument array to an FfmpegRunner. It is the same
path the CLI drives — this class is the symmetric in-process entry point
next to OnDeviceVideoRenderer (mobile) and WebVideoRenderer (browser).
Audio defaults to on: the local FFmpeg carries the full feature set,
so a Video's declared Audio tracks are mixed in unless you pass
audio: false (which warns once, unless silenced). Every dependency is
injected so the orchestration is unit-testable; the host owns pumping
through pumpWidget and pumpFrame (a widget test passes the tester's,
the CLI passes its binding's).
- Implemented types
Constructors
-
DesktopVideoRenderer({required ShellMount pumpWidget, required ShellFramePump pumpFrame, FfmpegRunner? runner, RenderService? service, Future<
Directory> sandboxFactory()?, void onWarning(String message)?, MediaResolver? mediaResolver, NetworkAllowlist? networkAllowlist}) - Creates a renderer over its seams; the defaults target a real desktop.
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- mediaResolver → MediaResolver?
-
The injected media resolver, or null to build (and dispose) one per
render from
mediaResolverProvider. Pass one to inject a fake.final - networkAllowlist → NetworkAllowlist?
-
Restricts which hosts network media may be fetched from. Applied to the
per-render resolver when none is injected; ignored when mediaResolver
is provided (configure the allowlist on it instead).
final
- pumpFrame → ShellFramePump
-
Pumps the host one frame after each seek.
final
- pumpWidget → ShellMount
-
Mounts the capture shell into the host's element tree.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
render(
{required Widget composition, required Aspect aspect, required Duration duration, int fps = VideoDefaults.fps, int longEdge = VideoDefaults.longEdge, bool audio = true, bool warnOnDroppedAudio = true, String compositionKey = 'render', RenderProgressCallback? onProgress}) → Future< File> -
Renders
compositionforaspectoverdurationto an MP4 file in a fresh sandbox directory, returning that file.override -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited