FrameSource class sealed

Sealed: every frame handed to an encoder is one of the variants below.

Use the named factories — never extend this class outside the package.

Constructors

FrameSource.cpu({required Uint8List bytes, required MiniAVPixelFormat pixelFormat, required int width, required int height, List<int>? strideBytes, int timestampUs})
CPU bytes (always supported, may incur upload to GPU encoder).
factory
FrameSource.cvPixelBuffer({required int cvPixelBufferPtr, required int width, required int height, required MiniAVPixelFormat pixelFormat, int timestampUs})
Raw CVPixelBuffer (macOS / iOS escape hatch).
factory
FrameSource.d3d11Texture({required int texturePtr, required int width, required int height, required MiniAVPixelFormat pixelFormat, int subresourceIndex, MiniAVNativeFence fence, int timestampUs})
Raw D3D11 texture pointer (Windows escape hatch).
factory
FrameSource.dmabuf({required List<int> fds, required List<int> strides, required List<int> offsets, required int modifier, required int width, required int height, required MiniAVPixelFormat pixelFormat, int timestampUs})
Raw Linux dmabuf (escape hatch).
factory
FrameSource.gpuTexture({required Object platformVideoTexture, required int width, required int height, required ExternalPixelFormat externalPixelFormat, int timestampUs})
A minigpu video texture (e.g. from gpu.importVideoFrame).
factory
FrameSource.miniavBuffer(MiniAVBuffer buffer)
A miniav-produced buffer — backend extracts native handle for zero-copy when possible.
factory
FrameSource.webVideoFrame({required Object videoFrame, required int width, required int height, required MiniAVPixelFormat pixelFormat, int timestampUs})
A browser WebCodecs VideoFrame — zero-copy path into VideoEncoder.
factory
FrameSource.yuv420p({required Uint8List yPlane, required Uint8List uPlane, required Uint8List vPlane, required int width, required int height, int timestampUs})
Pre-converted planar YUV420P (I420): a full-resolution yPlane plus 2×2-subsampled uPlane/vPlane. Lets a GPU color-conversion step feed planes straight to a YUV420P encoder with no further conversion. Each plane must be tightly packed (Y: widthheight, U/V: (width/2)(height/2)).
factory

Properties

hashCode → int
The hash code for this object.
no setterinherited
height → int
Frame height in pixels.
no setter
kind → FrameSourceKind
What kind this is, for backend capability checks.
no setter
pixelFormat → MiniAVPixelFormat
Pixel format. Backends may need to perform color-space conversion.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
timestampUs → int
Presentation timestamp in microseconds. May be 0 if unknown.
no setter
width → int
Frame width in pixels.
no setter

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

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