Skip to content

0.1.0-alpha.6 - Interactive layer previews

Pre-release
Pre-release

Choose a tag to compare

@shial4 shial4 released this 05 Nov 01:02
· 2 commits to main since this release

Interactive layer previews

VideoLayerRenderer renders an active text, image, or video clip to a transparent PNG on Apple and Android without opening a video encoder. Editors can reuse these pixels while users move, scale, and rotate the selected layer.

The renderer shares the existing crop, fitting, filter, and text implementation. It preserves trimmed source timing, clip and track playback rates, and inherited filters from alpha.5. Position, scale, rotation, and opacity remain the editor's responsibility. The destination must be a new local PNG; cancellation and failure clean up temporary output.

This remains an alpha using Media3 1.12.0-alpha02 and Android compile/target SDK 37. The minimum Android API remains 28. Android preview canvases currently use the render plan's even-dimension validation.

Verification

Release commit: a1849103cbee0ae8dd696c7681aab8ddc3f4a8cd (PR #2).

  • All 56 macOS library tests pass, including the exact CI command with coverage enabled. All 76 source headers and the contribution whitespace check pass.
  • New Android layer tests pass on API 33 arm64: transparent upright text, filtered images, cropped video source timing, inherited filters, and normal/clip-double/track-double playback rates.
  • The consuming Swift/Skip app passes all 176 host tests and its iOS and Android interaction workflows: preview selection, movement, scale/rotation, undo/redo, visual filters, playable motion effects, persistence after cold launch, and decoded video export.
  • A 61-frame Android recording retains the photograph throughout a Vivid-to-Noir filter change; the final frame is grayscale.

Remaining alpha limitations

Hosted CI is not established as green. The Apple job stalls after compilation at the test-launch point, as did the preceding main-branch run; its exact host test command passes locally. Hosted Android native compilation and test packaging pass; the remaining example-build and runtime checks are tracked in the Actions run.

The broader local Android instrumentation run did not complete and reproduced the previously documented Media3 color assertions and intermittent 0.5x preview/export audio RMS difference. No assertions or tolerances were weakened, and this release does not claim to resolve those alpha.5 issues. Physical-device behavior and a new full-platform coverage report remain unverified. This is an experimental prerelease, not a stable-release gate.