Files
GrowthLapse/docs/ANALYSE.md
T

40 lines
3.2 KiB
Markdown

# Technische Bestandsaufnahme
> Historische Bestandsaufnahme vor Version 0.3.0. Umgesetzte Korrekturen und aktuelle Grenzen stehen in [VERBESSERUNGEN.md](VERBESSERUNGEN.md).
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.