Files
GrowthLapse/docs/ANALYSE.md
T

3.1 KiB

Technische Bestandsaufnahme

Stand: 13. September 2026, Ausgangscommit 0b85f7d73a8ae09a8711038a4d08ae34642c6243.

Bestand

Das Projekt ist ein Swift-Package mit einer macOS-Anwendung und ohne externe Swift-Package-Abhängigkeiten. Die Oberfläche bietet Video-Zeitraffer, lokale Gesichts-/Augenanalyse, Stabilisierung, Variantenwahl und nachträgliche Ausschnittkorrekturen mit Cache. Eine kompilierte App samt Icon ist eingecheckt. Foto-Morphing ist implementiert, aber ausdrücklich gesperrt.

Ergänzungen dieser Überarbeitung

  • README mit Voraussetzungen, Start, Bedienung, Dateiformaten und Grenzen.
  • Persönliche Standardpfade entfernt: Eingabe/Ausgabe beginnen ohne Auswahl; FFmpeg und FFprobe werden automatisch gesucht. Bereits gespeicherte Einstellungen bleiben erhalten.
  • Wiederholbarer Release-App-Build unter scripts/build-app.sh, Ausgabe in build/.
  • Tests für Einstellungs-Persistenz und ältere JSON-Daten ergänzt.
  • Lokale Build-Ausgaben, Projektdateien und Render-Caches in .gitignore ergänzt.

Offene technische Arbeit

Diese Befunde stammen aus der Quellcodeprüfung; sie sind keine vollständig reproduzierten Fehlerberichte:

  1. FFmpegService.run deaktiviert beim Prozessende den Pipe-Reader, ohne ausdrücklich bis EOF zu lesen. Bei kurzen Prozessen könnte die letzte Ausgabe fehlen. Prozessausgabe und Abbruch sollten mit gezielten Integrationstests abgesichert werden.
  2. Geladene Projekte enthalten absolute Pfade. Vor Rendern und Cache-Löschen sollten Projektstruktur, leere Cliplisten und zulässige Cache-Verzeichnisse validiert werden. Der Renderpfad greift auf den ersten Clip zu und setzt eine nicht leere Liste voraus.
  3. Ein neuer Render setzt den Review-Cache früh zurück; Ausgabeoperationen überschreiben das Ziel. Ein späterer Ausbau sollte temporäre Ausgabe und atomaren Austausch nach Erfolg verwenden.
  4. Fehlender VidStab führt zu Deshake, auch wenn dieser Filter ebenfalls fehlt. Eine frühzeitige klare Fehlermeldung wäre besser als ein späterer FFmpeg-Fehler.
  5. VideoProcessor.swift bündelt rund 2.900 Zeilen verschiedener Verantwortlichkeiten. Renderplanung, Projektverwaltung und Bildanalyse lassen sich für gezielte Tests trennen.
  6. Es fehlen Render-Integrationstests mit synthetischen Videos für Audio, Überblendungen, HDR, Abbruch und Cache-Wiederverwendung sowie CI auf macOS.
  7. Release-Versionierung, Developer-ID-Signierung, Notarisierung und Lizenzentscheidung sind noch nicht als Veröffentlichungsprozess beschrieben. Das neue Build-Skript dient lokalen Builds.

Eine vollständige Produktfreigabe erfordert zusätzlich manuelle Prüfung der Oberfläche und repräsentativer Videoausgaben.

Lokale Verifikation

  • Debug-Build erfolgreich.
  • Release-App über bash scripts/build-app.sh erfolgreich gebaut und ad hoc signiert.
  • swift test durch fehlendes XCTest in der installierten Command-Line-Tools-Umgebung blockiert; die Tests sind daher noch nicht als bestanden verifiziert.
  • Shell-Syntax des Build-Skripts und git diff --check ohne Befund.
  • Keine vollständige Prüfung von Oberfläche oder Videoausgabe durchgeführt.