Maturity: configuration is production; RTC integration is planned. Flutter's Effects surface is narrower than React Native's today — read What's not here yet before you build against it.
What's production today
RavenEffectsPipeline and its filter/preset builders, exported from
raven_rtc, are real Dart — the same parameter ranges and preset
compositions as @corvidhq/effects on web:
import 'package:raven_rtc/raven_rtc.dart';
final pipeline = RavenEffectsPipeline();
pipeline.applyPreset(RavenEffectPresets.cinematic);
pipeline.add(RavenEffectFilters.brightness(value: 0.2));
pipeline.addListener(() {
// pipeline extends ChangeNotifier — rebuild a widget the same way
// you'd listen to a RavenRoom.
});Invalid parameters throw RavenEffectsException with a
RavenEffectsErrorCode (unsupported, invalidConfig, resourceLimit)
— the same three-way split as web's EffectsErrorCode, scoped to what
this release actually needs.
try {
RavenEffectFilters.brightness(value: 5); // out of range
} on RavenEffectsException catch (e) {
print(e.code); // RavenEffectsErrorCode.invalidConfig
}What's not here yet
Two things, and they're different gaps:
- No native frame-processing engine — same situation as React Native.
- No
RavenRoomintegration point at all. Unlike web and React Native,RavenRoomdoesn't currently expose a track handle separate fromenableCamera()(which captures and publishes in one native call — see Audio & Video for the equivalent web-onlycreateCameraTrack()/publish()split). So there is intentionally noroom.attachCameraEffects(...)method in this release — shipping one that silently did nothing would be worse than not shipping it.RavenEffectsPipelinetoday is configuration you can build, validate, and persist; wiring it into a live camera track is future work, tracked alongside the native engine itself.
Planned architecture
Flutter
↓
Raven Effects API
↓
Native Effects Engine
↓
GPU
↓
Raven RTC
A MethodChannel/PlatformView-based Metal pipeline on iOS and an
OpenGL ES/Camera2 pipeline on Android, plus a RavenRoom track handle to
attach to — tracked in the dashboard's Effects section.
Related
- React Native — closer to shipping; the same architecture, one step ahead.
- Filters — the parameter ranges
RavenEffectFiltersmirrors exactly.