How farid023/light_compressor_v2 works
light_compressor_v2 is a Flutter video-compression and media-toolkit plugin backed by native Android and Apple implementations. The main workflow takes a Dart compression request through the platform bridge, configures native compression, and returns results and progress events. README capabilities include batching, codec fallback, target sizing, audio/video edits, thumbnails, media info, estimates, cancellation, and optional background execution. Sampled excerpts support the bridge and encoder relationships; unsampled feature wiring is represented at its source-file level without asserting internal call paths.
Main entry points: light_compressor.dart Compressor API · LightCompressorPlugin.kt Android Plugin · VideoCompressor.kt Compression Coordinator · LightCompressor.swift Apple Media Engine
Components 16
Flutter API
- Compressor API
lib/src/light_compressor.dart - Options and Results
lib/src - Progress and Results
lib/src/compression_progress.dart
Android Runtime
- Android Plugin
android/src/main/kotlin/com/gurfdev/light_compressor_v2/LightCompressorPlugin.kt - Compression Coordinator
android/src/main/kotlin/com/gurfdev/light_compressor_v2/lightcompressorlibrary/VideoCompressor.kt - Codec Engine
android/src/main/kotlin/com/gurfdev/light_compressor_v2/lightcompressorlibrary/compressor/Compressor.kt - Foreground Service
android/src/main/kotlin/com/gurfdev/light_compressor_v2/CompressionForegroundService.kt - Cancel Receiver
android/src/main/kotlin/com/gurfdev/light_compressor_v2/CompressionCancelReceiver.kt
Apple Runtime
- Apple Plugin Bridge
ios/light_compressor_v2/Sources/light_compressor_v2/SwiftLightCompressorPlugin.swift - macOS Plugin Bridge
macos/light_compressor_v2/Sources/light_compressor_v2/LightCompressorPlugin.swift - Apple Media Engine
ios/light_compressor_v2/Sources/light_compressor_v2/LightCompressor.swift
Media Operations
- Media Utilities
lib/src - Android Media APIs
- AVFoundation
- Device Media Storage
Other components
- Flutter App
Connections 20
- Flutter App → Compressor API: requests compression
- Compressor API → Options and Results: uses options
- Compressor API → Android Plugin: dispatches platform call
- Compressor API → Apple Plugin Bridge: dispatches platform call
- Compressor API → macOS Plugin Bridge: dispatches platform call
- Android Plugin → Compression Coordinator: starts compression
- Compression Coordinator → Codec Engine: encodes video
- Codec Engine → Android Media APIs: uses codecs
- Compression Coordinator → Device Media Storage: reads and saves media
- Android Plugin → Foreground Service: starts background work
- Foreground Service → Cancel Receiver: dispatches cancel action
- Cancel Receiver → Compression Coordinator: cancels work
- Android Plugin → Progress and Results: sends progress and results
- Apple Plugin Bridge → Apple Media Engine: starts compression
- macOS Plugin Bridge → Apple Media Engine: starts compression
- Apple Media Engine → AVFoundation: uses media APIs
- Apple Media Engine → Device Media Storage: reads and writes media
- Apple Plugin Bridge → Progress and Results: sends progress and results
- macOS Plugin Bridge → Progress and Results: sends progress and results
- Compressor API → Media Utilities: requests media utilities