RenderConfig class final

Everything one render needs to know: output size, frame rate, the frame window to capture, encode quality, and whether the frame cache may serve repeated frames.

Hand-written immutable value class (no codegen). Validation happens at construction: width and height must be even (yuv420p chroma subsampling halves them), fps and frameCount positive, startFrame non-negative — violations are programming errors (ArgumentError).

toJson/RenderConfig.fromJson round-trip the full config; the JSON form feeds the render digest that keys the frame cache, so field names and the Quality.name spelling are stable.

Annotations

Constructors

RenderConfig({required int width, required int height, required int frameCount, int fps = VideoDefaults.fps, int startFrame = 0, Quality quality = Quality.high, bool cacheEnabled = true})
Creates a validated render configuration.
RenderConfig.fromJson(Map<String, Object?> json)
Reads a config from its toJson form (validating as the constructor).
factory

Properties

cacheEnabled → bool
Whether the frame cache may serve frames captured by an earlier run with the same render digest.
final
fps → int
Frames per second of the output video.
final
frameCount → int
How many frames to capture and encode.
final
hashCode → int
The hash code for this object.
no setteroverride
height → int
Output height in pixels (even, for yuv420p).
final
quality → Quality
Encode quality level (mapped to CRF by the argument builder).
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
startFrame → int
The first frame to capture (the loop runs startFrame .. startFrame + frameCount - 1).
final
width → int
Output width in pixels (even, for yuv420p).
final

Methods

copyWith({int? width, int? height, int? fps, int? frameCount, int? startFrame, Quality? quality, bool? cacheEnabled}) → RenderConfig
A copy with the given fields replaced (re-validated on construction).
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() → Map<String, Object?>
The JSON form (stable field order; Quality by name).
toString() → String
A string representation of this object.
override

Operators

operator ==(Object other) → bool
The equality operator.
override