Repository navigation
SwiftVideo 0.1.0-alpha.1
Pre-release
Pre-release
SwiftVideo 0.1.0-alpha.1 adds experimental direct Android composition preview through Skip Fuse, using Media3 1.12.0-alpha02.
Changes
- Add the native Swift
AndroidVideoPreviewowner and Swift-authored Media3 session. Preview and export share validation, Codable serialization, composition construction, and native animation sampling. - Restore continuous video playback after timeline gaps using
DefaultGlFrameProcessor. - Preserve transport requests during preparation, coalesce rapid seeks, support surface replacement, and clean up players and temporary files on cancellation or release.
- Preserve audio fade timing and PCM cut boundaries across seeks. Decode compressed preview audio into a reusable session cache, including supported Core Media AAC priming and initial audio offsets.
- Add independent real-media pixel, audio, lifecycle, color, and gap regressions, and update integration and dependency documentation.
Requirements and installation
Swift 6.3+, Skip Fuse, and Android compile/target SDK 37. The minimum Android API remains 28. Library Apple targets remain iOS 17 and macOS 14. Media3 Transformer, Effect, and Inspector are pinned to 1.12.0-alpha02.
.package(url: "https://github.com/shial4/SwiftVideo.git", exact: "0.1.0-alpha.1")This is a low-level Android preview API. Applications supply a Swift-authored surface adapter; a SwiftUI preview view is not included. The example and Swideo app still use exported-movie previews.
Verification
- 39 host library tests and five example-model tests pass.
- 31 native Android core tests pass; coverage is 94.14% against a 90% threshold.
- Android bridge, native library, test APK, generic iOS example build, and Android example build/launch pass. The packaged example confirms compile/target SDK 37 and minimum API 28.
- The full 50-test API 33 arm64 instrumentation run completes with six known failing assertions: four BT.709 export-color assertions and two legacy paused-seek controls. Those assertions remain active; the complete suite is not green.
- Production preview passes mixed-media playback, all four gap/source-trim cases, animation, rapid seeking, surface replacement, and 16 audio trim/seek cases. Audio-cache onset, exact sample counts, reuse, quota, cancellation, and release checks pass.
- Media3 bytecode coverage is 87.41% against a 75% threshold. Coverage does not override failing behavior tests.
Known limits
- Preview audio preparation decodes complete sources with a cumulative 64 MiB cache limit. Long-form audio may fail preparation.
- Android export-color and baseline seek-control diagnostics remain unresolved.
- Physical-device behavior and current interactive iOS behavior are unverified. The local CoreSimulator/Xcode mismatch prevents interactive iOS tests.
- Local checks do not establish a passing hosted CI run or a current iOS coverage result.
Keep this version as a prerelease. A stable release will require stable upstream dependencies and verification of the final commit against all release gates.