VideoController class

A parent isolate that spawns CameraIsolates to manage the cameras.

With one isolate per camera, each camera can read in parallel. This class sends VideoCommands from the dashboard to the appropriate CameraIsolate, and receives IsolatePayloads which it uses to read an opencv.OpenCVImage from native memory and send to the dashboard. By not sending the frame from child isolate to the parent (just the pointer), we save a whole JPG image's worth of bytes from every camera, every frame, every second. That could be up to 5 MB per second of savings.

Inheritance

Constructors

VideoController()

Properties

hashCode int
The hash code for this object.
no setterinherited
isolates Map<Object, Isolate>
All the isolates started by this parent.
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

dispose([int priority = Isolate.beforeNextEvent]) Future<void>
Kills all isolates and clears all handlers.
inherited
init() Future<void>
Starts running this isolate's "main" code. Usually used to spawn children.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onData(IsolatePayload data, Object id) → void
A callback that runs when data is sent by a child.
override
send({required VideoCommand data, required Object id}) → void
Sends the object to the child with the given ID.
inherited
spawn(IsolateChild<IsolatePayload, VideoCommand> child) Future<Isolate>
Spawns the child and calls IsolateChild.init to establish two-way communication.
inherited
stopAll() → void
Stops all the cameras managed by this class.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited