- macOS/iOS: Fixed Xcode compilation error by correcting
publicvisibility on internal Pigeon-generated types.
- Android: Fixed video corruption caused by pixel alignment issues; implemented
GL_UNPACK_ALIGNMENTinOpenGLRenderer. - iOS: Optimized pixel swizzling logic in
FlutterStoryEncoderPluginfor 2x performance boost and perfect color accuracy. - Validation: Added rigorous input validation in
FlutterStoryEncoder.startto prevent native-level crashes (guards against odd dimensions, 0/negative FPS, and invalid bitrates). - Tests: Rewrote the entire unit test suite to improve reliability and verify input validation logic.
- Best Practices: Updated example project and README to demonstrate exact-resolution frame capture using calculated
pixelRatio.
- macOS: Added full macOS platform support with native
AVFoundation-backed Swift implementation. - SPM (iOS & macOS): Added Swift Package Manager support at the correct paths (
ios/flutter_story_encoder/Package.swift,macos/flutter_story_encoder/Package.swift). - Documentation: Added comprehensive dartdoc comments to all public API symbols in
pigeon.g.dart, removing thepublic_member_api_docssuppression to improve the pub.dev score. - README: Rewrote with full API reference tables, step-by-step usage, and updated platform support matrix.
- Example: Added a complete example project with real
RepaintBoundary-based frame capture demonstrating the full encode lifecycle. - pubspec: Shortened description for better pub.dev search visibility.
- Score Improvement: Shortened package description in
pubspec.yamlfor better search visibility. - Documentation: Added comprehensive dartdoc comments to the public API and Pigeon definitions.
- iOS: Added Swift Package Manager (SPM) support declaration.
- Example: Added a complete example project demonstrating high-performance encoding.
- iOS: Switched Pigeon to Swift generation to resolve scope visibility issues.
- iOS: Fixed
CMSampleBufferCreateReadyparameters for silent audio generation. - iOS: Improved error handling by using
PigeonErrorfor better type compatibility.
- Android Hotfix: Fixed
IllegalStateException: Can't write, muxer is not startedby implementing track synchronization and muxer lifecycle safeguards. - Improved Stability: Ensured that video and audio tracks are fully registered before the muxer begins writing sample data.
- Android Hotfix: Fixed unresolved
programandtextureIdreferences inOpenGLRenderer.kt. - Android Gradle Hotfix: Added
settings.gradleto give the plugin's Android project a unique name, resolving IDE project collisions. - Unit Tests: Corrected Pigeon mock implementation and fixed missing imports in
flutter_story_encoder_test.dart.
- iOS Hotfix: Fixed color channel swap (Blue/Red) when encoding from Flutter raw RGBA frames.
- iOS Stability: Fixed potential crash by resetting memory pools between encoding sessions.
- Android Performance: Optimized silent audio track generation by reusing zero-buffers.
- Android Optimization: Implemented buffer reuse in
OpenGLRendererto eliminate frame-level allocations and reduce GC pressure during high-resolution exports. - Improved Lifecycle: Properly shut down background executor on Android when plugin is detached.
-
Commercial Grade Release: Refactored both platforms for hardware-accelerated production use.
-
Audio Support: Added silent AAC audio track generation on iOS (AVFoundation) and Android (MediaCodec).
-
iOS (AVFoundation): Implemented
CVPixelBufferPoolandrequestMediaDataWhenReadyfor zero-allocation, thermal-stable encoding. -
Android (MediaCodec): Switched to Surface-based input with EGL/OpenGL ES for GPU-backed encoding.
-
Improved API: Migrated to Pigeon for type-safe, high-throughput IPC.
-
Unified Telemetry: Real-time stats (FPS, frames processed) streamed back to Flutter.
-
Fixed Android
@UiThreadexception by ensuring progress updates and completion callbacks run on the main thread.
- Renamed Android package to
com.lucasveneno.flutter_story_encoder.
- Fixed Android Kotlin compilation error ("Property must be initialized").
- Updated repository metadata and documentation.
- Initial release of the high-performance video export engine.
- Type-safe IPC implementation using Pigeon.
- iOS: Hardware-accelerated pipeline with
AVAssetWriterandCVPixelBufferPool. - Android: GPU-backed
MediaCodecSurface encoding with EGL/OpenGL renderer. - Real-time encoding statistics and progress callbacks.
- Support for 1080p and 4K @ 30/60fps.
- Thermal stability and backpressure management.