Repository navigation
SwiftVideo 0.1.0-alpha.3
Pre-release
Pre-release
Experimental Android preview follow-up using Media3 1.12.0-alpha02 and Android compile/target SDK 37. Minimum Android API 28 and Apple deployment targets are unchanged.
Changes:
- Expose the
SwiftVideoMedia3package product for preview surface adapters. Consuming Skip apps must add this product explicitly so clean Apple builds include the bridge metadata. - Stop the old frame processor before a SurfaceView is destroyed, preserving playback through surface and view replacement.
- Keep the exact paused playhead while Media3 settles its asynchronous clock. Replacing a completed surface retains the final frame; Play then restarts from the beginning.
- Wait for the first rendered frame before starting playback and drain pending video output before reporting completion. This fixes zero-frame playback of short clips.
- Cache only the bounding source range used by each audio URL, retaining trim, seek, and fade timing. The cache reserves 256 MiB of free disk space and caps the session at 2,147,483,647 bytes. It still decodes compressed prefixes and stores gaps between distant ranges; it does not stream arbitrary long-form audio.
Verification:
- Release commit:
a811b8ad63eac0f90898dd3a81631f2c45bf9d6f. - Apple CI passed 40 host tests, 40 iOS tests, five editor-model tests, the iOS editor build, and 95.19% iOS executable-line coverage (1,147/1,205).
- Android CI passed bridge generation, native compilation, test APK packaging, and the example-editor build. The device job passed 31 native core tests. Instrumentation passed surface/view replacement, short-clip playback, mixed-media preview, and all 20 audio trim/seek cases before reaching the five-minute test-command limit. Two reference color assertions and two legacy paused-seek assertions failed before the timeout. The complete instrumentation suite and hosted coverage gate did not finish.
- A complete local run of the same production preview implementation at
3bee402executed 55 Android instrumentation tests in 217.808 seconds, with six known assertions failing. Media3 coverage was 90.40% (1,111/1,229). The later decoder-diagnostic candidatebb1f7bdalso completed 55 tests with the same six issues. These local results are not a passing hosted Android gate. - The consuming Skip Fuse app builds on iOS and Android. Phone rotation and API 34 foldable workflows pass playback, seeking, history, and saved-JSON checks. The release candidate also passes iPhone/iPad startup and Android catalog/template editing, export, and reopening checks. The iOS UI test target compiles for arm64 and x86_64 but has not run because the installed CoreSimulator is older than Xcode requires.
Known limitations: four BT.709 export-color assertions and two legacy paused-seek diagnostic assertions remain enabled and fail in complete local runs. The new independent decoder probe reproduces the color discrepancy before Media3 processing; its exact platform cause is not established. Physical Android device behavior and complete interactive iOS workflows remain unverified. This is an experimental prerelease. Stable adoption requires stable dependencies and complete release verification.