Track-verified audio-only and stem exports
- Audio-only export now produces a real standalone
.m4a(audio/mp4) with no video track, mixing every audible timeline source (dedicated audio tracks plus video-embedded audio) into one AAC file. Previously an audio-only request crashed on a picture-less timeline or silently produced a full video file. - Stem export writes one deterministic
.m4aper audible timeline track, each carrying that track's own gain, fades, and volume keyframes; export history records the full output set. - Standalone audio saves through MediaStore.Audio (
Music/ClearCut). - The output verifier now confirms an audio track is present and that no video track leaked; a mislabelled artifact is deleted rather than published.
- Opus/FLAC fail before any encoder work starts rather than falling back to video (AAC only for now).
- Verified end-to-end with an on-device instrumented contract test that encodes a real AAC source and inspects the exported track structure.
Build / cleanup
- Fixed Gradle dependency verification for the transitive
compose-bom:2024.02.01POM. - Removed dead
FFmpegEngine.changeSpeed.
The APK is unsigned for a trust chain (self-signed debug keystore) — install via sideload; unblock in your installer if prompted.