utd_video_effects_kit library

utd_video_effects_kit — real-time video filters & beauty effects for UTD-media-based Flutter apps.

The public surface is a single VideoEffectsProcessor that implements utd_media_client's TrackProcessor<VideoProcessorOptions>. Attach it to a LocalVideoTrack (directly, or via utd_live_room_kit's UTDLiveRoomConfig.buildVideoProcessor factory) and toggle effects through its setters.

final fx = VideoEffectsProcessor.create();
final track = await LocalVideoTrack.createCameraTrack(
  CameraCaptureOptions(processor: fx),
);
await fx.setSmoothing(0.6);
await fx.setFilter('golden_hour', intensity: 0.8);

For a ready-made UI, open VideoEffectsSheet — a built-in beauty & filters bottom sheet (Beauty / Filters / Makeup / Accessories tabs) that drives the processor: VideoEffectsSheet.show(context, processor: fx).

See NATIVE.md for the native pipeline architecture (in-place frame editing on both platforms). On web / unsupported devices — or when the effects entitlement is off — the processor runs as a safe passthrough (the original camera frames flow unmodified).

Classes

EffectsPerfStats
An immutable snapshot of the native frame-budget telemetry (Phase 5.1).
EffectsState
Immutable snapshot of the active video-effect settings.
EffectsTestFrame
Result of VideoEffectsProcessor.renderTestFrame (Phase 4.2): an RGBA8888 image (row-major, 4 bytes/pixel, no padding) produced by running a known input frame through the native COLOR grade with the session's current effect settings.
FilterPreset
FrameDiff
A per-channel difference summary between two RGBA8888 buffers (Phase 4.2). Pure Dart, so the comparison itself is unit-testable offline; only producing the two EffectsTestFrames needs a device.
MakeupLook
A full makeup look bundling coordinated shades across regions. Apply it in one call with VideoEffectsProcessor.setMakeupLook.
MakeupShade
A curated makeup shade — a hex color plus a recommended opacity for one region (lipstick / eyeshadow / blush / eye color). Feed hex + opacity straight into the matching VideoEffectsProcessor setter.
PoseFrame
(WS3.2) One pulled body-pose sample from the native PoseLandmarker — 33 MediaPipe pose landmarks, already Kalman-gated, One-Euro-smoothed and extrapolated to the pull time by the native provider.
VideoEffectAccessory
A landmark-positioned PNG accessory overlay (glasses / crown / cat-ears), drawn by the native FaceLandmarker pass. asset is a Flutter asset key.
VideoEffectFilter
A bundled LUT color filter.
VideoEffectsAccessories
Catalog of the bundled PNG accessories (assets/accessories/<key>.png).
VideoEffectsFilters
Catalog of the LUT color filters bundled with this package (sourced from a third-party beauty-effects ColorfulStyle + FaceWhitening resource set, which are plain square LUTs).
VideoEffectSkinTone
A skin-tone preset (dual-LUT grade: a skin LUT applied over skin regions, a background LUT elsewhere; from a third-party beauty-effects SkinColorResources set). Both LUTs are 512² square LUTs.
VideoEffectsMakeup
Curated, realistic makeup shades + full looks. Pure data — the live effect is still the native landmark blend; these just supply flattering, coordinated values instead of raw hex.
VideoEffectsPresets
Curated FULL-look catalog. Ordering = display order (broad-appeal first, characterful later). Keys are stable API; labels are display-only.
VideoEffectsProcessor
A media-engine-compatible video processor that applies GPU beauty/filter effects natively and exposes the result via processedTrack.
VideoEffectsSheet
Beauty & filters bottom sheet for utd_video_effects_kit.
VideoEffectsSkinTones
Catalog of bundled skin-tone presets (assets/skin/<key>/).

Enums

NoPersonPolicy
(F.5) What background blur does when the segmentation mask is empty or unavailable (user leaned out of frame, segmenter still warming up, or its init failed on this device).
PresetAudience
Who a look is authored for. unisex keeps the existing portrait.