Skip to content

SwiftVideo 0.1.0-alpha.1

Pre-release
Pre-release

Choose a tag to compare

@shial4 shial4 released this 03 Nov 10:10
· 3 commits to main since this 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 AndroidVideoPreview owner 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.

Preview integration | Verification and coverage